1微型计算机原理与接口技术__课后答案_(邹逢兴_著)_清华大学出版社_第1页
1微型计算机原理与接口技术__课后答案_(邹逢兴_著)_清华大学出版社_第2页
1微型计算机原理与接口技术__课后答案_(邹逢兴_著)_清华大学出版社_第3页
1微型计算机原理与接口技术__课后答案_(邹逢兴_著)_清华大学出版社_第4页
1微型计算机原理与接口技术__课后答案_(邹逢兴_著)_清华大学出版社_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 1.8 解: X 补00111011 - X 补11000101 Y 补00111011 - Y 补11000101 1. X + Y 补1110011 X + Y = 1001100 = ( -25 )10 0 0 1 1 1 0 1 1 + 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 C1=0, C2=0 C1 C2=0, 无溢出 2. X - Y 补10001111 0 0 1 1 1 0 1 1 + 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 C1=1, C2 = 0 C1 C2 = 1 , 溢出 3. -X + Y 补01110001

2、1 1 0 0 0 1 0 1 + 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 C1=0, C2 = 1 C1 C2 = 1 , 溢出 4. -X - Y 补00011001 -X - Y = 00011001 = ( +25 )10 1 1 0 0 0 1 0 1 + 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 C1=1, C2 = 1 C1 C2 = 0 , 无溢出 1.9 解: 1 2 1. -( 2-2-23)2127 -12-126 12-126 ( 2-2-23)2127 不含特例0、 2. ? FB8789ABH 数符s1,阶码e1

3、1110111( 247) 10 尾数 f0.00001111000100110101011( 0.058888792) 10 v ( -1) s2e-127( 1 + f ) = -1.0588887922120 ? 58EBA987H 数符s1,阶码e10110001( 177) 10 尾数 f ( 0.841111063) 10 v ( -1) s2e-127( 1 + f ) = -1.841111063250 3. ? (- 86.57) 10 =1010110.10010001111010111 数符 s1,阶码 e127+6=133 尾数 f0.01011010010001111

4、010111B 单精度浮点数:C2AD23D7H ? (- 86.57) 10 =1010110.1001001 数符 s1, 阶码 e127+6 2 -4 = 0.0625, 2 -7 = 0.0078125 尾数 f0.0101101001001B 单精度浮点数: 1100 0010 1010 1101 0010 0100 0000 0000 C 2 A D 2 4 0 0 H 3 第二章 2.10 答: 1) MOV AX, 1234H 直接寻址、EA=1234H、PA=DS16+EA11234H 2) MOV AX, TABLE 直接寻址、EA=0100H、P

5、A=DS16+EA10100H 3) MOV AX, BX+100H 基址寻址、EA= BX+100H=140H、PA= DS16+EA10140H 4) MOV AX, TABLEBPSI 带位移的基址变址寻址、 EA= BP+SI+TABLE=195H、 PA= SS16+EA 20195H 2.12 答: 1) 目的操作数是 基址变址寻址,55AAH 2AD5H 2) 源操作数是 基址寻址,PA=SS16+BP+100H=30200H 3) 源操作数是 隐含寻址,PA=SS16+SP=30020H 4) 目的操作数是 变址寻址,PA= DS16+DI+500H=20800H 5) 目的操

6、作数是 隐含寻址,PA=SS16+SP=30020H 2.14 解: (BP)=4433H,(SP)=1022H, 2.15 1. ( CL ) = 0F6H 2. 1E4F6H = 78H 3. ( BX ) = 0056H , ( AX ) = 1E40H 4 4. ( SI ) = 00F6H , SI = 0024H 5. ( AX ) = 5678H , 09226H = 1234H 2.16 解: 1)MOV AX, COUNT SI DI 错,基址寻址用的寄存器只有 BX、BP,不能是 SI。 2)MOV ES, 1000H 错。立即数不能直接送给段寄存器。 3)PUSH BXS

