微机原理习题课

更新时间:2023-09-30 17:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章 习题答案一、填空题

1、MOV AX,7896H ADD AL,AH

上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。 2、MOV SP,3210H

PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH ) 3、重复前缀指令REP的重复次数由( CX )决定。

4、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(CX=0或ZF=0 )。

5、下面指令序列执行后完成的运算,正确的算术表达式应是(y=2x-1)。 MOV AL,BYTE PTR X SHL AL,1 DEC AL

MOV BYTE PTR Y,AL

6、下面程序段执行后,AL中的内容是( 21H ) MOV AX,8833H ADD AL,AH DAA

7、如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是____ IP____,而后两个字节存放的是____ CS____。 8、执行下面的程序段后,AX=_____35_____ 。

MOV CX,5; MOV AX,50;

NEXT: SUB AX,CX; LOOP NEXT; HLT

9、 MUL WORD PTR [SI] , 原操作数__________; 目标操作数__________; 10、 设 AL=-18,CL=2,则执行SAR AL,CL 后,AL=__________ 。 11、 设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA

之后,其结果应是(AH=01,AL=05 )。

12、 指令LOOPNZ 退出循环的条件是( )。 13、 MOV AX, 65A3; AND AX, 0FA03

AX=___5FA6_______,若作为无符号数,其十进制值为___24486_______,若作为带符号数,其十进制值为____+24486______.

14、 (西安交大)写出一条能完成下述操作的指令

(1) 将AH的最高3位清零,其他位不变 ( AND AH 1FH ) (2) AH的低半字节置1,其他位不变 ( OR AH 0FH ) (3) AH的最低位取反,其他位不变( XOR AH,01 )

15、 (西南交大) 8086 CPU在基址-变址寻址方式中,基址寄存器可以是( )和( ),变址寄存器可以是( )和( )。

16、 (北方交大) 串运行时源串由( )段提供,目的串由( )段提供。

17、 (四川大学)已知AL的内容01101011B执行 NEG AL 后,再执行CBW指令,AX=( FF95H )。

18、 (西南交大) 对于下列程序段,也可以只用一条指令( )完成同样的操作。

AGAIN: MOV AL,[SI]; MOV ES:[DI], AL; INC SI; INC DI; LOOP AGAIN;

二、选择题

1、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。 A.1 B.2 C.3 D.由指令长度决定 2、下列属于合法的指令是( D )

A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL 3、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR

4、将DX的内容除以2,正确的指令是(C )。

A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1

5、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( C )。

A、INC CX JZ MINUS B、SUB CX,OFFFFH JZ MINUS

C、AND CX,OFFFFH JZ MINUS D、XOR CX,OFFFFH JZ MINUS

6、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是( A )。 A MOV AL,00H B AND AL,00H C XOR AL,AL D SUB AL,AL 7、下列哪条指令不能将AX的内容清零() A、AND AX, 0 B、XOR AX, AX C、SUB AX, AX D、CMP AX, AX 8、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX之后,存放数据21H的物理地址是( ) A、20102H B、20101H C、200FEH D、200FFH

9、假设AX和BX寄存器中存放的是有符号整数,为了判断AX寄存器中的数据是否大于BX寄存器中的数据,应采用指令序列( D )。 A、SUB AX,BX B、 SUB AX,BX JC label JNC label

C、CMP AX,BX D、CMP AX,BX JA label JG label

10、(华东理工)下列寻址方式中,不需要访问内存的是( ) A、直接 B、立即 C、间接 D、变址

11、(西安交大)下列指令中那条是正确的( ) A、MOV DS,0200H B、MOV AX,[SI][DI]

C、MOV BP,AX D、MOV BYTE PTR [BX],1000;

12、(西南交大) 对于下列程序段可以用指令( )完成同样的功能。 AGAIN:MOV ES:[DI],AL INC DI;

LOOP AGAIN

A 、 REP MOVSB B、REP STOSB C、REP LODSB D、REPE SCASB 13、(西安交大) 当使用串处理指令CMPSW寻找两串的不同数据时,应使用重复前缀为( )

A、REP B、LOOP C、REPE D、REPNZ 14、(西南交大) (SS)=2000H,(SP)=0250H,执行5次压栈后,(SP)=( ) A、0255H B、025AH C、0240H D、0256H

15、(西安交大) 下面一段程序完成对某一缓冲区清零,缓冲区长度为50个字,缓冲区首地址,DI=0400H,并设(ES)=5000H,请选择一个答案。 CLD

MOV AX,5000H; MOV ES,AX; MOV DI,0400H; ( )

