汇编语言基础备忘

汇编语言基础备忘

陆陆续续记录一下常用的汇编指令,真的是非常基础。


寄存器分类

通用寄存器

主要有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 函数返回指令

评论