7、I 错。操作数是存储器寻址,且操作数类型不能确定时,要用 PTR 运 算符显式说明操作数的长度。 4)MOV CS, AX 错。CS 不能作目的操作数。 5)SHL AX, 2 16 位微机时错,32 位微机时则对。 6)MOV ES, DS 源操作数和目的操作数不能同为段寄存器。 7)ADD CX, AX+100H 错。AX 不能作为基址寄存器也不能作为变址寄存器使用。 8) INC DS 错。只能是通用寄存器,不能是段寄存器。 9)CMP SI, BX 错。源操作数和目的操作数不能同为存储器操作数。 10)IMUL DX, AX 5 对。 11)SBB DI, DI 对。 12)AND C

8、X, DX 错。只有 BX、BP、SI、DI 可作为寄存器间接寻址用的寄存器。 13)OUT CX, AL 错。输入输出指令中只能以 DX 进行间接寻址。 14)IN AX, 380H 错。直接寻址时端口号必须255。 15)LDS CS, BX 错。目的操作数只能是通用寄存器。 16)LEA AX, BX 错。源操作数只能是存储器操作数。 17)XCHG AH, AL 对。 18)XCHG CX, 2400H 错。立即数不能作为操作数。 19)JMP BX 对。段内寄存器间接寻址。 20)JMP BXSI 错。没有说明内存操作数的类型。应用类型修改运算符 PTR 进行显 式说明。 6 2.1

9、7 解:可用 debug 验证 STD ;DF=1 MOV BX, 8080H ; ADD BH, BL ;BX=0080H, CF=1, OF=1, ZF=1, SF=0, AF=0, PF=1 RCR BL, 1 ;OF=0, CF=0 CMC ;CF=1 2.18 解: 1) ADD AX, BX ; AX=0FFFDH, SZAPCO = 100000 2) RCL AX, 1 ; AX=3151H, SZAPCO = - - - -11 3) SBB AX, BX ; AX=3152H, SZAPCO = 000001 4) OR AX, BX ; AX=0FFFDH, SZAPCO

10、 = 10U000 5) CMP AX, BX ; AX=98A8H, SZAPCO = 000101 2.20 解 ( IP ) = 009AH , ( CS ) = 2000H , ( SP ) = 0F178H SP = 94H , SP+1 = 3DH , SP+2 = 50H , SP+3 = 40H 2.26 解: MOV AL, BUF ;取无符号数变量 CMP AL, 20 ; JB NEXT1 ;小于 20 则转移到 NEXT1 SUB AL, 20 ;大于 20。Y=AL=X-20 7 JMP NEXT2 NEXT1: MUL 3 ;Y=3X=AL NEXT2: HLT 2

11、.33 解: 1) L1 2) L3 2.34 解: 1) 从端口 20H 处读入一组字节型数据,并求和,结果放入 AX 中; 读入的字节数由端口 30H 处读入一字节数来决定。 2) 将 ES 段从 EA = 0100H 开始的 128 个字单元清 0。 2.35 解: MIN: MOV BX, ?1 ;3000H MOV AL, BX MOV CX, ?2 ;100H LP1: INC BX CMP AL, BX ?3 LP2 ;JLE MOV AL, BX LP2: DEC CX JNZ ?4 ;LP1 MOV ?5, AL ;3100H 2.36 解: 70H 8 第三章 3.1 解:

12、 地址 数值H注释 0200H FF ARY -1 0201H FF 0202H 02 2 0203H 00 0204H FD -3 0205H FF 0206H 04 4 0207H 00 0208H 08 CNT $-ARY 0209H 00 0208-0200=8H 020AH 00 VAR ARY 020BH 02 020CH 10 $ 020DH 02 020C+4=0210H 见程序 P174-31.ASM MOV AX, ARY ;AX=-1 MOV BX, OFFSET VAR ;BX=20AH MOC CX, CNT ;CX=8 MOV DX, VAR+2 ;DX=210H

