汇编语言基础备忘
陆陆续续记录一下常用的汇编指令,真的是非常基础。
寄存器分类
通用寄存器
主要有AX, BX, CX, DX等等
指令寄存器IR
存储着现在正在执行的指令地址
指针寄存器
有栈指针寄存器SP和栈基址指针寄存器BP
段寄存器
标志端的开始,有CS, DS, SS, ES
特殊用途
有些寄存器有特定用途,如:
AX用于累加和终端
CX用于计数、循环
内存分段
一个程序可以有数据段、代码段、堆栈段。
数据段:存放全局变量,段寄存器为DS
代码段:存放汇编指令,段寄存器为CS
堆栈段:存放程序运行期间产生的变量,分为堆和栈,栈用于存放函数局部变量,堆用于存放动态分配的变量。堆栈段寄存器为SS,SP寄存器指向栈顶。
扩展段
用于保存其他信息,段寄存器为ES
常用汇编指令(8086为例)
mov
传送指令
mov a,b
将b的值赋值给a
add
加法指令
add a,b
等同于 a=a+b
sub
减法指令
sub a,b
等同于a=a-b
cmp
比较指令
cmp a,b
比较a和b的大小,结果存在编制寄存器中
jmp
无条件跳转指令
修改IP和CS是程序跳转到特定地址运行
jcc
条件转移指令
通过判断标志寄存器的状态决定是否跳转
call
调用函数指令
程序会调用函数入口执行
ret
函数返回指令