汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx

上传人:b****5 文档编号:16083013 上传时间:2022-11-18 格式:DOCX 页数:26 大小:23.33KB
下载 相关 举报
汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx_第1页
第1页 / 共26页
汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx_第2页
第2页 / 共26页
汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx_第3页
第3页 / 共26页
汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx_第4页
第4页 / 共26页
汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx

《汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

汇编语言程序设计第四版第4章课后答案Word格式文档下载.docx

1234567887654321h

.code

.startup

movcx,7

movsi,1

again:

moval,byteptrqvar[si]

movbyteptrqvar[si-1],al

incsi

loopagain

testal,80h

jzezz

movbl,0ffh

jmp 

done

ezz:

movbl,0

done:

movbyteptrqvar[7],bl

.exit0

end

〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。

可设计外循环体为8个字节左移一次,方法是:

最低位字节算术左移一次, 

次低位字节至最高位字节依次带CF位循环左移一次(内循环共8次),外循环体控制执行7次即可。

qvar 

movdx,7 

外循环次数

movax,byteptrqvar[0] 

最低位字节送ax

lpp:

 

shlax,1 

最低位字节左移一次,其d7移入CF位

mov 

si,1

movcx,7 

内循环次数

again:

rclbyteptrqvar[si],1 

高位字节依次左移P50

inc 

si

loop 

again

decdx

jnz 

lpp

.end

〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。

设这四组从低位到高位分别放在AL、BL、CL和DL寄存器中。

仅列出代码段:

movbl,al 

将al中的两组分开

andal,0fh 

屏蔽高四位后送al

movcl,4 

原al中的数据逻辑右移4次送bl

shrbl,cl

movdl,ah 

将ah中的两组分开

anddl,0f0h 

屏蔽低高四位后送dl

原ah中的数据逻辑右移4次送dl

shrdl,cl

movcl,ah 

屏蔽高四位后送cl

andcl,0fh

〔习题4.4〕编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来。

getkey:

movah,1 

从键盘输入,出口:

al存键值

int21h

cmp 

al,'

a'

判键值是小写字母?

jb 

getkay

z'

ja 

subal,20h 

是小写字母转换为大写字母

movdl,al

movah,02h 

显示

〔习题4.5〕已知用于LED数码管显示的代码表为:

LEDtable 

DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

DB80h,90h,88h,83h,0c6h,0c1h,86h,8eh

它依次表示0~9、A~F这16个数码的显示代码。

现编写一个程序实现将lednum中的一个数字(0~9、A~F)转换成对应的LED显示代码。

DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

DB80h,90h,88h,83h,0c6h,0clh、86h,8eh

lednum 

DB?

movbx,offsetLEDtable 

moval,lednum

xlat 

al中存有对应的LED显示代码

.exit0

〔习题4.6〕编制一个程序,把变量bufX和bufY中较大者存入bufZ;

若两者相等,则把其中之一存入bufZ中。

假设变量存放的是8位无符号数。

bufx 

db?

bufY 

bufz 

moval,bufX

movbl,bufY

cmpal,bl

janext

movbufZ,bl

jmpdone

next:

movbufZ,al

done:

〔习题4.7〕设变量bufX为有符号16位数,请将它的符号状态保存在signX,即:

如果X大于等于0,保存0;

如果X小于0,保存-1(ffh)。

编写该程序。

.stack

bufX 

dw-7

signX 

cmpbufX,0 

;

testbufX,80h

jlnext 

jnznext

movsignX,0

next:

movsignX,-1

〔习题4.8〕bufX、bufY和bufZ是3个有符号16进制数,编写一个比较相等关系的程序:

(1)如果这3个数都不相等,则显示0;

(2)如果这3个数中有两个数相等,则显示1;

(3)如果这3个数都相等,则显示2。

dw?

movax, 

bufX 

movbx, 

bufY

movcx, 

bufZ

movdl,'

0'

cmpax,bx

jnznext1

incdl

next1:

cmpax,cx

jnznext2

next2:

cmpbx,cx

jnznext3

next3:

cmpdl,’3’

jbnext4

movdl,’2’

next4:

movah,02h 

〔习题4.9〕例题4.8内外循环次数共是多少?

如果要求按从大到小排序,程序如何修改?

外循环次数是:

count-1次(19次)

内循环次数是:

(count-1)!

次 

(19!

次)

内外循环次数共是count-1+(count-1)!

次,即19+19!

〔习题4.10〕串操作指令常要利用循环结构,现在不用串操作指令实现字符串string1内容传送到字符串string2,字符长度为count。

.model 

small

string1 

db 

'

goodmorning!

'

len 

$-string1

string2 

lendup(?

movcx,len 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1