13、LEA SI, ARY ;SI=200H 3.2 解:见 P174-32.ASM 1. 地址顺序 数值 H 00 01 1 01 00 02 02 2 03 00 04 03 3 05 00 06 42 B 07 41 A 08 43 C 09 00 NUL 0A ? 0B ? 0C ? 0D ? 0E ? 0F ? 10 00 0 2. R1=0010H 3.3 解: ;2008 P175 3.3 9 10 ; DATA SEGMENT ARRAY DB 3 DUP(1,2,3,0,0,-1) P_ARR DB 50 DUP(?) M_ARR DB 50 DUP(?) D_SUM DB 3

14、DUP(00H) P_SUM DB PLUS:,00H,0DH,0AH,$ ;准备 9 号 DOS 系统功 能调用 Z_SUM DB ZERO:,00H,0DH,0AH,$ M_SUM DB MINUS:,00H,0DH,0AH,$ ;0D CR 键,0AH LF 键 ;PLUS:正数的个数。 ;ZERO: 0 的个数。 ;MINUS:负数的个数。 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA ;给 DS 赋初值, MOV DS, AX ;建立其数据段的寻址性。 MOV CX, 18 MOV SI, 00H

15、XOR BX, BX NEXT: CMP ARRAYSI, 00H JS M_PRO ;负数时则转移到 M_PRO JZ Z_PRO ;是 0 时则转移到 Z_PRO P_PRO: INC D_SUM ;是正数! INC P_SUM+5 MOV AL, ARRAYSI MOV BL, P_SUM+5 MOV (P_ARR-1) BX, AL JMP NEXT1 Z_PRO: INC D_SUM+1 ;是 0! 11 INC Z_SUM+5 JMP NEXT1 M_PRO:INC D_SUM+2 ;是负数! INC M_SUM+6 MOV AL, ARRAYSI MOV BL, M_SUM+6

16、MOV (M_ARR-1) BX, AL NEXT1: INC SI LOOP NEXT ADD P_SUM+5, 30H ;假设:P_SUM+59 ADD Z_SUM+5, 30H ;假设:Z_SUM+59 ADD M_SUM+6, 30H ;假设:M_SUM+69 MOV DX, OFFSET P_SUM MOV AH, 09H INT 21H ;9 号 DOS 系统功能调用 LEA DX, Z_SUM MOV AH, 09H INT 21H ;9 号 DOS 系统功能调用 LEA DX, M_SUM MOV AH, 09H INT 21H ;9 号 DOS 系统功能调用 MOV AX,

17、4C00H INT 21H CODE ENDS END START 3.18 解: ;2008 P176 3.18 ; DSEG SEGMENT BUF DB 11 ; 最多输入 10 个字符 (不计回车键) DB ? DBUF DB 11 DUP (?) DISP DB 13 DUP (?) 12 DSEG ENDS ; CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG STR_IN: MOV AX, DSEG MOV DS, AX MOV DX, OFFSET BUF MOV AH, 0AH INT 21H MOV CL, BUF+1 ;实际输入字符数 XOR CH,

18、 CH MOV BX, CX ADD BX, OFFSET DISP ;DEC BX ;待显示字符串的最后一个字符的 偏移地址 INC BX ;为了实现待显示字符串前加回车、 换行键。 XOR SI, SI XOR DI, DI NEXT: MOV AL, DBUFSI MOV BX+DI,AL INC SI DEC DI LOOP NEXT MOV DISP, 0DH ;回车,光标移到行首位置 MOV DISP+1,0AH ; 换行键,光标移到下一行 MOV (DISP+2)SI,$ ;字符串结束标志$ LEA DX, DISP ;字符串显示 MOV AH,9 INT 21H MOV AX,

