位微机原理汇编语言及接口技术教程课后习题答案 联系客服

发布时间 : 星期一 文章位微机原理汇编语言及接口技术教程课后习题答案更新完毕开始阅读1cf695fadf88d0d233d4b14e852458fb770b38dd

百度文库 - 让每个人平等地提升自我

1MB最多能分成1MB÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段

⑴ FFFFH:0=FFFF0H ⑵ 40H:17H=00417H ⑶ 2000H:4500H=24500H ⑷ B821H:4567H=BC777H 〔习题〕

已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的内容,以及源操作数的寻址方式?

⑴ mov ax,1200h ⑵ mov ax,bx

⑶ mov ax,[1200h] ⑷ mov ax,[bx]

⑸ mov ax,[bx+1100h] ⑹ mov ax,[bx+si]

⑺ mov ax,[bx][si+1100h] 〔解答〕

⑴ mov ax,1200h ;AX=1200H,立即数寻址 ⑵ mov ax,bx ;AX=0100H,寄存器寻址 ⑶ mov ax,[1200h] ;AX=4C2AH,直接寻址

⑷ mov ax,[bx] ;AX=3412H,寄存器间接寻址

⑸ mov ax,[bx+1100h] ;AX=4C2AH,寄存器相对寻址 ⑹ mov ax,[bx+si] ;AX=7856H,基址变址寻址

⑺ mov ax,[bx][si+1100h] ;AX=65B7H,相对基址变址寻址 〔习题〕

说明下面各条指令的具体错误原因 ⑴ mov cx,dl ⑵ mov ip,ax ⑶ mov es,1234h ⑷ mov es,ds ⑸ mov al,300 ⑹ mov [sp],ax ⑺ mov ax,bx+di ⑻ mov 20h,ah 〔解答〕

(1)cx为字寄存器,dl为字节寄存器,类型不匹配。

(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。 (3)不允许立即数到段寄存器的传送。 (4)不允许段寄存器之间的直接传送。 55

百度文库 - 让每个人平等地提升自我

(5)数据溢出。

(6)sp不能用于寄存器间接寻址。 (7)格式不对。应为:mov ax,[bx+di] (8)mov指令的操作数不能是立即数。 〔习题〕

已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。

lea bx,table mov al,8 xlat 〔解答〕

lea bx,table mov al,8 xlat

;获取table的首地址,BX=200H ;传送欲转换的数字,AL=8 ;转换为格雷码,AL=12H

〔习题〕

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

mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al

〔解答〕

mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al

;AL=89H ;AL=0AFH ;AL=0AFH ;AL=0FFH ;AL=00H

CF ZF SF OF PF

0 0 0 1 0 1

0 1 1 0 1 0

1 0 0 0 0 0

1 1 1 1 1 1

0 1 0 0

;AL=12H 1

;AL=00H 0

〔习题〕

请分别用一条汇编语言指令完成如下功能:

66

百度文库 - 让每个人平等地提升自我

⑴ 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。

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

⑶ 用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。

⑷ 用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。

⑸ 把数0A0H与AL寄存器的内容相加,并把结果送回AL中 〔解答〕

⑴ add dx,bx ⑵ add al,[bx+si] ⑶ add [bx+0b2h],cx

⑷ add word ptr [0520h],3412h ⑸ add al,0a0h 〔习题〕

设有4个16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。

mov ax,X imul Y mov cx,ax mox bx,dx mov ax,Z cwd

add cx,ax adc bx,dx sub cx,540 sbb bx,0 mov ax,V cwd

sub ax,cx sbb dx,bx idiv X 〔解答〕

(V-(X*Y+Z-540)/X 〔习题〕

给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。 77

百度文库 - 让每个人平等地提升自我

mov ax,1470h and ax,ax or ax,ax xor ax,ax not ax

test ax,0f0f0h

〔解答〕

mov ax,1470h and ax,ax or ax,ax xor ax,ax not ax

test ax,0f0f0h

;AX=1470H ;AX=1470H ;AX=1470H ;AX=0000H ;AX=FFFFH ;AX=FFFFH

CF ZF SF OF PF 0 0 0 0 0

0 0 1 1 0

0 0 0 0 1

0 0 0 0 0

0 0 1 1 1

〔习题〕

控制转移类指令中有哪三种寻址方式? 〔解答〕

相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接) 〔习题〕

假设DS=2000H、BX=1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?

⑴ JMP BX

⑵ JMP TABLE[BX] 〔解答〕

(1)1256H (2)3280H 〔习题〕

判断下列程序段跳转的条件 ⑴ xor ax,1e1eh je equal ⑵ test al,b jnz there ⑶ cmp cx,64h jb there

88