微型计算机技术答案第三版孙德文编.ppt

上传人:本田雅阁 文档编号:3195300 上传时间:2019-07-29 格式:PPT 页数:48 大小:585.01KB
返回 下载 相关 举报
微型计算机技术答案第三版孙德文编.ppt_第1页
第1页 / 共48页
微型计算机技术答案第三版孙德文编.ppt_第2页
第2页 / 共48页
微型计算机技术答案第三版孙德文编.ppt_第3页
第3页 / 共48页
微型计算机技术答案第三版孙德文编.ppt_第4页
第4页 / 共48页
微型计算机技术答案第三版孙德文编.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《微型计算机技术答案第三版孙德文编.ppt》由会员分享,可在线阅读,更多相关《微型计算机技术答案第三版孙德文编.ppt(48页珍藏版)》请在三一文库上搜索。

1、作业评讲,第3章,3.1(1)MOV CL,BX+20HSI,指令的功能是将内存单元DS:BX+20H+SI=DS:0056H=09226H 的字节数据传送到CL寄存器。 已知(09226H)=00F6H,按高高低低的存放原则, 09226H单元的数据应为其低字节,故(09226H)=F6H 故运行后,CL=(09226H)=F6H,3.1(2)MOV BPDI,CX,指令的功能是将寄存器CX中的数据传送到内存单元SS:BP+DI=SS:0056H=09226H 已知(09226H)=00F6H, 该指令运行后,(09226H)=CX=5678H 注意:若用寄存器BP间接寻址,则数据默认在堆栈

2、段内。,3.1(3) LEA BX,BX+20HSI MOV AX,BX+2,第1条指令的功能是内存单元的有效地址传送到BX中。指令运行后,BX=BX+20H+SI=0056H 第2条指令的功能是将内存单元 DS:BX+2=09228H 中的数据传送到AX,指令运行后, AX=(09228H)=1E40H,3.1(5) XCHG CX,BX+32H XCHG BX+20HSI,AX,第1条指令的功能是内存单元 DS:BX+32H=09226H 中的数据和CX相交换。指令运行后, CX=(原09226H)=00F6H (09226H)=(原CX)=5678H 第2条指令的功能是将AX和内存单元

3、DS:BX+20H+SI=09226H 相交换,指令运行后, AX=(09226H)=5678H(注意,在上一条指令中,09226H单元的数据已变为5678H.) (09226H)=(原AX)=1234H,3.2(2) MOV AX,1352H,指令的功能是将内存 DS:1352H=11352H 中的数据传送到AX. 已知:(11352H)=0FFH,但由于AX为字,故需从内存中取2个字节组合形成一个字,因此11352H和其后的地址为11353H的两个内存单元形成的字数据为26FFH. 指令运行后,AX=26FFH,3.2(3) MOV 0150HBX,CH,指令的功能是将CH中的字节数据传送

4、到 DS:0150H+BX=11350H 内存单元中。 已知:CX=339AH,故CH=33H 指令运行后, (11350H)=33H,(11351H)=3CH 注意:指令对11351H内存单元的数据没有影响,它仍是原来的值。,3.2(4) MOV AX,0150HBP,指令的功能是将内存单元SS:0150H+BP=21350H 中的字数据传送到AX中。 已知:(21350H)=88H, (21351H)=51H, 指令运行后, AX=5188H,3.2(5) POP AX,指令的功能是将堆栈栈顶 SS:SP=21350H 的字数据弹出到AX中,再将SP+2SP。 已知:(21350H)=88

5、H, (21351H)=51H, SP=1350H. 指令运行后: AX=5188H,SP=1352H,3.2(6) ADD SI,CX,指令的功能是将内存单元 DS:SI=11354H 的字数据与CX中的字数据相加,再将相加后的结果存在11354H内存单元中。 已知:(11354H)=52H, (11355H)=0E7H, 形成的字为:E752H 指令运行后: (11354H)=0ECH, (11355H)=1AH,SF=0,ZF=0,PF=0,CF=1,OF=0,3.2(7) SUB BH,0150HBXSI,指令的功能是将BH中的字节数据与 DS:0150H+BX+SI=126A4H 中

6、的字节数据相减,再将相减后的结果存在BH中。 已知:BH=12H,(126A4H)=9DH, 指令运行后: BH=75H ,SF=0,ZF=0,PF=0,CF=1,OF=0,3.2(8) INC BYTE PTR 0152HBX,指令的功能是将内存单元 DS:0152H+BX=11352H 中的字节数据加1,再将加1后的结果存在11352H内存单元中。 已知:(11352H)=0FFH, 指令运行后: (11352H)=00H,(11353H)=26H,CF=0(或不变),3.2(9) INC WORD PTR 0152HBX,指令的功能是将内存单元 DS:0152H+BX=11352H 中的