19、 4C00H INT 21H CSEG ENDS END STR_IN 3.19 解: 只能输入 3039 即0 9的 ASCII 码 4146 即A F 的 ASCII 码 13 3.21 解: ;2008 P176 3.21 ; DATA SEGMENT BUF DB 08H,12H,34H,56H,78H,9AH,0BCH,0DEH,0F0H,0FFH KEY DB 78H DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX, DATA MOV DS, AX MOV ES, AX CLD LEA DI

20、, BUF MOV CL, DI XOR CH, CH ;重复次数为 CX INC DI MOV AL, KEY REPNE SCASB JNE DONE DEC BUF ;BUF=7H MOV SI, DI DEC DI REP MOVSB DONE: MOV AH, 4CH INT 21H CODE ENDS END START 07H,12H,34H,56H,9AH,0BCH,0DEH,0F0H,0FOH,0FFH 3.22 解: ;2008 P177 3.22 ; DSEG SEGMENT BINVAL DW 23457 ASCVAL DB 5 DUP(00H) ;应是单引号,而非 D

21、SEG ENDS ; CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG BIN_ASC:MOV AX, DSEG MOV DS, AX MOV AX, BINVAL MOV CX, LENGTH ASCVAL LEA SI, ASCVAL ;OFFSET ADD SI, CX DEC SI MOV CX, 10 AGAIN: CMP AX, 10 JB DONE ;JBE XOR DX, DX IDIV CX OR DL, 30H MOV SI, DL DEC SI JMP AGAIN DONE: OR AL, 30H ;OR MOV SI, AL MOV AX, 4C0

22、0H INT 21H CSEG ENDS END BIN_ASC 第四章 P208 4.1 答: 1C P267、2A、3B、4C、5D、6A、7B、A 4.2 答:、更快 、 、 、指令执行完 毕 、 4.3 答: I/O 端口读总线周期 端口号 IOR有效 20H 端口输入的一字节数据 4.10 答: 1 C3 2 C2 3 C1 注意:逻辑 0 有效 14 15 第五章第五章 P243 5.1 答:C、A、C、B、A、A、A、C、B、B 5.9 答: C F F F F A 8 0 0 0 2155=160K 2 7 F F F H 160808=80 个 10 组 5.10 答: ME

23、MR、MEMW 信号的形成。 A19 A18 A17A16 A15 A14A13A12A11A0 地址范围 0 0 0 1 1 1 0 0 0 1 1 1 1 0E2000H0E3FFFH 0 0 0 1 1 1 0 1 1 1 1 1 1 0EE000H0EFFFFH ;P91 MOV AX, 0E200H MOV ES, AX MOV DI, 0 MOV CX, 20 CLD MOV AL, 0 REP STOSB ; MOV AX, 0EE00H MOV ES, AX MOV DI, 0 MOV CX, 20 CLD MOV AL, 0 REP STOSB 16 5.11 答: 局部译码

24、法 A15 A14 A13A12 A11 A10A0 地址范围 0 0 0 1 1 8000H87FFH 0 0 1 1 0 0 0 1 1 0C000H0C7FFH A15 A14 A13A12 A11 A10A0 地址范围 0 0 0 1 1 8800H8FFFH 0 0 1 1 0 0 1 1 1 0C800H0CFFFH A15 A14 A13A12 A11 A10A0 地址范围 0 0 0 1 1 9000H97FFH 0 0 1 1 0 1 0 1 1 0D000H0D7FFH A15 A14 A13A12 A11 A10A0 地址范围 0 0 0 1 1 9800H9FFFH 0

25、 0 1 1 0 1 1 1 1 0D800H0DFFFH 重叠 5.12 答: A19 A18 A17A16 A15A0 地址范围 0 0 0 0 1 0 1 1 20000H2FFFFH 0 0 0 0 1 1 1 1 30000H3FFFFH 把图中 A16 A0 A0 A1 A15 A16 1# : 20000H 3FFFEH 中的偶数地址 2# : 20001H 3FFFFH 中的奇数地址 17 5.15 答: 1) E F F F F 215=32K=16K2 E 8 0 0 0 两片 7 F F F H 2) A19 A18 A17A16 A15 A14A13A12A11A0 地

26、址范围 1 1 1 0 1 0 0 0 0 0 0E8000H 1 1 1 0 1 1 1 1 1 1 0EFFFFH 3) MOV AX, 0E000H MOV ES, AX MOV DX, 128 ; 2827=256128 XOR BX, BX NEXT1: MOV CX, 256 ;00H FFH,共 256 个。 XOR AL, AL NEXT2: MOV ES:8000HBX, AL INC AL INC BX LOOP NEXT2 DEC DX JNZ NEXT1 18 第六章第六章 6.11 解:解: 序号 A9 A8 A7 A6 A5 A4A3 A2 A1 A0 地址 序号

27、A9 A8 A7 A6 A5 A4A3 A2 A1 A0 地址 1 1 1 111100 3F0H3F3H 2 1 0 1111 01 2F4H2F7H芯片 3 1 1 111111 3FCH3FFH 1 1 0 1111000 0 2F0H 2 1 0 1111 000 1 2F1H 3 1 0 1111 001 0 2F2H 端口 4 1 0 1111001 1 2F3H 6.6.12 解:解: 题 5.12 DIP0 DIP1 DIP2 DIP3 DIP4 DIP5 闭合 闭合 闭合 闭合 打开 闭合 6.13 解: 6.13 解: DATA SEGMENT BUFFER1 DB 128

28、 DUP ( ? ) ;定义128个未初始 化的内存单元 PUBLIC BUFFER1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA READ_CRT MOV AX, DATA MOV DS, AX MOV DI, 0 MOV CX, 128 ;128 个 AGAIN: MOV DX, 0020H WAIT$: IN AL, DX TEST AL, 00000001B ;CRT 输出缓存 中有数据吗 JZ WAIT$ ;无,则 WAIT$ 等待。 MOV DX, 0008H ; 有 , 则 从 19 0008H 口读数据。 IN AL, DX ;

29、MOV BUFFER1DI,AL INC DI LOOP AGAIN MOV AH, 4CH INT 21H CODE ENDS END READ_CRT 6.14 解: 6.14 解: DATA SEGMENT BUFFER2 DB 64 DUP ( ? ) ;定义 64 个未初始 化的内存单元 PUBLIC BUFFER1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA WR_CRT: MOV AX, DATA MOV DS, AX MOV DI, 0 MOV CX, 64 AGAIN: MOV DX, 0020H WAIT$: IN AL, D

30、X TEST AL, 10000000B ;CRT 输入缓存 中空闲吗 JNZ WAIT$ ;满,WAIT$等 待。 MOV DX, 0008H ; 空 , 则 向 0008H 口写数据。 MOV AL, BUFFER2DI OUT DX, AL INC DI LOOP AGAIN MOV AH, 4CH INT 21H CODE ENDS END WR_CRT 第七章第七章 7.10 改改 例 614 某 80 x86 系统的中断系统由二片 8259A 级联而成,从片 接入主片的 IR2。主、从 8259A 的 IR5 上各接有一个外部中断源,其 中断向量号分别为 75H、85H。假设它们的

31、中断人口地址均在同一段 中,段基址为 4310H偏移地址分别为 1230H、2340H;所有中断都 采用边沿触发方式、全嵌套方式、正常 EOI 结束方式。 (1)写出主、从8259A中断向量号范围; (2)假定主、从片端口地址分别为 20H、21H 和 26H、27H。 (3)试编写全部初始化程序。 解:(1)已知某个IRi的中断向量号确定整个 8259A中断向量号范围的 方法是:高 5 位取IRi的中断向量号的高 5 位,低 3 位则取变化值范 围 000111B。于是,由主、从 8259A的IR5中断向量号分别为 75H, 85H可知,主 8259A中断向量号范围:70H77H;从 825

