微机原理习题答案

JNZ NEXT HLT

NEXT: INC CX HLT

7.试给出下列各指令的机器目标代码:

(1) MOV BL,12H[SI] (2) MOV 12H[SI],BL (3) SAL DX,1

(4) ADD 0ABH[BP][DI],1234H 答: (1) 10001010,11011111=8ADF; (2) 10001000,01011100=885C; (3) 11010001,11100010=D1E2; (4) 10000001,10000001=8181. 8.执行下列指令后:

STR1 DW ‘AB’ STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT

寄存器CL的值是多少?寄存器AX的值是多少?

答:寄存器CL的值为12H,寄存器AX的值为4241H。

9.JMP FAR PTR ABCD(ABCD是符号地址)的转移方式是什么?

答:JMP FAT PTR ABCD 的转移方式是段间直接转移.

12.运算型指令的寻址和转移型指令的寻址,其不同点在什么地方?

答:运算型指令的寻址包括立即数寻址。寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址和基址加变址寻址方式。这些寻址方式中,CS,IP寄存器的内容不会发生变化。 转移型指令的寻址方式包括段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址。在后三种寻址方式中,CS,IP寄存器的内容发生改变。

13.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令”MOV AX,TABLE”和”LEA AX,TABLE”后,(AX)中的内容分别为多少? 答:执行MOV AX , TABLE后(AX)=1234H

执行LEA AX, TABLE 后 (AX)=0032. 14.当指令”SUB AX,BX”执行后,CF=1,说明最高有效位发生了什么现象?对无符号

数来说,操作结果发生了什么现象?

答:执行指令SUB AX,BX后,CF=1,说明最高位发生了借位对无符号来说,操作结果发生了溢出。

15.在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为

30H、6CH、0B8H,则转向地址LAB的值分别为多少? 答:转向地址LAB的值分别为: 1000×10H+2H+30H=10032H

1000×10H+2H+6CH=1006EH 1000×10H+2H+B8H=100BAH

16.下面两个语句的区别在什么地方:

X1 EQU 1000H X2=1000H 答:“EQU”和“=”都可以作为赋值语句,但二者的区别是EQU伪操作中的表达式是不许重复定义的,而“=”伪操作则许重复定义。 17.调用指令CALL可进行哪四种调用?

答:调用指令CALL可进行段内直接调用,段内间接调用。段间直接调用。段间间接调用。

18.(AL)=9AH,(BL)=0BCH,当分别进行下列指令运算后,请写出标志位ZF、PF、CF、

SF的内容:( P8050)

(1) ADD AL,BL (2) SUB AL,BL (3) AND AL,BL (4) OR AL,BL (5) XOR AL,BL

答:(1)ADD AL,BL 1 0 0 1 1 0 1 0 +)1 0 1 1 1 1 0 0 1,0 1 0 1 0 1 1 0 ∴ZF=0,PF=1 CF=1 SF=0

(2)SUB AL,BL

1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 —)1 0 1 1 1 1 0 0 —〉 +)0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0

∴ ZF=0 PF=1 CF=1 SF=1 (3)AND AL,BL

1 0 0 1 1 0 1 0

AND)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=0 CF=0 SF=0 1 0 0 1 1 0 0 0 (4)OR AL,BL

1 0 0 1 1 0 1 0 OR)1 0 1 1 1 1 0 0

∴ ZF=0 PF=1 CF=0 SF=0 1 0 1 1 1 1 1 0 (5)XOR AL,BL

1 0 0 1 1 0 1 0

XOR)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=0 CF=0 SF=0 0 0 1 0 0 1 1 0

19.若(SP)=2800H,试用两种方法实现(SP)=27FEH. 答:方法一:执行一次PUSH指令 PUSH CX

方法二:执行一次PUSHF指令

20.试简述LES REG,SRC所完成的操作? 答:LES REG,SRC 是将SRC和SRC+1中的偏移量送到REG 寄存器,而将SRC+2和SRC+3中的段基址送ES段寄存器。

21.关系操作符EQ、NE、LT、GT、LE、GE计算的结果为逻辑值,试问0FFFFH代表

假,0代表真是否正确?

答:0FFFFH代表真。0表示结果为假。

22.堆栈存取操作是以字节为单位的.试分析当堆栈存入数据和从堆栈取出数据时SP 的变化?

答:当堆栈存入一个字时,(SP)<—SP—2

从堆栈中取出一个字时(SP)<—SP+2

23.试编写汇编程序段完成以下功能:将1000个字符的字符串从内存的BUFFER1搬

移到内存的BUFFER2中去。 解答 LEA SI,BUFFER1 LEA DI,BUFFER2 MOV CX,1000 CLD

REP MOVSb

24.试编写汇编程序段完成以下功能:将数据段中100个字的数据块BLOCK1搬移到

同一个数据段的BLOCK2中去。 解答: LEA SI,BLOCK1 LEA DI,BLOCK2 MOV CX,100 CLD

REP MOVSW

25.试编写汇编程序段完成以下功能:比较DEST和SOURCE中的500个字节,找出

第一个不相同的字节,如果找到,则将SOURCE中的这个数送AL中。 解答: CLD

LEA DI,DEST LEA SI,SOURCE MOV CX,500 REPE CMPB JCXZ NEXT DEC SI

MOV AL,BYTE PTR[SI] NEXT:HLT

26.试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区

中,

有100个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。 解答:MOV BX,OFFSET BLOCK

MOV AX,[BX] MOV CX,100 ADD BX,2 F0:CMP AX,[BX]

JGE F1 MOV AX,BX F1:ADD BX,2

JCXZ NEXT JMP F0

MOV MAX,AX NEXT:HLT

27.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据

21H的物理地址是多少? 解答:

07H 21H <—原栈顶20100

存放数据21H的物理地址是200FFH

第六章

9.某系统中设置三片8259A级联使用,一片为主8259A;两片为从8259A;它们分别接入主8259A的IR2和IR6端。若已知当前主8259A和从8259A的IR3上各接有一个外部中断源,它们的中断类型码分别为A0H,B0H和C0H,已知它们的中断入口均在同一段中,其段基址为2050H,偏移地址分别为11A0H,22B0H和33C0H,所有中断都采用电平触发方式、完全嵌套、普通EOI结束,请(1)画出它们的硬件连接图;(2)编写全部初始化程序。 解答:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4