习 题
4.10 某RAM芯片的引脚中有12根地址线,8根数据I/O线,该存储器芯片的容量为多大?若该芯片在系统中的起始地址为1000H,其结束地址是多少? 解:4K*8,5095H
4.11 某CPU有16根地址线(A0~A15),试分析下图中片选信号 ̄ ̄、CS1 ̄ ̄所指定的存储器地址范围。CS2
解:
 ̄ ̄:CS10000H-6FFFH,或者1000H-7FFFH,或者8000H-EFFFH  ̄ ̄CS2: 0000H-6FFFH
4.12 试为8088CPU设计192K×8位存储器系统。其中程序区为64K×8位,置于CPU寻址空间最高端,采用27256(32K×8位);数据区为128K×8位,采用62256(32K×8位),置于寻址空间最低端。写出地址分
配关系,画出所设计的电路图。 解:
CPUA12A15 &CS1≥CS2
RAM: 00000-07FFFH ROM: 20000-27FFFH
08000-0FFFFH 28000-2FFFFH 10000-17FFFH 18000-1FFFFH
习题五
5.1 分别指出下列指令中源操作数和目的操作数的寻址方式。
(1) MOV BX,1000H (3) MOV BUF[BX],AX
(2) MOV BL,[BX]
(4) MOV BX,[BP][SI]
文件名:微机原理与接口技术习题 第 5 页 共 54 页
错误!未指定书签。与接口技术
(5) MOV [DI],DL (6) MOV AX,RESULT
解: (1)源:立即数寻址;目的:寄存器寻址
(2)源:寄存器间接寻址;目的:寄存器寻址 (3)源:寄存器寻址;目的:寄存器相对寻址 (4)源:基址变址寻址;目的:寄存器寻址 (5)源:寄存器寻址;目的:寄存器间接寻址 (6)源:直接寻址;目的:寄存器寻址
(7)源:寄存器寻址:目的:直接寻址; (8)源:相对基址变址寻址;目的:寄存器寻址
5.2 设已知:(BX)=2000H,(SI)=120H,(DS)=1200H,(SS)=200H,(BP)=3000H,符号地址VARE=1000H。试回答在以下各种寻址方式下操作数存放于何处,如果是在存储单元中,则计算单元的物理地址是什么? (1)使用BX的寄存器寻址(例如:MOV AX,BX)
(2)立即数寻址(例如:MOV AX,1234)
(3)使用BX的寄存器相对寻址(例如:MOV AX,[BX]) (4)直接寻址(例如:MOV AX,[1234])
(5)使用SI的寄存器间接寻址(例如:MOV AX,[SI])
(6)使用BP和SI的基址变址寻址(例如:MOV AX,[BP][SI])
(7)使用BX和SI的相对基址变址寻址(例如:MOV AX,[BX][SI])
解: (1)操作数在BX寄存器中;
(2)操作数在指令中;
(3)操作数在存储单元中,物理地址=15000H; (4)操作数在存储单元中,物理地址=13000H; (5)操作数在存储单元中,物理地址=12120H; (6)操作数在存储单元中,物理地址=05120H; (7)操作数在存储单元中,物理地址=15120H。
5.3 现有(DS)=2000H,(BX)=100H,(SI)=2H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H),(21203H)=65H。试指出下列各条指令单独执行后累加器中的内容是什么?
(1) MOV AX,1200H (2) MOV AX,BX
(3) MOV AX,[1200H] (4) MOV AX,[BX] (5) MOV AX,1100H[BX] (6) MOV AX,[BX[SI] (7) MOV AX,1100H[BX][SI] (8) MOV AL,[BX]
解: (1)(AX)=1200H; (2)(AX)=100H; (3)(AX)=4C2AH; (4)(AX)=3412H
(5)(AX)=4C2AH; (6)(AX)=7856H; (7)(AX)=65B7H; (8)(AX)=××12H
5.4 指出下列指令的错误是什么?
(1) MOV BL,AX (2) MOV [BX],[BP+SI] (3) MOV CS,AX (4) MOV DS,1000H (5) MOV BX,[SI][DI] (6) MOV [2000H],10
解: (1)类型属性不匹配; (2)两操作数都是存储单元; (3)把CS用作目的操作数
(4)立即数送段寄存器; (5)源操作数中两个均为变址寄存器; (6)类型属性不明确
5.5 设当前数据段寄存器的内容为1B00H,在数据段偏移地址为2000H开始的单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画出内存图。
解: LDS BX,[2000H]
MOV AX,[BX]
文件名:微机原理与接口技术习题 第 6 页 共 54 页
习 题
5.6 设当前(SP)=0100H,(AX)=2000H,(BX)=0B100H,试回答:
执行指令 PUSH AX后,(SP)为多少?画出堆栈示意图。
再执行指令 PUSH BX 和 POP AX 后,(SP)为多少?画出堆栈示意图。
解: (1) 执行 PUSH AX 后: (SP)=00FEH
(2) 执行 PUSH BX 和 POP AX 后: (SP)=00FEH
5.7 要求从85号端口读入一个字节数据,然后到数据段首地址为1000H的表格中换取相应的数据码,再将该数据输出至3000号端口,试编写指令序列。 解: IN AL,85
MOV BX,1000H XLAT
MOV DX,3000 OUT DX,AL
5.8 试编写将某十进制数字转换成七段代码的程序段。设该十进制数字存储在名为BCDKEY的字节变量中,要求将转换的结果送入RESULT变量(十进制数字与相应七段代码的对应表如下)。
十进制数字 0 1 2 3 4 5 6 7 8 9 七段代码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH
解: MOV AL,BCDKEY
MOB BX,DISPLAY XLAT
MOV RESULT,AL
5.9 根据以下要求编写相应的指令:
(1)将AX寄存器和BX寄存器的内容相加,结果存入BX寄存器。 (2)用增量指令使采用BX寄存器间接寻址的单元中的字节内容加1。
(3)用BX寄存器和位移量300H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,结果送回该存储单元中。
(4)用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AH寄存器的内容相加,并保存在AH中。
(5)采用合适的指令,将1000H单元中的字与1200H单元中的字相加,结果存入1000H单元。 解: (1) ADD BX,AX
(2) INC BYTE PTR[BX] (3) ADD [BX+300H],CX (4) ADD AH,[BX][SI] (5) MOV BX,1000H MOV AX,[1200H] ADD [BX],AX
5.10设以下表达式中的变量名均为16位带符号数所在单元的地址,编写指令序列,完成下列运算(出发运算的余数舍去):
(W×Y)/(A+70)→X
(A-B×C)/(X-Y)→Z
解:(1) MOV AX,W
IMUL Y
MOV BX,A ADD BX,70 IDIV BX MOV X,AX
(2) MOV AX,B
第 7 页 共 54 页
文件名:微机原理与接口技术习题
错误!未指定书签。与接口技术
IMUL C
MOV BX,AX MOV CX,DX MOV AX,A CWD
SUB AX,BX SBB DX,CX MOV BX,X SUB BX,Y IDIV BX MOV Z,AX
5.11 变量VARA1和变量VARA2已定义如下:
VARA1 DW 23A8H,0280H VARA2 DW 0A210H,1248H
(1)将VARA1和VARA2单元中的对应字数据相加,结果存入VARA2指示的单元中
(2)将VARA1单元中的两个字作为双字和VARA2单元中的两个字组成的双字相加,结果存放在VRAR2单元中,双字的存放格式都是低位字在低地址单元、高位字在高地址单元中。
解: (1) MOV AX,VARA1
ADD VARA2,AX
(2) MOV AX,VARA1
ADD VARA2,AX MOV AX,VARA1+2 ADC VARA2+2,AX
5.12 写出完成以下组合式BCD码计算的指令序列:
BCD1+BCD2-BCD3→DX
解: MOV AL,BCD1
ADD AL,BCD2 DAA
MOV DL,AL
MOV AL,BCD1+1 ADC AL,BCD2+1 DAA
MOV DH,AL MOV AL,DL SUB AL,BCD3 DAS
MOV DL,AL MOV AL,DH
SBB AL,BCD3+1 DAS
MOV DH,AL
5.13 指出下列各条指令是否正确,如不正确,则指出其错在何处。 (1) MOV CS,1000H (2) ADC BX,25H (3) ADD [BX],20 (4) MUL AX,BL (5) PUSH CS (6) MOV DX,2000H (7) ADD [BX+SI],30H (8) POP CS (9) INC [SI] (10)MOV [BX],[SI]
解: (1)错误 (2)正确 (3)错误 (4)错误 (5)正确
文件名:微机原理与接口技术习题 第 8 页 共 54 页
相关推荐: