微机原理(偶数章节)
第二章
2.1
算术逻辑单元ALU、寄存器组和控制器;
总线接口单元BIU:管理8088与系统总线的接口负责cpu对接口和外设进行访问
执行单元EU:负责指令译码、执行和数据运算;
8位cpu在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。而取指令是cpu最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位cpu节省了时间,提高了性能。
2.2
8个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL;
8个16位寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。
2.3
标志用于反映指令执行结果或者控制指令执行形式。
状态标志用于记录程序运行结果的状态信息;控制标志用于控制指令执行的形式。
2.4
例:有运算:3AH+7CH=B6H
作为无符号数运算,没有进位,CF=0;
作为有符号数运算,结果超出范围,OF=1.
2.5
8088中每个存储单元有唯一的20位地址,称为物理地址。处理器通过总线存取存储器数据时,采用这个物理地址。
在用户编程过程中采用的“段地址:偏移地址”的形式称为逻辑地址。
将逻辑地址中的段地址左移4位,加上偏移地址就得到物理地址。
1MB最多能分成65536个逻辑段。
2.6
代码段:存放程序的指令序列;
堆栈段:确定堆栈所在的主存储区;
数据段:存放当前运行程序的数据;
附加段:附加数据段,用于数据保存。另外串操作指令将其作为目的操作数的存放区。
2.7
8088的存储空间分段管理,程序设计时采用逻辑地址。由于段地址在默认的或指定的段寄存器中,所以只需要偏移地址,称为有效地址EA.
操作数在主存中有以下几种寻址方式:直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。
2.8
(1)立即数寻址 ax:1200H
(2)寄存器寻址 ax:0100H
(3)存储器直接寻址 ax:4C2AH
(4)寄存器间接寻址 ax:3412H
(5)寄存器间接寻址 ax:4C2AH
(6)基址变址寻址 ax:7856H
(7)相对基址变址寻址 ax:65B7H
2.9
(1)cx为字寄存器,dl为字节寄存器,类型不匹配。
(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。
(3)不允许立即数到段寄存器的传送。
(4)不允许段寄存器之间的直接传送。
(5)数据溢出。
(6)sp不能用于寄存器间接寻址。
(7)
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
不对。应为:mov ax,[bx+di]
(8)mov指令的操作数不能是立即数。
2.10
(1)bx得到table的偏移地址,bx=200H.
(2)将立即数8送到al。
(3)换码,al=12H.
2.11
(1)al=89H
(2)al=12H,cf=1,zf=0,sf=0,of=1,pf=1
(3)al=0AFH,cf=0,zf=0,sf=1,of=0,pf=1
(4)al=0AFH,cf=1,zf=0,sf=1,of=1,pf=1
(5)al=0,cf=0,zf=1,sf=0,of=0,pf=1
(6)al=0FFH,cf=0,zf=0,sf=1,of=0,pf=1
(7)al=0,cf=0,zf=1,sf=0,of=0,pf=1
2.12
(1) add dx,bx
(2) add al,[bx+si]
(3) add word ptr[bx+0B2H],cx
(4) add word ptr[0520H],3412H
(5)add al,0A0H
2.13
运算公式:
。商存储在ax,余数存储在dx。
2.14
(1)ax=1470H
(2)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0
(3)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0
(4)ax=0,cf=0,of=0,sf=0,zf=1,pf=1
(5)ax=0FFFFH,cf=0,of=0,sf=0,zf=1,pf=1
(6)ax=0FFFFH,cf=0,of=0,sf=1,zf=0,pf=1
2.15
相对寻址方式、直接寻址方式、间接寻址方式。
2.16
(1)1256H
(2)3280H
2.17
(1)ax=1E1EH
(2)al的D0、D7位不全为0
(3)cx<64H
2.18
执行65536次。
2.19
功能:将数组中每个字元素相加,结果存储于total。
2.20
(1)lea si,string
Mov dh,[si]
Mov dl,[si+5]
(2)mov ax word ptr buffer1
Sub ax word ptr buffer2
Mov dx word ptr buffer1+2
Sbb dx word ptr buffer2+2
(3) test dx,0F000H
jz even
even: mov ax,0
(4) mov cx,4
again: sar dx,1
rcr ax,1
loop again
(5) mov cx,100
mov si,0
again: mov al,0FFH
add al,array[si]
mov array[si],al
inc si
loop again
2.21
Htoasc proc
Mov bl,al
Mov al,ah
Mov bh,10
Mul bh
And ax,00FFH
Add al,bl
Htoend: ret
Htoasc endp
2.22
计算机系统利用中断为用户提供硬件设备驱动程序。在IBM-PC系列微机中,基本输入输出系统ROM-BIOS和DOS都提供了丰富的中断服务程序,称为系统功能调用。
调用步骤(1)AH中设置系统功能调用号
(2)在指定寄存器中设置入口参数
(3)使用中断调用指令执行功能调用
(4)根据出口参数分析调用情况
2.23
Htoasc proc
And al,0FH
Add al,90H
Daa
Adc al,40H
Daa
Mov ah,02H
Mov dl,al
Int 21H
Ret
Htoasc endp
2.24
Numout proc
Xor ah,ah
Aam
Add ax,3030H
Mov dl,ah
Mov ah,02H
Int 21H
Mov dl,al
Mov ah,02H
Int 31H
Ret
Numout endp
2.25
Msgkey db”input number 0-9”,”$”
Msgwrg db”error”,”$”
Mov ah,09H
Mov dx,offset msgkey
Int 21H
Again: mov ah,01H
Int 21H
Cmp al,30H
Jb disp
Cmp al,39H
Ja disp
Mov dl,al
Mov ah,02H
Int 21H
Jmp done
Disp: mov dx,offset msgwrg
Mov ah,09H
Int 21H
Jmp again
Done: mov ah,02H
Mov dl,al
Int 21H
第四章
4.1
20;
;65536;
;扩展板
4.4
总线操作周期中,8088在第三个时钟周期的前沿测试READY引脚,若无效,表明被访问的设备与CPU操作不同步,CPU插入等待周期。
4.5
最小组态模式用于小规模系统,MN/MX*接高电平,分时复用引脚是:
,
,当MN/MX*接低电平,8088构成最大组态模式,应用大规模应用程序。
4.6
引脚三态能力主要针对引脚输出信号状态:高电平、低电平和高阻。输出高阻意味着芯片放弃对引脚的控制。这样它所连接的设备就可以接管该引脚及连接导线的控制权。
4.7
RESET:复位请求,高电平有效时,CPU回到初始状态。
HOLD:总线请求,高电平有效时,其他总线主控设备向CPU申请占用总线。
NMI:不可屏蔽中断请求。外界向CPU申请不可屏蔽中断。
INTR:可屏蔽中断请求。高电平有效时,中断请求设备向CPU申请可屏蔽中断。
4.10
(1)T1周期,CPU进行读操作。
(2)T2-T4期间,CPU对数据总线输出高阻态,选通存储器或I/O接口,向CPU传送数据。
(3)T4的下降沿,CPU对数据总线采样。
4.15
三态透明锁存器指芯片具有三态输出能力。当G有效,允许数据输出,否则不允许。当地址输出端DE*无效,说明不允许CPU向总线输出地址。
4.16
数据收发器指向两个方向驱动数据。74LS245的G*标示输出控制端,DIR标示方向控制端。
4.17
(1)8086是真正的16位微处理器。8088的数据总线只有8位;
(2)8086指令队列长度为4字节,8088为6字节;
(3)最小组态下,8088选择访问对象的信号为IO/M*,8086为M/IO*
(4)8086数据存储按照16位数据宽度组织,由奇偶两个对称的存储器组织,提高访问效率。
第六章
6.1
独立,I/O,2,直接寻址和DX间接寻址。
6.2
(1)数据寄存器:输入时保存从外设发往CPU的数据,输出时保护从CPU发往外设的数据。
(2)状态寄存器:保存状态数据。CPU可以获取当前接口电路或外设的状态。
(3)控制寄存器:保存控制数据。CPU可以向其写入命令,选择接口电路工作方式,控制外设。
6.4
Task mov dx,8000H
In al,dx
Not al
Cmp al,1
Jz status1
Cmp al,2
Jz status2
Mov al,0
Out dx,al
Jmp done
Status1: rol al,1
Out dx,al
Call delay
Jmp status1
Status2: ror al,1
Out dx,al
Call delay
Jmp status2
Done: ……
6.5
Code
Start: mov ax,2000H
Mov ds,ax
Mov bx,2000H
Mov dx,0FFE2H
Mov cx,100
Next: in al,dx
Test al,1
Jz next
Sub dx,2
In al,dx
Mov [bx],al
Inc bx
Add dx,2
Loop next
6.6
Code
Start: mov dx,80H
Lea bx,ADDR
Next: in al,dx
Test al,80H
Jnz next
Cmp [bx],’$’
Jz done
Mov al,[bx]
Out dx,al
Inc bx
Jmp next
Done: ……
6.8
中断源指的是能够引起中断的时间或原因。安排中断的优先级原因:
(1)多个中断源同时向CPU申请中断,需要决定先响应哪个。
(2)一个中断没有结束,是否允许新的中断打断该中断。
6.9
Interrupt:mov dx,8000H
In al,dx
Cmp al,1
Jnz next1
Call proc1
Jmp done
Next1: cmp al,2
Jnz next2
Call proc2
Jmp done
Next2: cmp al,3
Jnz done
Call proc3
Done: ……
6.10
直接存储器存取,DMA请求,HOLD,HLDA,高阻,DMA。
第八章
8.1
(一)内部中断。由8088内部执行程序出现异常引起。
(1)除法错中断(2)指令中断(3)溢出中断(4)单步中断
(二)外部中断。由8088外部提出中断请求引起。
(1)不可屏蔽中断。外部通过NMI向CPU提出中断请求,CPU执行完当前指令就予以响应。
(2)可屏蔽中断。外部通过INTR信号向CPU发出请求。当IF=1时,CPU在当前指令结束予以响应。
可屏蔽中断向量号由外部提供,处理器产生中断响应周期的同时读取一个字节的中断向量号数据,其他类型的中断向量号包含在指令中或者已经预置。
8.2
中断向量表是一种表数据结构。是中断向量号与对应中断服务程序之间的连接表。
8.4
IRR:中断请求寄存器。存储外界中断请求信号。
ISR:中断服务寄存器。存储正在被服务的中断状态。
IMR:中断屏蔽寄存器。保存对中断信号的屏蔽状态。
8.6
IR3有中断请求,IR3正在服务,20H,05H
8.8
mov al,13H
mov dx,0FFDCH
out dx,al
jmp intr1
intr1:mov al,90H
mov dx,0FFDEH
out dx,al
jmp intr2
intr2:mov al,1
mov dx,0FFDEH
out dx,al
8.11
mov al,0bH
out 20H,al
nop
in al,20H
8.13
int 80h proc far
sti
push ds
push ax
push dx
int 1ch
mov al,20H
out 20H,al
pop ax
pop dx
pop ds
iret
int 80h endp
第十章
10.8
mov dx,0FFFEH
mov al,81H
out dx,al
mov dx,0FFFCH
in al,dx
and al,0FH
mov cl,4
shl al,cl
out dx,al
10.9
mov dx,0FFFEH
mov al,86H
out dx,al
mov al,13H
out 20H,al
mov al,08H
out 21H,al
mov al,1
out 21H,al
mov al,08H
out 21H,al
10.16
;LED表
table
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h
;8255A初始化
mov dx,0fffbh
mov al,10001001b
;=89h
out dx,al
;控制程序
again0:
mov dx,0fffah
in al,dx
;确定哪个开关闭合
mov cx,8
mov ah,01h
;mov ah,08h
again1:
shr al,1
;shl al,1
jnc disp0
inc ah
;dec ah
loop again1
jmp disp1
;显示字段
disp0:
mov bx,offset table
mov al,ah
xlat
mov dx,0fff8h
out dx,al
disp1:
mov cx,8
mov al,01h
mov dx,0fff9h
disp2:
out dx,al
call delay
shl al,1
loop disp2
jmp again0
_1250079973.unknown
_1250080308.unknown
_1250080350.unknown
_1250080015.unknown
_1250078125.unknown