计算机专业--微机原理与接口技术(钱晓捷版)课后习题答案
table byte 18h,34h,05h,06h,09h,0ah,0ch,11h,12h,14h ; 代码段
mov ebx,offset table mov al,8 xlat
为了验证你的判断,不妨使用本书的I/O子程序库提供的子程序DISPHB显示换码后AL的值。如果不使用XLAT指令,应如何修改? 〔解答〕
table
; 数据段
byte 18h,34h,05h,06h,09h,0ah,0ch,11h,12h,14h ; 定义格雷码表 ; 代码段
mov ebx,offset table ; EBX=格雷码表首地址 mov al,8 ; AL=8 xlat ; AL=12H(8的格雷码) mov ebx,offset table mov eax,0 mov al,8 mov al,[eax+ebx]
; EBX=格雷码表首地址 ; AL=8
; AL=12H(8的格雷码)
不使用XLAT指令:
〔习题3.19〕
请分别用一条汇编语言指令完成如下功能:
(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〕
分别执行如下程序片断,说明每条指令的执行结果:
(
〔解答〕
(1)
; EAX=80H
; EAX=83H,CF=0,SF=0 ; EAX=103H,CF=0,OF=0 ; EAX=106H,CF=0,ZF=0
(2)
; EAX=100