好文档 - 专业文书写作范文服务资料分享网站

微机原理与接口技术(第四版)课后习题答案 (1)培训讲学

天下 分享 时间: 加入收藏 我要投稿 点赞

精品文档

第3章 数据处理 〔习题3.1〕简答题

(1)使用二进制8位表达无符号整数,257有对应的编码吗?

(2)字符“'F'”和数值46H作为MOV指令的源操作数有区别吗?

(3)为什么可以把指令“MOV AX, (34+67H)*3”中的数值表达式看成是常量?

(4)数值500,能够作为字节变量的初值吗?

(6)都是获取偏移地址,为什么指令“LEA EBX, [ESI]”正确,而指令“MOV EBX, OFFSET[ESI]”就错误?

(7)INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数?

(9)乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算?

(10)逻辑与运算为什么也称为逻辑乘? 〔解答〕

① 没有。使用二进制8位表达无符号整数,257没有对应的编码。 ② 字符“'F'”的ASCII码就是数值46H,所以没有区别。

③ 汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。

④ 不能。数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。

⑥ 前者在指令执行时获得偏移地址,是正确的;但后者的OFFSET只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。

⑦ INC,DEC,NEG和NOT指令的操作数既是源操作数也是目的操作数。

⑨ 加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF和OF标志,可利用CF和OF进行区别。

⑩ 逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。

〔习题3.3〕填空题

(1)定义字节变量的伪指令助记符是_____________,获取变量名所具有的偏移地址的操作符是_____________。

(2)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是10进制数___________;如果认为它是BCD码,则表示真值_____________;又如果它是某个ASCII码,则代表字符__________。

(3)C语言用“\\n”表示让光标回到下一行首位,在汇编语言中需要输出两个控制字符:一个是回车,其ASCII码是_____________,它将光标移动到

收集于网络,如有侵权请联系管理员删除

精品文档

当前所在行的首位;另一个是换行,其ASCII码是_____________,它将光标移到下一行。

(4)数据段有语句“H8843 DWORD 99008843H”,代码段指令“MOV CX, WORD PTR H8843”执行后,CX=_____________。

(5)用DWORD定义的一个变量XYZ,它的类型是_____________,用“TYPE XYZ”会得到数值为_____________。如果将其以字量使用,应该用_____________说明。

(6)数据段有语句“ABC BYTE 1,2,3”,代码段指令“MOV CL, ABC+2”执行后,CL=_____________。 〔解答〕

① BYTE,OFFSET ② 97,61,小写字母a

③ 0DH(13),0AH(10) ④ 8843H

⑤ DWORD,4,WORD PTR XYZ ⑥ 3 〔习题3.4〕

下列十六进制数表示无符号整数,请转换为十进制形式的真值:① FFH ② 0H ③ 5EH ④ EFH 〔解答〕

① 255 ② 0 ③ 94 ④ 239 〔习题3.5〕

将下列十进制数真值转换为压缩BCD码: ① 12 ② 24 ③ 68 ④ 99 〔解答〕

① 12H ② 24H ③ 68H ④ 99H 〔习题3.6〕

将下列压缩BCD码转换为十进制数:

① 10010001 ② 10001001 ③ 00110110 ④ 10010000 〔解答〕

① 91

收集于网络,如有侵权请联系管理员删除

精品文档

② 89 ③ 36 ④ 90 〔习题3.7〕

将下列十进制数用8位二进制补码表示: ① 0 ② 127 ③-127 ④ -57 〔解答〕

① 00000000 ② 01111111 ③ 10000001 ④ 11000111 〔习题3.8〕

进行十六进制数据的加减运算,并说明是否有进位或借位: ① 1234H+7802H ② F034H+5AB0H ③ C051H-1234H ④ 9876H-ABCDH 〔解答〕

① 1234H+7802H=8A36H,无进位 ② F034H+5AB0H=4AF4H,有进位 ③ C051H-1234H=BE1DH,无借位 ④ 9876H-ABCDH=ECA9H,有借位 〔习题3.10〕

