微机原理与接口技术(第四版)课后习题答案(佳木斯大学)

发布时间 : 星期四 文章微机原理与接口技术(第四版)课后习题答案(佳木斯大学)更新完毕开始阅读

my4b my5w my6c my7c

〔习题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(?) byte 00010100b word 20 dup(?) = 100

equ

〔解答〕

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.13〕设在某个程序中有如下片段,请写出每条传送指令执行后寄存器EAX的内容:

varw varb vard buff mess

; 数据段 org 100h

word 1234h,5678h byte 3,4

dword 12345678h byte 10 dup(?) byte 'hello' ; 代码段

mov eax,offset mess

mov eax,type buff+type mess+type vard

mov eax,sizeof varw+sizeof buff+sizeof mess mov eax,lengthof varw+lengthof vard

〔解答〕

① EAX=0114H ② EAX=0006H ③ EAX=0013H ④ EAX=0003H

〔习题3.14〕按照如下输出格式,在屏幕上显示ASCII表: | 0 1 2 3 4 5 6 7 8 9 A B C D E F ---+-------------------------------- 20 | ! “ # ... 30 | 0 1 2 3 ... 40 | @ A B C ... 50 | P Q R S ... 60 | ‘ a b c ... 70 | p q r s ...

表格最上一行的数字是对应列ASCII代码值的低4位(用十六进制形式),而表格左边的数字对应行ASCII代码值的高4位(用十六进制形式)。编程在数据段直接构造这样的表格、填写相应ASCII代码值

- -13

(不是字符本身),然后使用字符串显示子程序DISPMSG实现显示。

〔解答〕 include io32.inc .data table byte ' |0 1 2 3 4 5 6 7 8 9 A B C D E F',13,10 byte '---+-------------------------------',13,10 byte

|',20h,20h,21h,20h,22h,20h,23h,20h,24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h,20h byte 2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh,20h,2fh,20h,13,10 byte

|',30h,20h,31h,20h,32h,20h,33h,20h,34h,20h,35h,20h,36h,20h,37h,20h,38h,20h,39h,20h byte 3ah,20h,3bh,20h,3ch,20h,3dh,20h,3eh,20h,3fh,20h,13,10 byte

|',40h,20h,41h,20h,42h,20h,43h,20h,44h,20h,45h,20h,46h,20h,47h,20h,48h,20h,49h,20h byte 4ah,20h,4bh,20h,4ch,20h,4dh,20h,4eh,20h,4fh,20h,13,10 byte

|',50h,20h,51h,20h,52h,20h,53h,20h,54h,20h,55h,20h,56h,20h,57h,20h,58h,20h,59h,20h byte 5ah,20h,5bh,20h,5ch,20h,5dh,20h,5eh,20h,5fh,20h,13,10 byte

|',60h,20h,61h,20h,62h,20h,63h,20h,64h,20h,65h,20h,66h,20h,67h,20h,68h,20h,69h,20h byte 6ah,20h,6bh,20h,6ch,20h,6dh,20h,6eh,20h,6fh,20h,13,10 byte

|',70h,20h,71h,20h,72h,20h,73h,20h,74h,20h,75h,20h,76h,20h,77h,20h,78h,20h,79h,20h byte 7ah,20h,7bh,20h,7ch,20h,7dh,20h,7eh,20h,7fh,20h,13,10 byte 0 .code start: mov eax,offset table call dispmsg exit 0 end start

〔习题3.15〕数据段有如下定义,IA-32处理器将以小端方式保存在主存: var

dword 12345678h

现以字节为单位按地址从低到高的顺序,写出这个变量内容。并说明如下指令的执行结果: mov eax,var ; EAX=__________ mov bx,var ; BX=__________ mov cx,var+2 ; CX=__________ mov dl,var ; DL=__________ mov dh,var+3 ; DH=__________

可以编程使用十六进制字节显示子程序DSIPHB顺序显示各个字节进行验证,还可以使用十六进制双字显示子程序DSIPHD显示该数据进行对比。

〔解答〕

小端方式采用“低对低、高对高”,即低字节数据存放在低地址存储单元、高字节数据存放在高地址存储单元。以字节为单位按地址从低到高的顺序,var变量的内容:78H、56H、34H、12H。 ; EAX=12345678H ; BX=5678H ; CX=1234H ; DL=78H

'20

'30

'40

'50

'60

'70

- -14

; DH=12H

使用若干MOV指令实现交互指令“XCHG EBX,[EDI]”功能。 〔解答〕

push eax mov eax,ebx mov ebx,[edi] mov [edi],eax pop eax

; 可以没有

〔习题3.16〕

; 可以没有

〔习题3.17〕

假设当前ESP=0012FFB0H,说明下面每条指令后,ESP等于多少?

push eax push dx

push dword ptr 0f79h pop eax

pop word ptr [bx] pop ebx

〔解答〕

ESP=0012FFACH ESP=0012FFAAH ESP=0012FFA6H ESP=0012FFAAH ESP=0012FFACH ESP=0012FFB0H

〔习题3.18〕已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H;请为如下程序的每条指令加上注释,说明每条指令的功能和执行结果。

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的格雷码)

不使用XLAT指令: mov ebx,offset table ; EBX=格雷码表首地址 mov eax,0 mov al,8 ; AL=8 mov al,[eax+ebx] ; AL=12H(8的格雷码)

- -15

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

(1)把EBX寄存器和EDX寄存器的内容相加,结果存入EDX寄存器。

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

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

(4)将32位变量VARD与数3412H相加,并把结果送回该存储单元中。 (5)把数0A0H与EAX寄存器的内容相加,并把结果送回EAX中。 〔解答〕

〔习题3.20〕分别执行如下程序片断,说明每条指令的执行结果:

(1)

mov eax,80h add eax,3 add eax,80h adc eax,3 (2)

mov ax,64h add ax,c8h (3)

mov ax,64h add al,c8h (4)

mov al,7fh sub al,8 sub al,80h sbb al,3

; EAX=__________

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

; EAX=__________,CF=__________ ; EAX=__________

; EAX=__________,CF=__________

; AL=__________

; AL=__________,CF=__________,SF=__________ ; AL=__________,CF=__________,OF=__________ ; AL=__________,CF=__________,ZF=__________

① add edx,ebx

② add al,[ebx+esi] ③ add [bx+0b2h],cx ④ add varw,3412h ⑤ add eax,0a0h

〔解答〕

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

(2) ; AX=64h ; AX=012c,CF=0

(3) ; AX=64h ; AX=2c,CF=1

(4) mov al,7fh ; AL=7FH sub al,8 ; AL=77H,CF=0,SF=0 sub al,80h ; AL=F7H,CF=1,OF=1

- -16

联系合同范文客服:xxxxx#qq.com(#替换为@)