文档详情

汇编语言程序设计课后答案 .pdf

发布:2025-04-18约2.36万字共36页下载文档
文本预览下载声明

汇编语言程序设计课后答案

2.1

(1)AX=1200h

(2)AX=0100h

(3)AX=4C2Ah

(4)AX=3412h

(5)AX=4C2Ah

(6)AX=7856h

(7)AX=65B7h

2.2(1)两操作数类型不匹配

(2)IP指令指针禁止用户访问

(3)立即数不允许传给段寄存器

(4)段寄存器之间不允许传送

(5)两操作数类型不匹配

(6)目的操作数应为[BP]

(7)源操作数应为[BX+DI]

(8)立即数不能作目的操作数

2.3

leabx,table;获取table的首地址,

BX=200H

moval,8;传送欲转换的数字,

AL=8

xlat;转换为格雷码,AL=12H

2.4

movax,8057h

pushax

movax,0f79h

pushax

popbx;bx=0f79h

pop[bx];DS:[0f79h]=8057h

2.6

AL=89hCFZFSFOF

PF

AL=12h1001

1

AL=0afh0010

1

AL=0afh1010

1

AL=00h0100

1

AL=0ffh0010

1

AL=00h01001

堆栈是一种按“先进后出”原则存取数据的存储区域。

堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。

2.5

2.7W=X+Y+24-Z

2.8

(1)ADDDX,BX

(2)ADDAL,[BX+SI]

(3)ADD[BX+0B2H],CX

(4)ADDWORDPTR[0520H],3412H

(5)ADDAL,0A0H

2.9;为了避免与操作数地址混淆,将

题中X,Y,Z,V字操作数改为A,B,C,D

movax,X;ax=A

imulY;dx,ax=A*B(将操作数看作符号数,以下同)

movcx,ax

movbx,dx;

bx,ax--dx,ax=A*B

movax,Z;ax=C

cwd;dx,ax=C(扩展符号后为双字)

addcx,ax

adcbx,dx;bx,cx--

bx,cx+dx,ax=A*B+C

subcx,540

sbbbx,0;bx,cx--

A*B+C-540

movax,V;ax=D

cwd;dx,ax=D(扩展符号后为双字)

subax,cx

sbbdx,bx;dx,ax=dx,ax-bx,cx=D-(A*B+C-540)

idivX;运算结果:

[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.其他逻辑指令使

CF=OF=0,根据结果影响其他标志位。

第2章(03)1.左移N次相当于乘于2的N次方,右左移N次

相当于除乘于2的N次方。

2.移位指令根据是否移入“1”到CF,设置CF,根据移位后的结果影

SF,ZF,PF。根据最高符号位是否改变设置OF,如改变OF=1.

3.…u?表示无定义,…-?表示无影响。

2.13;(1)

;不考虑进位movbl,al

movcl,3

shlal,cl

addal,bl;shlbl,1

addal,bl

;考虑进位xorah,ah

movbx,ax

movcl,3

shlax,cl

显示全部
相似文档