微机原理与接口技术课后答案详解(黄玉清版)(2)

2018-11-27 10:09

C、LESBX,VARD、LEABX,VAR

【答】D

(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有

()。

A、CMPB、SUBC、ANDD、MOV

【答】D

(4)下面指令执行后,改变AL寄存器内容的指令是()。

A、TESTAL,02HB、ORAL,AL C、CMPAL,BD、ANDAL,BL

【答】D

(5)设DH=10H,执行NEGDH指令后,正确的结果是()。

A、DH=10HCF=1B、DH=0F0HCF=0 C、DH=10HCF=0D、DH=0F0HCF=1

【答】D

(6)设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是()。

A、85B92HB、86192HC、BB690HD、12169H

【答】A

(7)检查BUF的内容是否为正偶数,如是正偶数,则0TAL。下面程序段正确的是()。

A、MOVAL,BUF

JSK1 SHRAL,1 JNCK1 MOVAL,0 K1:…… B、MOVAL,BUF

ANDAL,11 JNZK2 MOVAL,0 K2:…… C、MOVAL,BUF

TESTAL,81H JNZK3 MOVAL,0 K3:…… D、MOVAL,BUF

JNPK4 TESTAL,80H JNZK4 MOVAL,0 K4:……

【答】C

(8)下列指令中,执行速度最快的是()。

A、MOVAX,100B、MOVAX,[BX] C、MOVAX,BXD、MOVAX,[BX+BP]

【答】C

3.3已知(DS)=091DH,(SS)=IE4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H, (BP)=0024H,(SI)=0012H,(DI)=0032H,[09226]=00F6H,[09228]=1E40H, [lE4F6]=091DH,试求单独执行下列指令后的结果? (l)MOVCL,20H[BX][SI];

【答】由于源操作数有效地址EA=20H+0024H+0012H=0056H,

其物理地址PA=DS*16+EA=091DH*16+56H=09226H,因此(CL)=F6H

(2)MOV[BP][DI],CX;

【答】由于目的操作数有效地址EA=0024H+0032H=0056H,

目的操作数物理地址PA=SS*16+EA=1E4A0H+0056H=1E4F6H,因此[1E4F6]=5678H

(3)LEABX,20H[BX][SI]

MOVAX,2[BX]

【答】第一条指令:源操作数物理地址PA=091D0H+(20+0024H+0012H)=09226H,因此(BX)=0056H

第二条指令:源操作数物理地址PA=091D0H+(2+0056)=09928H,因此(AX)=1E40H

(4)LDSSI,[BX][DI]

MOV[SI],BX

【答】第一条指令:源操作数物理地址PA=091D0H+(0024H+0032H)=09226H

因此(SI)=00F6H,(DS)=1E40H

第一条指令:目的操作数物理地址PA=1E400H+00F6H=1E4F6H 因此1E4F6H单元的内容为0024H,即[1E4F6H]=0024H (5)XCHGCX,32H[BX]

XCHG20[BX][SI],AX

【答】同理可得:(CX)=00F6H(AX)=00F6H,[09226H]=1234H 3.48086CPU执行如下指令后

MOVAL,01100100B

SUBAL,58H;(AL)=0CH,AF=1,CF=0 DAS;(AL)=06,AF=1,CF=0

【答】首先用TD调试验证上面的结果;自己定义两个数据,重新验证,写出结果。

3.5设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL2000:0094H后,试求出IP、

CS、SP、[SP]、[SP+1][SP+2]和[SP+3]的内容? 【答】(IP)=0094H,(CS)=2000H,(SP)=F178H

[SP]=8FH,[SP+1]=3DH,[SP+2]=50H,[SP+3]=40H,[SP+3]=40H

3.6设(DS)=2000H,(BX)=1256H,(SI)=528FH,TABLE的偏移量=20A1H,[232F7H]=3280H,

[264E5H]=2450H,执行下述指令

(1)JMPBX;IP=1256H

(2)JMPTABLE[BX];IP=3280H

(3)JMP[BX][SI];IP=2450H

3.7分别用一条语句实现下述指明的功能

(1)栈顶内容弹出送字变量DI。(POPDI)

(2)双字变量AYD存放的地址指针送ES和SI。(LESSI,AYD) (3)不允许中断即关中断。(CLI) (4)子程序返回调用程序。(RET)

(5)AX的内容加1,要求不影响CF。(INCAX)

(6)BX的内容加1,要求影响所有标志位。(ADDBX,1) (7)若操作结果为零转向标号GOON。(JZGOON) 3.88086/8088用什么途径来更新CS和IP的值?

【答】执行CALL、JMP、INT指令,可以改变CS和IP中的值,即改变程序走向。

3.9字节扩展指令和字扩展指令用在什么场合?举例说明。

【答】需要对带符号数字节扩展为字时,要预先执行CBW指令。需要对带符号数字扩展为双字时,要 预先执行CWD。

【答】例:求-503/267=?,将商存1000H单元.

MOVAX,-503 MOVBX,267 CWD IDIV

MOV[1000H],AX HLT

3.10设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行的具体操作:

MOVWORDPTR[BP],2000 MOVWORDPTR[BX],2000

3.11以下是格雷码的编码表

0——0000,1——0001,2——0011,3——0010,4——0110 5——0111,6——0101,7——0100,8——1100,9——1101

请用换码指令和其他指令设计一个程序段,实现格雷码往ASCII的转换。 【答】

格雷码ASCII码 000030H 000131H 001033H 001132H 010037H 010136H 011034H 011135H 10000 10010 10100 10110 110038H 110139H

TABLESEGMENT

TAB_DADB30H,31H,33H,32H,37H,36H,34H,35H,0,0

DB0,0,38H,39H

GRADB05H ASCII_DADB? TABLEENDS CODESEGMENT

ASSUMECS:CODE,DS:TABLE START:MOVAX,TABLE

MOVDS,AX

MOVBX,OFFSETTAB_DA

MOVAL,GRA XLAT

MOVASCII_DA,AL

CODEENDS

ENDSTART

3.128086状态标志寄存器中,作为控制用的标志位有(3)个,其中,不可用指令操作的是(DF、IF、 TF)

3.13设当前的SP=1000H,执行PUSHF指令后,SP=(0FFEH),若改为执行INT20H指令后,则SP=

(0FFAH)。

【答】执行PUSHF指令后,SP=(0FFEH)。执行INT20H指令后,则SP=(0FFAH)。

3.14设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSHBX指令

后,栈顶地址和栈顶2个字节的内容分别是什么?

【答】当前栈顶指针(SP)=2FF00H,物理地址=20100H+FE00H=2FF00H

当执行PUSHBX指令后,栈顶指针(SP)=FE00-2=FDFEH,栈顶物理地址=2FDFEH,栈顶 2个字节的内容分别57H,34H。

3.15HLT指令用在什么场合?如CPU在执行HLT指令时遇到硬件中断并返回后,以下应执行哪条指

令?

【答】HLT用在使CPU处于暂停状态而等待硬件中断的场合。

在执行HLT指令遇到硬件中断并返回后将执行HLT后面的一条指令。

3.16为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据? 【答】増量指令或减量指令不影响进位标志CF。

3.17用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体讲,在进行BCD码的加、减、

乘、除运算时,程序段的什么位置必须加上十进制调整指令?

【答】在BCD码中,采用4位二进制数对一个十进制数的编码,只允许0-9这10个数字出现,但CPU

运算结果一般会超过此范围,因此要进行十进制调整。进行加、减法或乘法运算时,调整指令必须 紧跟在算术指令后面,在进行除法运算时,调整指令放在除法指令之前。

3.18中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?

【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序

的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且SP减 2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地 址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断 入口地址的偏移地址。

3.19中断返回指令IRET和普通子程序返回指令RET在执行时,具体操作内容什么不同?

【答】IRET从堆栈中依次弹出断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依 次弹出断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。

3.20将存放在0A00H单元和0A02H单元的两个无符号数相乘,结果存放在地址为0A04H开始的单元中。 【答】参考程序:

MOVAL,[0A00H]

MOVBL,[0A02H] MULBL MOV[0A04],AX

3.21编程序将AX中数,最高位保持不变,其余全部左移4位。 【答】参考程序:

MOVBX,AX

ANDBX,8000H MOVCL,4 SHLAX,CL ANDAX,7FFFH ORAX,BX

3.22将0400H单元中的数,低4位置零,高4位保持不变。 【答】参考程序:

MOVAL,[0400H]

ANDAL,0F0H MOV[0400H],AL

3.23将BX中的数,对高位字节求反,低位字节保持不变。 【答】参考程序:NOTBH

3.24检测Bx中第13位(D13),为0时,把AL置0,为1时,把AL置1。 【答】参考程序:

TESTBX,0010000000000000B JZZERO MOVAL,01H HLT

ZERO:MOVAL,0

HLT

3.25利用字串操作指令,将1000H~10FFH单元全部清零。 【答】参考程序:

CLD

MOVDI,1000H MOVCX,100H MOVAL,0 REPSTOSB

3.26从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H),把存放第一个#的单元地址送入

BX中。 【答】参考程序:

CLD

MOVDI,1000H MOVCX,200 MOVDX,CX MOVAL,23H REPNZSCASB JZFIND JMPNOFOUND

FOUND:DECDI

MOVBX,DI

NOFOUND:HLT

3.27编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。 【答】参考程序:

MOVAX,X


微机原理与接口技术课后答案详解(黄玉清版)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《国际私法(本科必修)》2014年7月期末试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: