前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机指令考前小记

计算机指令考前小记

作者头像
WuShF
发布2023-11-13 09:09:04
2440
发布2023-11-13 09:09:04
举报
文章被收录于专栏:笔记分享笔记分享

RTL寄存器传送语言:简化对指令功能的说明

  • R[r]:存储器r的内容
  • M[addr]:存储单元addr的内容
  • M[R[r]]:寄存器r的内容所指的存储单元的内容

汇编指令movw 4(%ebp),%ax的RTL语言为:R[ax] <- M[R[ebp]+4]

  • 将寄存器EBP的内容和4相加得到的地址对应的两个连续存储单元中的内容送到寄存器AX中

汇编助记符:汇编语言中的英文单词或其缩写、标号、变量名称 汇编程序:将汇编指令翻译为机器指令 反汇编程序:机器指令翻译为汇编指令 机器级语言:机器语言和汇编语言 机器级程序:用机器指令表示的机器语言程序和由汇编指令表示的汇编语言程序

指令集体系结构ISA

机器语言级虚拟机:将物理上的计算机硬件抽象成一个逻辑上的虚拟计算机。 GCC:GNU C语言编译器 GCC生成的很多汇编指令助记符结尾有lw等长度后缀。l表示操作数为双字32位,w表示操作数为单字16位。 在IA-32中,大多数操作数都是32位,所以通常省略后缀l。 AT&T:

  • b表示操作数长度为字节8位,w表示字16位,l表示双字32位,q表示四字64位。
  • 寄存器操作格式:%+寄存器名
  • 存储器操作数形式:偏移量(基址寄存器,变址寄存器,比例因子)

GCC生成的汇编代码中的指令助记符大部分都有长度后缀。 微软MASM工具生成的Intel汇编格式不用长度后缀,而是通过寄存器名称和长度指示符PTR区分。

寄存器组织

IA-32指令中操作数有三类:立即数、寄存器操作数、存储器操作数。

image.png
image.png

ESP是栈指针寄存器 EBP是基址指针寄存器 EFLAGS标志寄存器:记录机器的状态和控制信息 条件标志存放运行的状态信息,由硬件自动设定,也被称条件码:

  • OF:溢出标志
  • SF:符号标志
  • ZF:零标志
  • CF:进/借位标志

OF和SF对无符号数运算没有意义,CF对有符号数运算没有意义。 控制标志由软件设定,用于中断响应、串操作、单步控制:

  • DF:方向标志
  • IF:中断允许标志
  • TF:陷阱标志

寻址方式

立即寻址:指令中直接给出操作数 寄存器寻址:指令中给出操作数所存放的寄存器的编号 其他寻址方式下的操作数都在存储单元中,称为存储器操作数

image.png
image.png

比例变址:变址值等于变址寄存器内容乘以比例系数S 非比例变址:相当于比例系数为1的比例变址。变址值就是变址寄存器的内容 寻址方式中,最适合按下标顺序访问一维数组元素的是:变址寻址。 课本上的比较粗糙,需要结合考题。

还是得多做几道题,靠做题来学

Movw (%ax), %cx,源操作数寻址方式为寄存器间接寻址;RTL语言:R[CX]←M[R[AX]] movw 4(%ax, %dx), %cx,源操作数寻址方式为基址+变址+位移寻址;RTL语言:R[CX]←M[R[AX]+R[DX]+4] movw (%ax, %dx, 3), %cx,源操作数寻址方式为基址+比例变址寻址;RTL语言:R[CX]←M[R[AX]+R[dX]*3] movw 0xC(%dx, %ax, 2), %cx ,源操作数寻址方式为基址+比例变址+位移寻址 movw ( , %ax, 4), %cx,源操作数寻址方式为比例变址寻址 movw (%ax, %dx), %cx,源操作数寻址方式为基址+变址寻址

传送指令

这一块目前就发现就这一个需要分辨的问题:mov和leal的区别 mov:一般的数据传送指令

  • movl 8(%ebp),%edxR[edx] <- M[R[ebp]+8]

leal:加载有效地址

  • leal (%edx,%eax),%eaxR[eax] <- R[edx]+R[eax]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指令集体系结构ISA
  • 寄存器组织
  • 寻址方式
  • 传送指令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档