COUNT EQU $-CED DATA ENDS 问:
⑴ 按内存单元存放的先后次序,按字节写出数据段中的数据。 05H, 00H, 08H, 00H, 08H, 00H, 05H, 00H, 08H, 00H, 08H, 00H, 05H, 00H, 08H, 00H, 08H, 00H,
57H, 65H, 6CH, 63H, 6FH, 6DH, 65H, 20H, 74H, 6FH, 20H, 79H, 6FH, 75H, 0DH, 0AH, 24H, 00H, 00H
⑵ 说明 对BUF, CED, ADDR等变量施行TYPE, LENGTH SIZE运算符后,其结果分别为多少?
TYPE BUF = 2 LENGTH BUF = 3 SIZE BUF = 6 TYPE CED = 1 LENGTH CED = 1 SIZE CED = 1 TYPE ADDR = 2 LENGTH ADDR = 1 SIZE ADDR = 2 ⑶ COUNT的值为多少? 19
6.17 编写一个将16位二进制数转化为四位十六进制数的程序,并将十六进制数的各位显示出来。
注:答案中给了一个假定的16位二进制数。 DATA SEGMENT
BIN DW 1001110101111011B HEXASC DB 4 DUP(20H) DB ‘$’ DATA ENDS
STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACKl ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACKl
BINHEX: MOV CH, 4 ;十六进制数的位数 MOV BX,BIN ;取待转移数据
MOV DI,OFFSET HEXASC ;取存放ASCII码首地址 CONV1: MOV CL,4
ROL BX,CL ;取4位二进制数 MOV AL,BL AND AL,0FH
CMP AL,09H ;是0-9吗?
JBE ASCI ;是,转移 ADD AL,07H ;是A-F,先加07H ASCI: ADD AL,30H ;加30H
MOV [DI],AL ;存结果
INC DI ;修改指针 DEC CH
JNE CONVI ;计数未完,继续 LEA DX, HEXASC MOV AH,09H
INT 21H CODE ENDS
END BINHEX 很多同学的答案: DATA SEGMENT
A DW 4
X DW (16位二进制数) Y DB 4 DUP(?) DATA ENDS ……
START: MOV CX, A LEA DI, Y AGAIN: MOV BX, X PUSH CX DEC CX MOVING:SHR BX, 4
LOOP MOVING POP CX AND BL, 0FH CMP BL, 09H JG DAYU ADD BL, 30H JMP XIAOYU DAYU: ADD BL, 37H XIAOYU:MOV [DI], BL INC DI LOOP AGAIN LEA DX, Y MOV AH, 09H INT 21H CODE ENDS
END START
7.1 名词解释
(1) 时钟周期:一个时钟脉冲的时间长度,CPU的时钟频率的倒数,也称T状态。
(2) 总线周期:CPU中,BIU完成一次访问存储器或I/O端口操作所需要的时间,称作一个总线周期,也称机器周期(Machine Cycle)。
(3) 指令周期:执行一条指令所需的时间称为指令周期。 (4) 等待周期:在T3和T4之间插入的周期。 (4)
(5) 空闲状态:CPU不执行总线周期时的状态。
(6) 时序:计算机操作运行的时间顺序。
8.5 简述CPU与外设以查询方式传送数据的过程。现有一输入设备,其数据端口的地址为FEE0H,并从端口FEE2H提供状态,当其D0位为1时表明输入数据准备好。试编写采用查询方式进行数据传送的程序段,要求从该设备读取64个字节并输入到从2000H:2000H开始的内存中。(程序中需加注释) P144~145页。 MOV AX, 2000H
MOV DS, AX ;设定段基址 MOV DI, 2000H ;目的地址送DI
MOV CX, 64 ;字节数 READ: MOV DX, 0FEE2H ;指向状态口 IN AL, DX ;读入状态位 TEST AL, 01H ;数据准备好否? JZ READ ;否,循环检测 MOV DX, 0FEE0H ;指向数据口
IN AL, DX ;已准备好,读入数据 MOV [DI], AL ;存到内存缓冲区中 INC DI ;修改地址指针
LOOP READ ;未传送完,继续传送 很多同学的答案: MOV CX, 64 NEXTIN: IN AL, 0FEE2H TEST AL, 01H JZ NEXTIN IN AL, 0FEE0H MOV BX, 2000H
MOV [200H][BX], AL INC BX
LOOP NEXTIN
8.6 简述中断传送的特点。
中断传送的显著特点是:能节省大量的CPU时间,实现CPU与外设并行工作,提高计算机的使用效率,并使I/O设备的服务请求得到及时处理。I/O主动,CPU被动。
9.3 设8259A应用在8086系统,采用电平触发方式,中断类型号为60H-67H,采用特殊全嵌套方式,中断非自动结束,非缓冲工作方式,端口地址为63H和64H,写出其初始化程序。
ICW1=00011011B=1BH, ICW2=01100000B=60H, ICW4=00010101B=15H ICW1必须写入到偶端口地址 MOV AL, 1BH OUT 64H, AL MOV AL, 60H OUT 63H, AL MOV AL, 15H
OUT 63H, AL
9.4 设8259A级连应用于8086系统,从片的中断请求线接于主片的IR7输入端,主片端口地址为64H和66H,从片端口地址为84H和86H,主片IR0的中断向量号为50H,从片IR0的中断向量号为58H,主片工作方式同9.3,从片工作方式采用缺省工作方式,编写初始化程序,并画出硬件连接电路图。
64H = 01100100B 84H = 10000100B 66H = 01100110B 86H = 10000110B 数据总线 138 G1 8086 A2 8259 8259 M/IO G2A Y4 ≥1 A4 CS A3 CS ≥1 G2B Y3 A0 C A7 IR7 INT B A6 A A5 CAS2 CAS2 CAS1 CAS1 A1 A0 CAS0 CAS0 INTR INT RD RD RD WR WR WR A0
主片:ICW1=00011001B=19H ICW2=01010000B=50H ICW3=10000000B=80H ICW4=00010101B=15H
从片:ICW1=00011001B=19H ICW2=01011000B=58H ICW3=00000111B=07H ICW4=00000001B=01H
10.3 试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字寄存器I/O地址依次为40H~43H。(因为地址小于256,所以可以不用DX。) (1)使计数器1工作方式0,仅用8位二进制计数,计数初值为128。 计数器1的通道地址为:41H;128=80H 控制字:01010000B=50H MOV AL , 50H OUT 43H ,AL MOV AL ,80H