《汇编语言程序设计》求生指南
第一章
- BCD码转换
1010—1111是非法BCD码 - 真值数和补码数之间的转换
正数的补码等于本身,负数的补码等于反码+1 - n位字长的有符号数、无符号数的数值范围
设机器数字长=n, 则n位补码数
其真值范围为 -2n-1 ~ +2n-1-1
无符号数其数值范围为 0 ~ 2n-1 - 常用ASCII码范围:
0:48
A:65
a:97
(space):32
(回车):13 - C标表示进位,O标表示溢出
- 冯诺依曼架构:运算器、控制器、存储器、输入、输出
CPU:运算器和控制器
第二章
- 基本结构寄存器的名称、位长和作用
通用寄存器: AX, BX, CX, DX, SI(源变址), DI(目的变址), BP(基址指针)
段寄存器: CS, SS, DS, ES, FS, GS
指针寄存器: IP(指令指针), SP(堆栈指针)
标志寄存器: FLAGS
15位标志分为两类: 状态标志和控制标志
6种状态标志:CF(进位) OF(溢出) ZF(全零) PF(最后一字节1为偶数为1) AF(辅助进位标志) SF(记录最高位的位值) - 80486的工作模式:实地址模式和保护虚拟地址模式
80486的三个存贮地址空间:逻辑空间、线性空间和物理空间
逻辑地址:即逻辑上的地址,实模式下由“段基地址+段内偏移”组成;保护模式下由“段选择符+段内偏移”组成。
线性地址:逻辑地址经分段机制后就成线性地址,它是平坦的;如果不启用分页,那么此线性地址即物理地址。
物理地址:线性地址经分页转换后就成了物理地址。 - 实地址模式下,物理地址的形成
物理地址=段基址*16+偏移地址
内存容量=末地址-首地址+1
末地址=首地址+(字数-1)*2 末地址
第三章
源程序中的语句类型
一个完整的源程序应包含2类语句:
指令性语句(符号指令)、指示性语句(伪指令)80486的寻址方式486有3类7种寻址方式
立即寻址方式:获得立即数
寄存器寻址方式:获得寄存器操作数
存储器操作数寻址方式:获得存储器操作数(内存操作数)内存寻址方式 16位寻址规定可使用的寄存器
直接寻址
寄存器间接寻址 [BX],[BP],[SI],[DI]。段寄存器:[间址寄存器],某单元的物理地址=段寄存器内容×16+间址寄存器
基址寻址 [BX+位移量],[BP+位移量]。段寄存器:[基址寄存器+位移量]。物理地址=段寄存器内容×16+基址寄存器+位移量
变址寻址 [SI+位移量],[DI+位移量]。
基址+变址寻址 [BX+SI],[BX+DI],[BP+SI],[BP+DI]常用伪指令
数据字义伪指令 DB DW DD(一字节二字节四字节)
等值伪指令 EQU =常用运算符
$运算符:当前汇编计数器的值。通常$-地址,可以求长度
SEG运算符:获取段的基地址,SEG DATA
OFFSET运算符:相对于段首的基地址
PTR运算符:修改属性目标程序的生成
16进制数加法及标志位的影响
80486基本指令集
第四章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PiCpo的阁楼!