汇编语言程序设计(第二版) 钱晓捷 课后答案.doc
文本预览下载声明
汇编语言程序设计(第二版) 钱晓捷 习题答案
第二章(01)
2.1(1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h.2
(1)????两操作数类型不匹配 (2)????IP指令指针禁止用户访问 (3)????立即数不允许传给段寄存器 (4)????段寄存器之间不允许传送 (5)????两操作数类型不匹配 (6)????目的操作数应为[ BP ] (7)????源操作数应为 [BX+DI]???(8)????立即数不能作目的操作数
2.3
lea bx,table?????;获取table的首地址,BX=200H mov al,8?????????;传送欲转换的数字,AL=8 xlat????????????? ;转换为格雷码,AL=12H
2.4
mov ax,8057h push ax mov ax,0f79h push ax pop bx???????????? ;bx=0f79h pop [bx]????????? ;DS:[0f79h]=8057h
2.6
AL=89h?????? CF?????? ZF?????? SF?????? OF?????? PF AL=12h??????? 1??????? 0??????? 0??????? 1??????? 1 AL=0afh?????? 0??????? 0??????? 1??????? 0??????? 1 AL=0afh?????? 1??????? 0??????? 1??????? 0??????? 1 AL=00h??????? 0??????? 1??????? 0??????? 0??????? 1 AL=0ffh?????? 0??????? 0??????? 1??????? 0??????? 1
AL=00h??????? 0??????? 1??????? 0??????? 0??????? 1??????
2.5
堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。?2.7
W=X+Y+24-Z
2.8
(1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D ?????? mov ax,X???????;ax=A????????? imul Y?????????;dx,ax = A*B????? (将操作数看作符号数,以下同) ?????? mov cx,ax????????? mov bx,dx??????;bx,ax????? --????? dx,ax =A*B???????? mov ax,Z???????;ax = C???????? cwd????????????;dx,ax =C???(扩展符号后为双字) ?????? add cx,ax???????? adc bx,dx??????;bx,cx -- bx,cx+dx,ax=A*B+C ?????? sub cx,540???????? sbb bx,0???????;bx,cx-- A*B+C-540????????? mov ax, V??????;ax= D???????? cwd????????????;dx,ax= D???(扩展符号后为双字)???????? sub ax, cx???????? sbb dx, bx?????;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) ?????? idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数
2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数
???第二章(02) ??
2.11;
指令 AX的值 CF OF SF ZF PF Mov???? ax,1407h 1470h - - - - - And???? ax,ax 1470h 0 0 0 0 0 Or????? ax,ax 1470h 0 0
显示全部