新版汇编语言程序设计习题答案(钱晓捷主编)(3)
时间:2025-04-23
时间:2025-04-23
计算机科学与技术,汇编语言程序设计,新版,答案,钱晓捷
(1) mov cx,dl 两操作数类型不匹配
(2) mov ip,ax IP 指令指针禁止用户访问
(3) mov es,1234h 立即数不允许传给段寄存器
(4) mov es,ds 段寄存器之间不允许传送
(5) mov al,300 两操作数类型不匹配
(6) mov [sp],ax 目的操作数应为[ BP ]
(7) mov ax,bx+di 源操作数应为 [BX+DI]
(8) mov 20h,ah 立即数不能作目的操作数
2.3已知数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
lea bx,table ;获取table的首地址,BX=200H
mov al,8 ;传送欲转换的数字,AL=8
xlat ;转换为格雷码,AL=12H
2.4什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令? 堆栈是一种按“先进后出”原则存取数据的存储区域。
堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。
2.5已知SS = FFA0H、SP = 00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?
mov ax,8057h
push ax
mov ax,0f79h
push ax
pop bx ;bx=0f79h
pop [bx] ;DS:[0f79h]=8057h
计算机科学与技术,汇编语言程序设计,新版,答案,钱晓捷
2.6 给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态: mov al,89h AL=89h CF ZF SF OF PF
add al,al AL=12h 1 0 0 1 1
add al,9dh AL=0afh 0 0 1 0 1
cmp al,0bch AL=0afh 1 0 1 0 1
sub al,al AL=00h 0 1 0 0 1
dec al AL=0ffh 0 0 1 0 1
inc al AL=00h 0 1 0 0 1
2.7 设X、Y、Z均为双字数据,分别存放在地址为X、X+2;Y、Y+2;Z、Z+2的存储单元中,它们的运算结果存入W单元。阅读如下程序段,给出运算公式。 mov ax,X
mov dx,X+2
add ax,Y
adc dx,Y+2
add ax,24
adc dx,0
sub ax,Z
sbb dx,Z+2
mov W,ax
mov W+2,dx
W=X+Y+24-Z
2.8请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。 ADD DX,BX
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX+SI]
(3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。 ADD [BX+0B2H],CX
(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。 ADD WORD PTR [0520H],3412H
(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。
ADD AL,0A0H
2.9;设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D
mov ax,X ;ax=A
下一篇:二年级音乐第三课、第四课