使用教材为
《微型计算机原理与接口技术》(慕课版)
孙丽娟、李爱群、陈燕俐、周宁宁、邓玉龙编著
微机复习笔记(一)
1. 二进制数,十进制数,十六进制数和BCD码数之间的转换
简单不赘述
牢记下表
字符 | ASCII码 |
---|---|
0~9 | 30H~39H |
A~F | 41H~46H |
回车 | 0DH |
换行 | 0AH |
2. 真值数和补码数之间的转换
正数的原码、反码、补码与真值数相同
负数原码的数值部分与真值相同,保持符号位不变,按位取反后为反码,再加一则为补码
已知补码算原码:
首先看符号位
若为负数,则求其补码
计算机系统中负数一律用补码表示
机器数的数值范围(以8为例)
表示法 | 范围 |
---|---|
原码 | -127~+127 |
反码 | -127~+127 |
补码 | -128~+127 |
无符号数 | 0~255 |
-128的补码为80H
3. 整数补码的运算(加减)
减可变为有符号数的加
C标:有进位则为1
O标:加数与被加数的最高位相同,却与结果最高位相异,则为1,其余所有情况均为0
若参与运算的是无符号数,看C标,若C为1,则溢出错
若参与运算的是有符号数,看O标,若O为1,则溢出错
4. 冯诺依曼提出计算机硬件系统
包括:存储器、运算器、控制器、输入设备、输出设备
5. 基本结构寄存器的名称、位长和作用
通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP(可存放数据或地址,并能进行数据运算),位长均为32位
AX(位长16):累加器,用于算术、逻辑运算以及与外设传送信息
BX(位长16):基址寄存器,常用作存放存储器地址
CX(位长16):计数器,作为循环和串操作等指令中的隐含计数器
DX(位长16):数据寄存器,常用来存放双字节数据的高16位,或存放外设端口地址
SI、DI(位长16):变址寄存器常用作存储器变址寻址方式时提供地址
BP、SP(位长16):指针寄存器,用于寻址内存区堆栈段的数据
段寄存器:CS,SS,DS,ES,FS,GS(位长均为16)
CS:存放代码段的段基址
DS:存放数据段的段基址
ES:存放附加数据段的段基址
SS:存放堆栈段的段基址,指示堆栈区域的位置
指令指针寄存器IP(位长16):指示内存中指令的位置
标志寄存器:FLAG(位长16)
15位标志分为两类:状态标志和控制标志
标志位指明程序运行时微处理器的实时状态
控制位控制CPU进行某种操作
6种状态标志:CF OF ZF PF AF SF
C:进位/借位,看最高位
O:溢出,加数与被加数的最高位相同,却与结果最高位相异,则为1,其余所有情况均为0
Z:零标志,结果为0则置1
P:奇偶,低八位“1”个数为偶则置1
A:辅助进位/借位,看第四位(D3)
S:符号标志
6. 80486三种工作模式
实地址模式(实模式)、 保护虚拟地址模式(保护模式)、 虚拟86模式
-
物理地址的形成:将单元所在段的16位段基址左移4位再加上该单元相对段段首第一个单元的16位段内偏移地址
物理地址计算公式:物理地址=段基址*16+偏移地址 -
逻辑地址的概念:逻辑空间对应的地址
7. 源程序中的语句类型 :指令语句、伪指令、宏指令
一个完整的源程序应包含2类语句:指令性语句(符号指令)、指示性语句(伪指令)
- 汇编语言程序中的指令分为符号指令和伪指令两类,其中伪指令是为汇编程序提供汇编信息,为链接程序提供链接信息的
- 指令性语句在汇编时被翻译成机器指令,伪指令语句在汇编时由汇编程序执行
8. 80486的寻址方式
486有3类7种寻址方式
立即寻址方式:获得立即数
操作数在指令中
eg:
MOV AX,10010011B//二进制数
MOV AX,1234H//十六进制数
MOV AX,0A93H//字母前需要加0
MOV AL,4//十进制数
MOV AL,'A'//字符A的ASCII码
MOV AX,10*21//210
寄存器寻址方式:获得寄存器操作数
操作数在寄存器中
eg:
MOV CH,CL
INC SI
存储器寻址方式:获得存储器操作数(内存操作数)
操作数放在存储器中
内存寻址方式 | 16位寻址段超越前缀省略 |
---|---|
直接寻址 | / |
寄存器间接寻址 | 堆栈段:BP;数据段:BX,SI,DI |
基址寻址 | 堆栈段:BP;数据段:BX |
变址寻址 | 数据段:SI,DI |
基址+变址寻址 | 取决于基址寄存器 |
- 段寄存器:[间址寄存器]
某单元的物理地址=段寄存器内容×16+间址寄存器 - 段寄存器:[基址寄存器+位移量]
物理地址=段寄存器内容×16+基址寄存器+位移量 - 变址寻址 [SI+位移量],[DI+位移量]
- 基址+变址寻址 [BX+SI],[BX+DI],[BP+SI],[BP+DI]
eg:
MOV AL,DS:[45H]//直接寻址
MOV AX,DS:BUF//直接寻址,BUF为变量名,也可省略段寄存器名称 MOV AX,BUF
MOV AL,DS:[BX]//间址寻址,可写为 MOV AL,[BX]
MOV AL,DS:[BP]//间址寻址,不是约定间址寄存器,所以不可省略
MOV AH,DS:[BX+3]//基址寻址,可改写为 MOV AH,[BX+3]
MOV AH,SS:[SI+2]//变址寻址,不可省略段寄存器名称
MOV AH,[BX+SI+3]//基址+变址寻址