MOV AL,00H REP STOSB

A. MOV CX,50 B. MOV BX,50 C.MOV CX,100 D. MOV AX,50H

三、简答题

1、下面程序段是判断DA1和DA2两个字存储单元中的数是否同为正数,若是则将0→AX中,否则-1→ AX,试在每一个空白处各填上一条条件分支指令(两个空白处要求利用不同的标志位,选用适应的条件分支指令)。 MOV AX,DA1 MOV BX,DA2 XOR AX,BX __________

TEST BX,8000H __________ MOV AX,0 JMP DONE

NEXT:MOV AX,-1 DONE:

2.执行下面的程序段后,AL______。

内存中以BUF为首地址的区域存储内容依次为:2152H,3416H,5731H,4684H MOV BX, OFFSET BUF MOV AL, 3

XLAT

3. MOV DX,8F70H MOV AX,54EAH OR AX,DX AND AX,DX NOT AX

XOR AX,DX ROR AX,1

AX= __________ 。

4.假设(DS)=3000H,(SS)=3000H,(AX)=2000H,(BX)=1200H,(SI)=2,(DI)=1,(SP)=100H, (31200H)=50H,(31201H)=10H,(31202H)=0F7H,(31203H)=90H请写出下列指令单独执行完后,AX BX的内容. 1. SUB AX,BX 2. PUSH AX

3. LEA BX,20H[BX][DI] 4. XCHG AX,2[BX]

5.ADD AX,DS:[1200H]

5.逐条解释下列程序段的每条指令,并说明它们的功能。 MOV AL,[BX]; TEST AL,80H; JZ PO;

MOV AL,-1; JMP DONE;

PO MOV AL,1; DONE RET

该段程序的功能是:

6.已知:(AX)=2233H, (BX)=5566H, 执行了下面的程序段后, (AX)=_______ , (BX)=______ . CMP AX,BX JG NEXT XCHG AX,BX NEXT: NEG AX

7.已知: (AX)=6666H, (BX)=0FF00H, (CF)=0。在执行下面程序段后: (AX)=________, (BX)=_________, (CF)=________. MOV AX,5555H AND AX,BX XOR AX,AX NOT BX

8.下段程序完成后,AH 等于什么?

IN AL, 5FH TEST AL, 80H JZ L1

MOV AH, 0 JMP STOP

L1: MOV AH, 0FFH STOP: HLT

答:讨论从端口5FH 输入的数据最高位的情况。若最高位为1,则AH=0;若最高位为0,则AH=0FFH。

9、若(CS)=2000H,(DS)=3000H,(SS)=4000H,(ES)=3800H,(BX)=1230H,(DI)=0250H, (SI)=1580H,(BP)=2030H,写出下列指令中源操作数的物理地址: (1)MOV AX,[BX] (2)MOV BX,[BP]

(3)MOV CX,[BX+SI+0050H] (4)ES:MOV BX,[SI+BP] 答: (1)MOV AX,[BX] 源操作数的物理地址:16(DS)+(BX)=30000H+1230H=31230H (2)MOV BX,[BP] 源操作数的物理地址:16(SS)+(BP)=40000H+2030H=42030H (3)MOV CX,[BX+SI+0050H] 源操作数的物理地址:

16(DS)+(BX+SI+0050H)= 30000H +1230H+1580H+0050H=32800H (4)ES:MOV BX,[BP+SI] 源操作数的物理地址:

16(ES)+(BP+SI)=38000H+2030H+1580H = 3B5B0H 10、若(SP)=3800H , (AX)=2500H , (BX)=1850H , (CX)=1050H , (SI)=1400H 数据段中有效地址为1850H单元内容为65H ,1851H单元内容为20H ,1400H单元为35H,1401H单元为40H ,执行下列执令后,寄存器SP ,AX ,BX ,CX 中内容以及内存单元1400H,1401H,1850H ,1851H单元内容各是什么? PUSH SI PUSH CX PUSH AX

MOV AX ,[BX]

ADD [SI] ,AX MOV [BX] ,CX POP CX POP BX

答:AX=2065H,BX=1050H,CX=2500H,SP=37FEH,(1400H)=9AH, (1401H)=60H, (1850H)=50H, (1851H)=10H

11、下面这些指令中哪些是错误的?

ADD AL,25H; MOV [1250H],[BX];

MOV ES,DS; ADC AX, [SI]; OUT 205H,AL; POP ES; PUSH AL; RCL BL,CL; SUB [2164H],CL; MOV SS,1000H;

本文来源:https://www.bwwdw.com/article/d7fd.html

Top