MIS 硬件原理复习内容
1. 数的不同进制转换,原码、反码、补码转码,BCD码 2. 掌握D触发器逻辑
3. D触发器组成的电路:卡诺图及简化、真值表、波形图、状态转换图 4. 三态门、总线结构
5. 存储器扩展方法:地址总线的作用,内存分页技术,地址译码方法,译码器 6. 86X 系列 CPU 结构框图 7. 8086寄存器组,寻址方式 8. 指令,伪指令
9. 数据定义,完整程序结构 10. 汇编语言上机及调试过程
1. 分别指出下列指令中的源操作数和目的操作数的寻址方式:
(1) MOV SI, 200 (2) MOV CX, DATA[SI] (3) ADD AX, [BX][DI] (4) AND AX, BX (5) PUSHF
2. 指出指令 MOV AX, 2010H 和 MOV AX, DS:[2010H]的区别 3. 写出以下指令中内存操作数的所在地址
(1) MOV AL, [BX+5] (2) MOV [BP+5], 5 (3) INC BYTE PTR[SI+3] (4) MOV DL, ES:[BX+DI] (5) MOV BX, [BX+SI+2]
4. 判断下列指令书写是否正确
(1) MOV DS, 0100H (错) (2) MOV AL, BX (错) (3) MOV BL, F5H (错) (4) MOV DX, 2000H (对) (5) INC [BX] (对) (6) MOV 5, AL (错) (7) MOV [BX], [SI] (错) (8) PUSH CS (对) (9) POP CS (错)
5. 若SP=2000H, AX=3355H, BX=4466H, 试指出执行下列指令后有关寄存器的值:
(1) PUSH AX;执行后AX=? SP=? (AX=3355H SP=1FFEH) (2) PUSH AX
PUSH BX
POP DX;执行后 AX=? DX=? SP=? (AX=3355H DX=4466H SP=1FFEH)
6. 假设想从100中减去AL中的内容,用SUB 100, AL是否正确?如果不对,应用什么方法?
7. 有如下程序,当AL某位为何值时,可将程序转至AGIN2语句。 AGIN1: MOV AL, [DI] INC DI
TEST AL, 04H JE AGIN1
…
AGIN2: … (AL的第三位为1)
8. 编程使
(1) AX 寄存器低4位清零 (2) BX 寄存器低4位置1 (3) CX寄存器低4位求反 (4) 用TEST指令测试DL寄存器位3,位6是否同时为0,若是,将
0送DL;否则,1送DH。 9. 设AX寄存器中又一个16位二进制数,编一程序,统计AX中“1”的个数,统计结果送CX中。 10. 在下列程序的括号中分别填入如下指令:
(1) LOOP L20 (AX=4, BX=11, CX=0, DX=0) (2) LOOPE L20 (AX=2, BX=4, CX=2, DX=2) (3) LOOPNE L20 (AX=4, BX=11, CX=0, DX=0)
试说明在三种情况下,当程序执行完成后,AX, BX, CX, DX四个寄存器的内容分别是什么?
MOV AX, 01 MOV BX, 02 MOV CX, 03 MOV DX, 04
L20: INC AX
ADD BX, AX SHR DX, 1 ( ) RET
11. 假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为q,(X和Y为低位字)试说明下列程序段做什么工作? MOV DX, X+2 MOV AX, X ADD AX, X ADC DX, X+2 CMP DX, Y+2
JL L2 JG L1
CMP AX, Y JBE L2
L1: MOV AX, 1
JMP SHORT EXIT
L2: MOV AX, 2 EXIT: INT 20H
(当2p<=q,AX=2H,当2p>q,AX=1H)
12. 判断下列指令书写是否正确。
(1) MOV AL, BX (错) (2) MOV AL, CL (对) (3) INC [BX] (对) (4) MOV 5, AL (错) (5) MOV [BX], [SI] (错) (6) MOV BL, 0F5H (对) (7) MOV DX, 2000H (对) (8) POP CS (错) (9) PUSH CS (对)
13. 设(BX)=0E3H, 变量VALUE中存放的内容为79H,确定下列各指令单独执行后bx的结果。
(1) XOR BX, VALUE (BX =9AH) (2) AND BX, VALUE (BX =61H) (3) OR BX, VALUE (BX =0FBH) (4) XOR BX, 0FFH (BX =1CH) (5) AND BX, 0 (BX =0H) (6) TEST BX, 01H (BX =0E3H) 14. 现有(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100H)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=B7H, (21203)=65H,实说明下列各条指令中源操作数的寻址方式,及各指令执行完成后AX寄存器的内容
(1) MOV AX, 1200H (立即数寻址,AX=1200H) (2) MOV AX, BX (寄存器寻址,AX=0100H) (3) MOV AX, [1200H] (直接寻址,AX=4C2AH) (4) MOV AX, [BX] (数据段基址寻址,AX=3412H) (5) MOV AX, 1100[BX] (寄存器相对寻址,AX=4C2AH) (6) MOV AX, [BX][SI] (基址加变址寻址,AX=7856H) (7) MOV AX, 1100[BX][SI](相对的基址加变址寻址,AX=
65B7H) 15. 执行下列指令后,AX寄存器中的内容是什么
TABLE DW 10, 20, 30, 40, 50
ENTRY DW 3 …
MOV BX, OFFSET TABLE ADD BX, ENTRY
MOV AX, [BX] (AX=1E00H)
16. 将内存(10050H)单元的内容拆成两段,每段4位,并将它们分别存入内存(10051)和(10052)单元。即(10050)单元中的低4位放入(10051)的低4位,(10050)单元的高4位放入(10052)的低4位,而(10051)和(10052)的高4位均为零。 设(10050)=7AH
MOV AX, 1000H MOV DS, AX MOV SI, 50H MOV AL, [SI] AND AL, OFH MOV [SI+1], AL MOV AL, [SI] MOV CL, 4 SHR AL, CL MOV [SI+2], AL
逻辑右移得高4位,存入内存(10052)单元
17. 求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放在内存(2800)单元中。 开始 初始化:清除CF
AX-BX AX
AX-BX>=0
再取出原始数 AL 用间址方法取数 AL 初始化 开始 用逻辑与指令取得低4位,存入(10051)单元 AX 内存(2800)和(2801)单元 BX-AX BX BX 内存(2800)和(2801)单元
CLC
SUB AX, BX JC AA
MOV DI, 2800H MOV [DI], AX HLT
SUB BX, AX MOV DI, 2800H MOV [DI], BX HLT
AA:
18.编写程序,从内存(2071H)中取一个数M,判断其值是否在10和20之间。如果M>=20,则送0FF H给(2073H) ;如果M <10,则送00H给(2073H);如果10<=M <20,则送88H给(2073H)。 开始
(2071H) (AL)
否
AL>=0 LP1 是
BL=0 否 AL>=20 LP2 是 BL=88H
BL=0FFH
LP3
AL 内存(2073)
暂停
START: MOV AL, (2071H)
CLC
CMP AL, 10 JC LP1