32、9A中断向量 号范围:80H87H。 (2)此题硬件连线要考虑各 8059A 与 CPU 的连接,还要考虑两片 8059A 间的级联连接。 ? 8259A 与 CPU 连接的方法是: 端口选择线 Ao 一般与 MPU 低位地址线 Ao 直接相连。 数据线D0D7与MPU数据线D0D7直接相连。 片选线CS则与 MPU 余下的高位地址线经译码后产生的片选信 号相连。 RD、WE、INTR分别与控制总线组合形成的IOR、IOW和中断 响应信号INTA相连。 主片的 INT 与 MPU 的 INTR 直接相连。 20 ? 8259A 级联连接方法是: 从片的INT与主片的IR2直接相连。 主片的CA

33、S2CAS0与各从片的CAS2CAS0直接相连。 /SP EN取决于是采用缓冲还是非缓冲方式。 本题采用非缓冲方式,主片/SP EN接+5v,从片/SP EN接地。 端口地址 20H、21H 0000 0000 0010 000 B 26H、27H 0000 0000 0010 011 B A3A2A1接LS138: 000 0 Y, 011 3 Y A15A6 经或门的 2A G,A4接LS138 的 2B G,A5接LS138 的G1。 由此画出硬件连线图,如图 6.3 所示。 (3)由题意,初始化程序应包括两部分内容,即主、从片的初始化 和填写相关中断向量表。程序段如下: ;初始化 82

34、59A 主片 MOV AL, 11H ;写 ICW1,边沿触发、多片级 联、写 ICW4 OUT 20H AL 21 22 JMP SHORT $+2 ;等待 MOV AL 70H ;写 ICW2,主片中断向量号为 70H77H OUT 21H AL JMP SHORT $+2 MOV AL 04H ;写 ICW3IR2 接有从片 OUT 21H AL JMP SHORT $+2 MOV AL 00010001B ;写 ICW4,特殊全嵌套、非缓 冲、正常 EOI OUT 21H, AL JMP SHORT $+2 MOV AL, 0FFH ;用 OCW1 屏蔽所有中断请求 OUT 21H A

35、L ;初始化 8259A 从片 MOV AL, 11H ;写 ICW1,边沿触发、多片级 联、写 ICW4 OUT 26H AL JMP SHORT $+2 MOV AL, 80H ;写 ICW2,从片中断向量号为 80H87H OUT 27H, AL JMP SHORT $+2 MOV AL, 02H ;写 ICW3对应主片 IR2 的编 码为 010 OUT 27H, AL JMP SHORT $+2 MOV AL, 01H ;写 ICW4,一般全嵌套、非缓 冲、正常 EOI OUT 27H, AL JMP SHORT $+2 MOV AL, 0FFH ;用 OCW1 屏蔽所有中断请求 O

36、UT 27H, AL 23 ; 填写 75H 和 85H 号中断向量 SUB DI, DI MOV ES, DI ;ES 指向中断向量表段基址 CLD MOV DI, 75H*4 ; 75H 号中断向量地址 MOV AX, 1230H ;中断处理程序偏移地址 STOSW MOV AX, 4310H ;中断处理程序段基址 STOSW MOV DI, 85H*4 ;初始化 85H 号中断向量 MOV AX, 2340H STOSW MOV AX, 4310H STOSW MOV AL, 00H ;用OCWl开放主片所有中断请 求 OUT 21H, AL JMP SHORT $+2 MOV AL,

37、00H ;用OCWl开放从片所有中断请 求 OUT 27H, AL 分析:在多片级联方式下,系统要工作在完全嵌套方式,主片必须设 置为特殊全嵌套方式,以便同级中断能中断同级中断。因为在多片级 联方式下,从片的 8 个中断源是共用主片的一个中断级,而实际上从 片的 8 个中断源也有优先级区别。 假定当前正在服务的中断级是从片 的某个中断级,若当 CPU 正在为该中断源服务时,该从片又向主片 提出中断请求,此时对主片而言是同一级中断请求,但对从片来说, 却是出现了一个高优先级中断请求,应该优先处理。 24 例 6 15在上题初始化的基础上, 假定要求在为从片中断源 IR5 服务时,设置特殊屏蔽方式

