微机原理练习题 下载本文

1. 125D=( )B=( )H? 1000D=( )H=( )O

2. 8位二进制有符号数A=1110 0001B,则A-1=( )B 3 求1111-1010

4.用8个二进制位表示一个数,则: - 3=( )B?

5.用8个二进制位表示一个数,则:最大的负整数为( )H? 6.已知某存储单元的段基址2000H、偏移地址为1000H,求其物理地址。

7.CS段寄存器的内容为3F00H,IP寄存器的内容为1000H,则下一条指令的物理地址为() 8. 已知当前DS=1000H,将物理地址为12000H的存储单元内容输入到AX寄存器。 9. 已知当前DS=3000H,将物理地址为12000H的存储单元内容输入到AX寄存器。 10. 将数据30H输出到端口地址为2000H的外设 11. 执行下列指令后,AL=? XOR AL, AL MOV AL, 90H CMP AL, 20H RCL AL, 1 ADC AL, 10H TEST AL, FFH SUB AL, 30H

12.已知DS寄存器内的内容即为当前数据段的段地址。将32个字节的数据块从地址1000H开始的存储单元传送到地址1400H开始的存储单元。 13. 将AL左移两位的指令 若SS=1000H,SP=1000H,AX=1234H,BX=5678H,试说明执行下列指令之后,SP=? SS=? CX=? PUSH BX PUSH AX POP CX

14设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问: (1) 执行指令PUSH AX后SP=?

(2) 再执行下列两条指令后,SP=?AX=?BX=? PUSH BX

POP AX

15.编程将1000H传送给端口地址为10H、11H的外设 16.问执行下列指令后,AL=?,CF=?

MOV AX,1000H MOV DS,AX MOV BX,0FF00H MOV [100H],BX MOV AL,[101H] ADD AL,1

17..判断存储单元1000:1030H内存储的数据是否负数,若是,将-1送入存储单元1000:1031H;若不是,将0送入存储单元1000:1031H 算法: a. 设段寄存器 b. 取该数到AL

c. 该数左移一位,符号位送CF

d. 若为负数,转f

e. 若不为负数,0送1000:1031H,转g f. -1送1000:1031H g. 停机

MOV DS, 1000H ; 1 MOV SI, 1030H ; 2 MOV AL, SI ; 3 SHL AL, 1 ; 4 JNZ LP1 ; 5 MOV [1031], 0 ; 6 LP1: MOV [1031H], -1 ; 7 HALT

18. 指出下列指令中的错误: 主程序: ...

CALL PRO1 ; 1 ... 子程序:

PRO1: PUSH AX ; 2 PUSH BX ; 3

MOV AL, 1 ; 4 MOV BL, 2 ; 5 ADD AL, BL ; 6

POP AX ; 7 POP BX ; 8

IRET ; 9

19. 已知存储器的一段数据区的内容如下: 1000: 0000 12 25 38 40 58 68 77 81 .... ....

用DEBUG编写的指令段如下: 1110: 0001 MOV AX, 1000 1110: 0004 MOV DS, AX 1110: 0006 MOV SI, 2

1110: 0009 MOV AH, [SI+1] 1110: 000C MOV AL, [SI+3] 1110: 000F ADD AH, AL 1110: 0011

问:1. MOV AH, [SI+1]指令在存储器指令区的存储地址。

2. 该段指令的执行结果

3.指出如下汇编程序的错误之处 S1 SEGMENT

SBUFF DB 10 DUP (?)

S1 ENDS

C1 SEGMENT

ASSUME CS:C1, SS:S1, DS:DATA

A1: MOV AL,1 ADD AL,2

C1 ENDS

20. 如下图所示的8255A与8086连线, 问8255A的四个端口地址。若要其端口地址设置为40-43H,问如何接线?

8 D0 ~D7 AD0~A

8 地址锁存 A器 A1

A

A15

& CS(平) M/IO(平)

RD(平)

RD(平) WR(平