汇编常用寄存器以及寻址方式

寄存器概览

在这里插入图片描述

常用寄存器

AX accumulator 累加寄存器
BX base 基址寄存器
CX count 计数寄存器
DX data 数据寄存器
SP stack pointer 堆栈寄存器
BP base pointer 基址指针寄存器
SI source index 源变址寄存器
DI destination index 目的变址寄存器
IP instruction pointer 指令指针寄存器
CS code segment 代码段寄存器
DS data segment 数据段寄存器
SS stack segment 堆栈寄存器
ES extra segment 附加段寄存器

Flag 标志寄存器
Flag寄存器中存储的信息通常被称为程序的状态字 Program Status Word
在这里插入图片描述
OF overflow flag 溢出标志 一些操作会代之
SF sign flag 符号标志 记录运算结果 结果为负为1
ZF zero flag 零标志 运算结束等于0为时为1 否则为0
CF carry flag 进位标志 最高有效位产生进位时为1,否则为0
AF auxiliary carry flag 辅助进位标志 运算时 第3位向第4位产生进位时为1,否则为0
PF parity flag 奇偶标志 运算结果操作数位为1的个数为偶数个时为1 否则为0
DF direction flag 方向标志 用于串处理 DF=1时,每次操作后使SI和DI减小.DF=0时则增大
IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断
TF trap flag 陷阱标志 用于调试单步操作

EA – Effective Address 有效地址 偏移地址
SA – Segment address

寻址方式

一图解决问题
其中,内存寻址只需要提供偏移地址,默认的段地址放在ds寄存器
基址寻址时偏移地址放在bx中
变址寻址时偏移地址放在si和di中

如果想显式地使用es作为段地址,则需要使用段超越前缀

mov ax,[es:si]

请添加图片描述
如果是对堆栈寻址,则有不同的寄存器用于存放段地址和偏移地址:
段地址使用SS存放
偏移地址使用SP存放,其中BP,也可以用于访问栈顶以下的数据(有些情况下是必要的)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值