7、字数据加1,再将加1后的结果存在11352H内存单元中。 已知:(11352H)=0FFH, (11353H)=26H指令运行后: (11352H)=00H,(11353H)=27H,CF=0(或不变),3.2(10) SAR BYTE PTR 0150HBX,1,指令的功能是将内存单元 DS:0150H+BX=11350H 中的字节数据算术右移1次,再将移位后的结果存到11350H内存单元中。 已知:(11350H)=0A5H 指令运行后, (11350H)=0D2H,CF=1,OF=0,3.2(11) SAL BYTE PTR 0150HBX,1,指令的功能是将内存单元 DS:0150H+

8、BX=11350H 中的字节数据算术左移1次,再将移位后的结果存到11350H内存单元中。 已知:(11350H)=0A5H 指令运行后, (11350H)=4AH,CF=1,OF=1,3.4 (1) MOV BL,85H;BL=85H MOV AL,17H;AL=17H ADD AL,BL;AL=9CH DAA;调整,9CH+06H=A2H,A2H+60H=02H,CF=1 故AL=02H,BL=85H,CF=1,3.4(2) MOV AX,BX;AX=BX NOT AX;AX取反后,原来数据中的0变为1,1变为0 ADD AX,BX;AX=FFFFH,CF=0 INC AX;AX=0,CF

9、不变,仍为0 故AX=0,CF=0,3.4(3) MOV AX,0FF60H;AX=FF60H STC;CF=1 MOV DX,96;DX=0060H,因此DH=00H,DL=60H XOR DH,0FFH;DH=FFH,CF=0 SBB AX,DX;AX-DX-CF=FF60H-FF60H-0=0,由于相减过程并未产生借位,故CF=0 上述指令段运行后,AX=0,CF=0,3.4(4) MOV BX,0FFFEH MOV CL,2 SAR BX,CL SAR为算术右移,低位移出到CF中,高位用符号位填充。 故运行结果为:BX=0FFFFH,CF=1,3.6 (1)0 (2)1 (3)-1,3

10、.10 BX=0F00H,CF=0 3.11 (1) AX (2)带符号数,第4章,4.1,ARRAYB,ARRAYW,4.2 38(或26H) 4.6 002CH 4.7 16 4.9 (1) DA1 DB 20H DUP(2,3,10 DUP(4),7) (2) DA2 DW TS,DU,NE,ST (3) COUNT EQU DA2-DA1,4.10 MOV CX,10 AAA 4.11 MOV CX,CUNT ADD AL,30H 4.12 字符串中$的个数,4.13 XCHG SI,DI XCHG SI,DI 4.14 (1)测试AL,BL中的数据的正负,若符号不相同,则交换两寄存器

11、;若符号相同,则不改变两寄存器中的数据。 (2)AL=77H,BL=9AH,4.15,AL寄存器:,程序执行后的AL寄存器变为:,编程思路: 将AL逻辑左移1位,最高位D7位被移出,移到CF。再将寄存器AH带进位的循环右移1次,将最低位移到CF,原CF被移到最高位。继续这一过程,共需移位8次即可实现。,MOV AL,23H MOV AH,00H MOV CX,8 NEXT:SHL AL,1 RCR AH,1 LOOP NEXT MOV AL,AH,4.16 MOV CX,26 LEA BX,CHAR MOV AL,A NEXT:MOV BX,AL INC BX INC AL LOOP NEXT

12、 HLT,4.17 MOV AL,X CMP AL,0 JGE Y1 NEG AL Y1: MOV Y,AL HLT,4.18 MOV CX,20 MOV AX,0 LEA BX,SUM NEXT:ADD AX,BX INC BX INC BX LOOP NEXT MOV SUM,AX HLT,4.19 DATA SEGMENT BUF DB 12H ASC DB ?,? DATA ENDS,CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF MOV CL,4 SHR AL,CL ADD AL,

13、30H MOV ASC,AL MOV AL,BUF AND AL,0FH ADD AL,30H MOV ASC+1,AL MOV AH,4CH INT 21H CODE ENDS END START,4.20 DATA SEGMENT A1 DB N EQU $-A1 A2 DB N DUP(?) SL DB ? DATA ENDS,CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,A1 LEA DI,A2 MOV CX,N MOV AL,SI CMP AL,a JB AGAIN C

14、MP AL,z JA AGAIN INC DL MOV DI,AL INC DI AGAIN: INC BX LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START,4.22,MOV AL,STATUS MOV BL,0 AND AL,00101010B AGAIN: AND AL,AL JZ ROUT4 SHR AL,1 JNC AGAIN INC BL JMP AGAIN CMP BL,1 JE ROUT1 CMP BL,2 JE ROUT2 JMP ROUT3 ROUT1: ROUT2: ROUT3: ROUT4:,4.23,CODE SEGME

15、NT START: MOV AX,DATA MOV DS,AX LEA BX,STRING NEXT: MOV AL,BX CMP AL,20H JE SAVE INC SI CMP AL,$ JE EXIT JMP NEXT SAVE: MOV POST,BL JMP OVER EXIT: MOV POST,-1 OVER: MOV AH,4CH INT 21H CODE ENDS END START,DATA SEGMENT STRING DB STUDENT HELLO$ POST DB ? DATA ENDS,第5章,5.1 (1)64片,11位地址作为片外译码 (2)1024片,10

