汇编语言学习 操作数指示符

10 篇文章 0 订阅
3 篇文章 0 订阅

以下为读书笔记,摘抄自《深入理解计算机系统》

 

汇编程序为程序员提供了更多处理器状态:

  • 程序计数器:将要执行的下一条指令在存储器中的地址 %eip
  • 整数寄存器堆:8个32位的寄存器
  • 条件码寄存器:记录控制流状态(if,while)等
  • 浮点寄存器堆: 8个32位寄存器
访问信息:

整数寄存器堆的八个寄存器:%eax, %ecx, %edx, %ebx, %esi, %edi, %esp 栈指针, %ebp 帧指针


 
操作数指示符:立即数、寄存器、存储器
  类型     格式                      操作数值                        名称                  
  立即数    $Imm             Imm = 直接的常数数值                     立即数寻址             
  寄存器    E_a              R[E_a] = 寄存器E_a的数据                 寄存器寻址             
  寄存器    Imm              M[Imm] = VSS[Imm] 虚拟地址Imm处的数据    绝对寻址               
  寄存器    (E_a)            M[R[E_a]] = VSS[R[E_a]]                  间接寻址               
  寄存器    Imm(E_b)         M[Imm+R[E_b]] = VSS[Imm+R[E_b]]          (基址+偏移量) 寻址     
  寄存器    (E_b,E_i)        M[R[E_b]+R[E_i]]                         变址                   
  寄存器    Imm(E_b,E_i)     M[Imm+R[E_b]+R[E_i]]                     寻址                   
  寄存器    (,E_i,s)         M[R[E_i]*s]                              伸缩化的变址寻址       
  寄存器    Imm(,E_i,s)      M[Imm+R[E_i]*s]                          伸缩化的变址寻址       
  寄存器    (E_b,E_i,s)      M[R[E_b]+R[E_i]*s]                       伸缩化的变址寻址       
  寄存器    Imm(E_b,E_i,s)   M[Imm+R[E_b]+R[E_i]*s]                

  伸缩化的变址寻址       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值