微机原理及应用(陈继红、徐晨)课后习题答案
mov dl,0ah mov ah,02h int 21h mov dl,0dh int 21h
lea dx,message3 mov ah,09h int 21h pop ax
cmp al,'z' ;比较,判断是否小写字母 ja error1 cmp al,'a'
jb error1 ;大写字母重新输入 sub al,20H ;减
20H转换为大写字母 mov dl,al mov ah,02h int 21h
mov ax,4c00h int 21h code ends end start
4.15 键盘输入十个学生的成绩,试编制一个程序统计 69~69分, 70~79分, 80~89分, 90~99分及
100分的人数,分别存放到 S6,S7,S8,S9及 S10单元中。 解答程序为:
DATA SEGMENT BUF DB 10 DUP(?) S6 DB ? S7 DB ? S8 DB ?
S9 DB ? S10 DB ? DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV SI,OFFSET S6 XOR AL,AL
MOV CX,0504H CONT: MOV [SI],AL INC SI
LOOP CONT MOV CX,10
MOV SI,OFFSET BUF CONT1: MOV AH,1 INT 21H SHL AL,CL MOV BL,AL MOV AH,1 INT 21H SUB AL,30H OR AL,BL MOV [SI],AL CMP AL,70H JAE NEXT1
INC BYTE PTR S6 14
微机原理及应用(陈继红、徐晨)课后习题答案
NEXT1: CMP AL,80H JAE NEXT2
INC BYTE PTR S7 NEXT2: CMP AL,90H JAE NEXT3
INC BYTE PTR S8 NEXT3: CMP AL,99H JA NEXT4
INC BYTE PTR S9 JMP NEXT5
NEXT4: INC BYTE PTR S10 NEXT5: INC SI LOOP CONT1 MOV AH,4CH INT 21H CODE ENDS END START
4.17 在有序表“11,22,33,44,55,66,77,88,99,00”中查找 44。若找到置 find为其在表中 的位置;未找到,find置0。
4.18 分别实现满足下面要求的宏定义:
(1)可对任一寄存器实现任意次数的左移操作。 (2)任意两个单元中的数据相加存入第三个单元中。 (3)将任意一个8位寄存器中的压缩BCD码转为两个ASCI II码,并在屏幕上显示。
(2)宏定义的代码段如下: ADDM MACRO M1,M2,M3 MOV AX,[M1] ADD AX,[M2] MOV [M3],AX ENDM 15
微机原理及应用(陈继红、徐晨)课后习题答案
第五章
8086系统时序和微机总线习题答案(部分)
5.1 什么是时钟周期、总线周期、指令周期?
答:8086CPU执行一条指令是由取指令、译码和执行等操作组成的,为了使 8086CPU
的各种操作协调同步进行,8086CPU必须在时钟信号 CLK 控制下工作,时钟信号是一个
周期性的脉冲信号,一个时钟脉冲的时间长度称为一个时钟周期 (Clock Cycle),是时钟频率
(主频)的倒数,时钟周期是计算机系统中的时间基准。
8086CPU要通过总线才能与外部交换信息, CPU通过总线接口单元与外部交换一次信
息,称为一次总线操作,所耗用的时间称为一个总线周期 (Bus Cycle),也称机器周期(Machine Cycle)。一个总线周期由若干个时钟周期组成,总线操作的类型不同,总线周期也不同。一 个总线周期内完成的数据传输,一般有传送地址和传送数据两个过程。
8086CPU执行一条指令所需要的时间称为指令周期( Instruction Cycle),一个指令周期 由若干个总线周期组成,
5.2 8086微处理器各个 T状态的主要功能。 答:(1)在
T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或 外设端口的地址。
(2)在
T2状态,CPU从总线上撤消地址,而使总线的低 16位浮空,置成高阻状态,为 传输数据作准备。总线的最高 4位(
A19~A16)用来输出本总线周期状态信息。在这些状
态信息用来表示中断允许状态,当前正在使用的段寄存器名等。 (3)在
T3状态,多路总线的高
4位继续提供状态信息,而多路总线的低 16位( 8088则 为低
8位)上出现由
CPU写出的数据或者
CPU从存储器或端口读入的数据。
(4)在有些情况下,外设或存储器速度较慢,不能及时地配合 CPU传送数据。这时,外 设或存储器会通过 “READY”信号线在 T3状态启动之前向
CPU发一个“数据未准备好 ”信号, 于是 CPU会在 T3之后插入
1个或多个附加的时钟周期 Tw。Tw也叫等待状态,在 Tw状态,
总线上的信息情况和
T3状态的信息情况一样。当指定的存储器或外设完成数据传送时,便 在“READY”线上发出
“准备好”信号,CPU接收到这一信号后,会自动脱离 Tw状态而进入 T4状态。 (5)在
T4状态,总线周期结束。 5.3 8086和
8088有何区别? 答:这两种
CPU的主要区别如下: ⑴外部数据总线位数:
8086 CPU的外部数据总线有
16位,在一个总线周期内可输入 /
输出一个字( 16位数据),使系统处理数据和对中断响应的速度得以加快;而 8088 CPU的
外部数据总线为
8位,在一个总线周期内只能输入