16、位地址作为片外译码 (3) 64片,9位地址作为片外译码 (4) 32片,4位地址作为片外译码,5.2,512=29,故每块芯片需要9条寻址线。,4K=22*210=212,故4KB系统需要12条寻址线。,5.3 地址范围:FF000H-FFFFFH 存储容量:4KB,5.4 RAM存储容量为:2KB 地址范围为:F9000H-F97FFH(或F98000H-F9FFFH) EPROM存储容量为:4KB 地址范围为:FD000H-FDDFFH,5.8 1#的地址范围为:04000H-05FFFH 2#的地址范围为:02000H-03FFFH 存储器的总容量为:213*8b*2=8KB*2=16

17、KB,第6章,6.8 AGAIN: MOV AL,01111111B NEXT: OUT 20H,AL CALL DELAY ROR AL,1 JC NEXT JMP AGAIN HLT,第7章,7.2 内部中断和外部中断,其中,内部中断有除法出错,溢出,断点,指令,单步中断。外部中断有INTR和NMI。 7.5 ,7.6(略,请参考书上) 7.7 (1)1单步中断;2溢出中断;3、4、5为指令中断,除法出错,断点中断。 (2)引脚6为NMI,7为INTR,8为INTA (3)8259,功能略,请参看书上,第8章,8.6,8.8略,请参看书上。 8.21 用N表示计数初值,则N=1MHZ/40

18、kHz=25 输出方波的0占(N-1)/2=12个脉冲周期,故时间为12*1/1MHZ=12us 输出方波的1占(N-1)/2+1=13个脉冲周期,故时间为13*1/1MHZ=13us,8.35 ;写方式控制字到控制字寄存器,A口作输入口,C口作输出口 MOV AL,90H OUT 63H,AL ;控制程序 AGAIN:IN AL,60H;读A口中的数据到AL AND AL,03H;取出最低2位 CMP AL,0 JZ YELLOW CMP AL,1 JZ GREEN CMP AL,2 JZ RED YELLOW:MOV AL,4 JMP CONT GREEN:MOV AL,2 JMP CON

19、T RED: MOV AL,1 CONT:OUT 62H,AL CALL DELAY JMP AGAIN,习题:8.24 8253A-5的计数通道0连接如图习8-4所示,试回答: (1)计数通道0工作于何种方式,并写出工作方式名称; (2)写出计数通道0的计数初值(列出计算式) (3)写出初始化程序,解: (1)由于出现一个CLK周期宽度的负脉冲的方式有方式25两种,但是GATE0是一直保持高电平,因此方式5是无法触发的,因此可以判断计数通道0工作于方式2 (2)因为CLK周期宽度为400ns, CLK正脉冲宽度为200ns,因此 计数通道0的计数初值= 1ms/ 400ns=2500 (3)

20、初始化程序段(设8253的口地址为:80H-83H) MOV AL,0001 0101B MOV 83H,AL MOV AL,00H OUT 80H,AL MOV AL,25H OUT 80H,AL,习题:8.25(P376) 若8253计数器对设备的转轴的旋转速度进行测试,接口电路如图习8-5所示。从图可知,若与转轴相连的转盘上均匀地钻有50个圆孔,当旋转时,通过光电转换,每通过一个小孔,产生一个正脉冲,当转轴转一圈,就会产生50个脉冲通过CLK输入8253计数器进行减法计数,若假设此转轴的速度范围在50-1000转/秒,并设8253的端口地址为84H87H。 (1)若采用定时测试已转换过的

21、脉冲个数而转换为测试转轴的速度,单位为转/秒。说明它的计算过程。 (2)若用计数器0对脉冲计数,用计数器1作为定时,设它的CLK1频率为200KHz,用定时100ms来计数。写出计数器0、1的工作方式控制字和计数初值,并注释,并且写出8253的初始化程序。,解: 因为最高转速为1000转/秒,因此,转一圈的脉冲数最高为100050=50000个=C350H,因此计数器必须用16位计数,并且用二进制计数。 (1)采用定时测试已转速,计算方法为: 是定时时间为:TIME=100ms=0.1s 则 转速=(定时到的计数值/50)/0.1s 转/秒 (2)初始化程序段: 计数器0初始化程序段: 计数初值=0000H MOV AL,0011 0000B ;通道0,方式0,16位计数,二进制计数 OUT 87H,AL MOV AL,00 OUT 84H,AL OUT 84H,AL,计数器1初始化程序段: 计数初值= 100ms / (1/200kHz)=100/0.5=20000=4E20H MOV AL,0111 0000B;通道1,方式0,16计数,二进制计数 OUT 87H,AL MOV AL,20H OUT 85H,AL MOV AL,4EH OUT 85H,AL,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1