设置一个数据段,按照如下要求定义变量或符号常量: ① my1b为字符串变量:Personal Computer ② my2b为用十进制数表示的字节变量:20 ③ my3b为用十六进制数表示的字节变量:20 ④ my4b为用二进制数表示的字节变量:20 ⑤ my5w为20个未赋值的字变量 ⑥ my6c为100的常量

⑦ my7c表示字符串:Personal Computer 〔解答〕

my1b byte 'Personal Computer' my2b byte 20 my3b byte 14h

my4b byte 00010100b my5w word 20 dup(?) my6c = 100

收集于网络,如有侵权请联系管理员删除

精品文档

my7c equ

〔习题3.11〕定义常量NUM,其值为5;数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-10,2,5和4,最后1个单元初值不定。

〔解答〕 num equ 5 datalist byte -10,2,5,4,?

〔习题3.12〕从低地址开始以字节为单位,用十六进制形式给出下列语句依次分配的数值:

byte 'ABC',10,10h,'EF',3 dup(-1,?,3 dup(4)) word 10h,-5,3 dup(?) 〔解答〕

41 42 43 0A 10 45 46 FF 00 04 04 04 FF 00 04 04 04 FF 00 04 04 04 10 00 FB FF 00 00 00 00 00 00

〔习题3.19〕请分别用一条汇编语言指令完成如下功能:(去E)

(1)把EBX寄存器和EDX寄存器的内容相加,结果存入EDX寄存器。 (2)用寄存器EBX和ESI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。

(3)用EBX和位移量0B2H的寄存器相对寻址方式把存储器中的一个双字和ECX寄存器的内容相加,并把结果送回存储器中。

(4)将32位变量VARD与数3412H相加,并把结果送回该存储单元中。 (5)把数0A0H与EAX寄存器的内容相加,并把结果送回EAX中。 〔解答〕 ① add edx,ebx ② add al,[ebx+esi] ③ add [bx+0b2h],cx ④ add varw,3412h ⑤ add eax,0a0h

〔习题3.20〕分别执行如下程序片断,说明每条指令的执行结果:(去E) (1) mov eax,80h add eax,3 __________ add eax,80h

; EAX=__________

; EAX=__________,CF=__________,SF=; EAX=__________,CF=__________,OF=

收集于网络,如有侵权请联系管理员删除

精品文档

__________ adc eax,3 ; EAX=__________,CF=____________________

(2) mov eax,100 ; EAX=__________ add ax,200 ; EAX=__________,CF=__________

(3) mov eax,100 ; EAX=__________ add al,200 ; EAX=__________,CF=__________

(4) mov al,7fh ; AL=__________ sub al,8 ; AL=__________,CF=____________________ sub al,80h ; AL=__________,CF=____________________ sbb al,3 ; AL=__________,CF=____________________ 〔解答〕

(1) ; EAX=80H ; EAX=83H,CF=0,SF=0 ; EAX=103H,CF=0,OF=0 ; EAX=106H,CF=0,ZF=0

(2) ; EAX=100 ; EAX=300,CF=0

(3) ; EAX=100 ; EAX=44,CF=1(包含256的进位含义:256+44=300)

(4) mov al,7fh ; AL=7FH sub al,8 ; AL=77H,CF=0,SF=0 sub al,80h ; AL=F7H,CF=1,OF=1 sbb al,3 ; AL=F3H,CF=0,ZF=0 〔习题3.21〕(推敲)

,ZF=

,SF=,OF=,ZF=

给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:

mov al,89h add al,al

收集于网络,如有侵权请联系管理员删除

微机原理与接口技术(第四版)课后习题答案 (1)培训讲学

精品文档第3章数据处理〔习题3.1〕简答题(1)使用二进制8位表达无符号整数,257有对应的编码吗?(2)字符“'F'”和数值46H作为MOV指令的源操作数有区别吗?(3)为什么可以把指令“MOVAX,(34+67H)*3”中的数值表达式看成是常量?(4)数值500,能够作为字节变量的初值吗?<
推荐度:
点击下载文档文档为doc格式
1axdt5j6en00kc5204u903ypi6bk1500j5a
领取福利

微信扫码领取福利

微信扫码分享