38、,开放较低级的中断请求,编写程序 片断。 解: 特殊屏蔽方式通过在从片中断源IR5的中断处理程序中设置 OCW3 实现,设置时要先关中断,设置完再开中断。程序片段如下: Interrupt: ;从片IR5中断处理程 序 CLI ; 关中断,以便设置命 令时不响应中断 MOV AL, 68H ;设置特殊屏蔽方式 OUT 26H, AL IN AL, 27H ;读中断屏蔽字 IMR 状 态 OR AL, 00100000B ;屏蔽从片 IR5 中断 OUT 27H, AL STI ;设置完,开中断 ;继续中断处理,可响应 低级中断 CLI ;为复位特殊屏蔽方式 而关中断 IN AL, 27H AN

39、D AL, 11011111B ;解除对从片IR5的屏蔽 OUT 27H, AL MOV AL, 48H ;复位特殊屏蔽方式 OUT 26H, AL STI MOV AL, 21H ;发 EOI 命令 25 OUT 26H, AL IRET 分析:特殊屏蔽方式一般用在中断处理程序中,动态地改变中断 优先级。但要注意,在中断处理程序结束前应复位特殊屏蔽方式,以 便恢复正常的中断优先级管理。 在设置了特殊屏蔽方式后, 用 OCW1 屏蔽 IR5 时, 就会同时使 IR5 在当前中断服务寄存器路 ISR 中对应位 清 0,这样,不仅屏蔽了当前正处理的这级中断而且真正开放了 其他较低级的中断。 7.1

40、1 解:参 P291、P149。 ;中断识别 Int_ID: CLI ;关中断,禁止嵌套 MOV AH, 80H ;赋测试屏蔽位初值 MOV CX, 8 ;8 个中断请求输入 IN AL, 0040H ;读状态口 NEXT: ROL AH, 1 ;准备测试 Di 位。 AND AL, AH LOOPZ NEXT ;仍无中断或没有测 试完 8 位时循环 JNZ INT_JMP ;有中断,跳转 ;没有中断请求,主 程序继续 JMP START ;主程序循环 ;实现中断转移 INT_JMP:MOV BX, 7 SUB BX, CX JMP WORD PTR ADDRTABBX * 2 ; 转 各 中

41、 断服务程序 INT_S1: ;1 号中断服务程序 INT_S2: INT_S8: ;8 号中断服务程序 7.30 7.30 答:由图 7.65 可知,A 口为方式 1 输入,PC5、PC4、PC3 为 A 口的固 定应答线,而且采用硬件中断方式来进行数据传送;另外增加一个控 制信号端 PC6(输出) ,使其输出一正脉冲,作纸带机的启动控制信 号。 8255A 的方式控制字地址为 011 B: 现取 03H 为其 地址。 初始化程序如下: MOV AL, 0BOH ;A 口方式 1 输入、高位 C 口输出。 MOV DX, 03H 26 27 OUT DX, AL MOV AL, 09H ;

42、INTEA (PC4) 置 1。 OUT DX, AL ;填中断向量表,PC 开中断。 MOV AL, 0CH ;启动纸带机。 PC6 置 0。 OUT DX, AL MOV AL, 0DH ; PC6 置 1。 OUT DX, AL MOV AL, 0CH ; PC6 置 0。 OUT DX, AL 7.31 解: MOV AL, 8EH ;A 口方式 0 输出、C 口 高位输入。 MOV DX, 0F7H ;B 口方式 1 输入、C 口 低位输出 OUT DX, AL MOV AL, 05H ;INTEB (PC2) 置 1。 OUT DX, AL MOV AL, 0CH ;PC6 清 0

