微机系统中的数制、编码和逻辑运算
- 原码和反码
- 补码
- 编码规则
- 转换方式
- 表示范围
- BCD码
- 编码规则
压缩BCD码
和非压缩(拓展)BCD码
- ASCII码、奇偶校验
- 补充
- 冯诺伊曼计算机的基本原理是
存储程序
原理
- 冯诺伊曼计算机的基本原理是
微处理器的基本结构
- 引脚定义(
8088
)@TEXTBOOK Page41
Pin Defination A0~A19 20位地址总线 AD0~AD7 MN/#MX #RD #WR IO/#M ALE INTR #INTA #TEST HOLD HLDA - 内部结构
- 内部寄存器
- 通用寄存器
Register Description AX
AH常被作中断号, AL常被用作中断传值, I/O操作时数据总线的输入输出均需用AL间接传递 BX
唯一可以用作变址寻址寄存器的通用寄存器 CX
使用LOOP和串操作时, CX存放剩余循环次数 DX
暂无特殊用途 Question: 上述描述是否正确?I/O操作中,设备的地址是否必须由DX给出?
- 内部寄存器
Register Description SP
BP
SI
DI
- 段寄存器
Register Description CS
DS
SS
ES
- 标志位寄存器
Bit Description OF
有符号运算溢出标志位 DF
IF
TF
SF
符号标志位(等同于目标操作数寄存器最高位的值) ZF
如果运算结果为 0
则ZF
为1
AF
PF
CF
进位标志位 Question: 上述标志位的顺序是否需要记忆?(P56 图2-15)
- 通用寄存器
- 最大模式和最小模式
考试要求: 应该能简略描述两种模式的工作方式及其区别 - 流水线
总线的概念和功能
- 总线的基本功能
- 传输同步
- 总线仲裁
- 出错处理
- 总线驱动
微机系统的寻址方式
- 立即寻址
操作数均为CPU内部寄存器, 事实在编译成机器码后融入成了指令的一部分, 计算机直接执行.
- 直接寻址
寄存器的偏移地址直接显式给出(也可以是一个代号, 由编译器在编译过程中自动转化为常数)
MOV AL, [1234H] ; 将1234H单元内数据复制到AL MOV AL, BUFFER ; BUFFER 将被编译器展开为数字
- 寄存器寻址
- 寄存器间接寻址
使用CPU内部寄存器存储的数值作为目标内存单元的地址, 注意, 只能使用
SI
DI
BX
BP
中的一个作为寄存器间接寻址的指针.注意当使用
BP
作为间接寻址寄存器时, 默认段基地址为SS
, 其余三个间址寄存器均默认使用DS
. (考试容易出错)所有四个间址寄存器均支持段重设.
MOV AL, [BX] ; DS:BX 的 1Byte 数据送给 AL MOV AL, [BP] ; SS:BP 的 1Byte 数据送给 AL MOV AL, SS:[BX] ; SS:BX 的 1Byte 数据送给 AL ; (段重设)
- 寄存器相对寻址
可以在寄存器间接寻址的基础上加上一个偏移地址, 从而更加自由地使用指针.
这个偏移地址通常是一个变量名称, 将间址寄存器视作偏移量, 即可达到数组指针的效果.
; DS:[BUFFER+BX] 的 1Byte 数据送给 AL MOV AL, BUFFER[BX] MOV AL, [BX]BUFFER ; 等价 MOV AL, [BUFFER+BX] ; 等价 MOV AL, [BX+BUFFER] ; 等价 MOV AL, [BX]+BUFFER ; 等价 MOV AL, BUFFER+[BX] ; 等价 ; BX(或其它等价间址寄存器)必须在方括号内 ; 加号在不引起歧义(连词)的情况下均可以省略 ; 不可以使用减法, 但是可能可以通过使BX溢出的方式等价地使用.
Question: 上述示例代码最后一行注释是否正确?
- 基址-变址寻址
可以通过组合基址寄存器(
BX
/BP
)和变址寄存器(SI
/DI
)的方法构造一个更加复杂的寻址方式, 需要注意的是, 使用时必须从两组寄存器中各选一个, 同一组寄存器不可以同时出现在一个组合中.正确:
MOV AL,[BX][SI] MOV AL,[BX][DI] MOV AL,[BX+SI]
错误:
MOV AL,[BX][BP] ; 错!!!!!! MOV AL,[SI][DI] ; 错!!!!!!
- 基址-变址相对寻址
是上述基址-变址寻址和相对寻址的组合, 不做赘述.
- 寄存器间接寻址
MOV
指令
常用指令的用法和注意事项
ADD
SUB
MUL
IMUL
DIV
IDIV
SHL
,SHR
,SAL
,SAR
(Shift)SHL
,SHR
按位左/右移动, 溢出位丢弃, 空缺位补0
SCL
,SCR
按位左/右移动, 溢出位进CF, 空缺位补0
SAL
,SAR
按位左/右移动, 最高位不动, SAL最低位补0, SAR次高位与最高位相同
ROL
,ROR
,RCL
,RCR
(Rotate)SHL
,SHR
按位左/右移动, 溢出位丢弃, 空缺位补0
SCL
,SCR
按位左/右移动, 溢出位进CF, 空缺位补0
注意: 循环/移位操作数除非为1, 否则必须使用CL传递.
- 串操作指令系列
MOVS
,MOVSB
,MOVSW
SCAS
,SCASB
,SCASW
CMPS
,CMPSB
,CMPSW
REP
,REPZ
,REPNZ
汇编语言的语法和基本结构
- 条件转移
Command Jump Condition JCXZ
CX
= 0JG
JNLE
SF
==OF
ANDZF
=0JGE
JNL
JL
JNGE
JLE
JNG
JO
JNO
JS
JNS
JA
JNBE
JAE
JNB
JB
JNAE
JBE
JNA
JC
JNC
JE
JZ
JNE
JNZ
JP
JPE
JNP
JPO
- 条件转移指令的转移范围
- 中断
- 中断向量表
- 中断命令对堆栈段的影响
存储器的分类、存储器拓展、寻址译码电路设计
输入输出和中断技术
8253和8255芯片
8253芯片
寻址方式
A0 | A0 | 选中 |
---|---|---|
0 | 0 | 计数器A |
0 | 1 | 计数器B |
1 | 0 | 计数器C |
1 | 1 | 控制寄存器 |
控制字格式
Bit | 0 1 |
2 3 |
4 5 6 |
7 |
---|---|---|---|---|
描述 | 选择计数器 | 计数器读写方式 | 计数器工作方式 | BCD/BIN计数 |
定义 | 00 计数器001 计数器111 计数器211 NOP |
00 锁存(保持)01 仅低八位10 仅高八位11 先低后高 |
000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式5 |
0 二进制计数1 BCD计数 |
工作方式
- 方式
0
计数结束中断 - 方式
1
单脉冲发生器 - 方式
2
周期脉冲发生器 - 方式
3
方波发生器 - 方式
4
软件触发方式计数 - 方式
5
硬件触发方式计数8255芯片
寻址方式
8255有三组输入输出接口和一个控制寄存器, 因此只需两根地址线即可寻址.
A0 | A0 | 选中 |
---|---|---|
0 | 0 | A组 |
0 | 1 | B组 |
1 | 0 | C组 |
1 | 1 | 控制寄存器 |