43、。 OUT DX, AL ;填中断向量表,PC 开中断。 8254 7.25 解: 题目有错。 1. 由图可知,CH0、CH1 的门控信号 GATE0 和 GATE1 均固定接高 28 电平+5V,所以 CH0 和 CH1 都工作于软启动方式(MODE 0、4、 2、3) ; 2. CH0、CH1 串联定时,所以 CH0 计数结束必须能自动重装,重新 计数;而且 OUT0 能输出一脉冲信号,作为 CH1 的计数脉冲信号 (CLK1) 。方式 0、方式 4 计数结束不能自动重装;因为减一计 数是在 CLK 时钟脉冲的下降沿进行的, 而 OUT0 的输出经一反相 器接到 CLK1,定时器在 MOD

44、E 2 或 MODE 3 时的 OUT1 输出变 成正脉冲(宽度不同) ,两者脉冲下降沿的时刻完全相同,所以两 种方式都则可以。 3. 要求定时到时 OUT1 输出由高变低,则 MODE 0、MODE 3 不行; MODE 4 可以(计数到 0 时 OUT1 输出由高变低,下一个 CLK1 脉冲 OUT 输出又变为高。脉宽为一个 CLK1 周期。 ) ;MODE 2 也 可以 (计数到 1 时 OUT1 输出由高变低, 计数到 0 时 OUT 输出又 变为高。脉宽为一个 CLK1 周期。编程时也要考虑 MODE 2 的自 动重新定时问题。 ) CH 0 方式控制字:00110100B=34H

45、;16 位计数,MODE 2,二 进制计数。 CH 1 方式控制字:01111000B=78H ;16 位计数,MODE 4,二 进制计数。 MOV AL, 34H ;CH 0 方式控制字 OUT 33H, AL ;CH 0 定时系数 TIME0 MOV AX, TIME0 OUT 30H, AL MOV AL, AH MOV 30H, AL MOV AL, 78H ;CH 1 方式控制字 29 OUT 33H, AL ;CH 1 定时系数 TIME1 MOV AX, TIME1 OUT 31H, AL XCHG AL, AH MOV 31H, AL ;初始化中断向量表 ;中断服务程序首址存储

46、在 INT-TIME CLI PUSH DS PUSH DX PUSH AX LDS DX, INT-TIME MOV AH, 25H INT 21H POP AX POP DX POP DS STI 第九章第九章 P444 ADC-DAC 9.8解:(1)偏移码和补码同属双极性码。二者对应关系为:同一个数的偏移码与 补码,除了符号位相反外,数值位完全相同。所以要实现输入为补码的双极性 DAC,只要在双极性偏移码 DAC 电路基础上,将输入补码的符号位变反,转换 成偏移码即可。苦要实现 DAC1210 与 8 位 PC 总线连接,则需采用双缓冲结构, 接口要提供三个端口地址。电路原理如图 l0

47、.2 所示。 地址:10 0000 000 0 高 8 位地址 10 0000 000 1 低 4 位地址 10 0000 001 x 第二级缓冲寄存器地址(启动 DAC 转换) 30 9.11 9.11 为了说明 DA 转换器的应用,我们来看怎样利用 DA 转换器产生一个锯齿波电压。 对于图 13-10 的电路,为产生一个锯齿电压,可采用以 下程序: MOV DX, PORTA ;PORTA 为 D/A 转换器端 口号 MOV AL, 0FFH ;初值为 0FFH ROTATE: INC AL OUT DX, AL ;往 D/A 转换器输出数据 JMP ROTATE 31 实际上, 上面程序在执行时得到的输出电压会有 256 个小台 阶, 不过, 宏观看, 仍为连续上升的锯齿波。 对于锯齿波的周期, 可以利用延迟进行调整。延迟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论