IA-32汇编语言笔记—— 基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IA-32汇编语言笔记—— 基础知识相关的知识,希望对你有一定的参考价值。


  • 记录汇编语言课笔记,可能有不正确的地方,欢迎指出
  • 教材《新概念汇编语言》—— 杨季文
  • 这篇文章对应书第一章 基础知识

文章目录

  • ​​一、CPU简介​​
  • ​​1、目标代码​​
  • ​​2、CPU基本功能​​
  • ​​二、汇编语言的概念​​
  • ​​1、机器指令​​
  • ​​2、汇编指令格式​​
  • ​​3、汇编语言及优缺点​​
  • ​​三、数据的表示&存储​​
  • ​​1. 数值数据的表示​​
  • ​​2. 非数值数据表示​​
  • ​​3. 基本数据类型​​
  • ​​4. 数据的存储​​

一、CPU简介

1、目标代码

  1. 目标代码/目标程序:由机器指令组成的程序
  • CPU只能执行机器指令
  • 高级语言编写的程序,最后都要转换成机器指令组成的程序,即目标代码,这样才能执行
  • 目标代码是二进制编码的
  1. 程序编译过程
  2. IA-32汇编语言笔记(1)——

2、CPU基本功能

  • CPU的基本功能包括:执行机器指令暂存少量数据访问寄存器
  1. 执行机器指令
  • 机器指令:CPU能直接识别并执行的指令
  • 指令集:一款CPU能执行的全部指令的集合
  • 指令的分类:
    (1)数据传送指令
    (2)转移指令
    (3)处理器控制指令
    (4)其他指令
  1. 暂存少量数据
  • 大部分指令是对数据进行运算和处理。运算数据和运算结构存在
    (1)寄存器(CPU中)
    (2)存储器中(内存)
  • 利用CPU内寄存器存取运算数据和结果效率最高。汇编器会充分利用CPU中仅有的寄存器,编写汇编时也要注意
  1. 访问存储器
  • 存储器:CPU可以直接访问的计算机系统的物理内存
  • 由机器指令组成的目标程序存储于存储器中,部分待处理数据也是
  • 存储器(内存)由一系列存储单元线性组成,最基本的存储单元为一个字节。为了标识和存取每一个单元,给每个单元一个编号(即地址)

二、汇编语言的概念

1、机器指令

  1. 由CPU直接识别并执行的指令称为机器指令,采用二进制编码
  2. 一般由​​操作码​​​和​​操作数​​​两部分构成
    (1)​​​操作码​​​指出要进行的 ​​操作​​​/​​运算​​​…
    (2)​​​操作数​​​指出参与操作的 ​​对象​​​/​​结果存放位置​​​/​​数据​​…
  3. 通常用十六进制形式写出机器指令

2、汇编指令格式

  1. 用指令助记符、地址符号等表示的指令称为汇编格式指令
  2. 格式:​​[标号:] 指令助记符 [操作数表]​​,其中​​助记符​​是必须的,​​操作数​​随指令而定,​​标号​​可有可无

3、汇编语言及优缺点

  1. 优:效率高
  2. 缺:繁琐、难调试
三、数据的表示&存储

1. 数值数据的表示

  • 数的二进制表示
  • 有符号数的补码表示
  • 符号扩展(扩展符号位)
  • 数值数据表示范围
  • BCD码(常用8421)
  • 十六进制表示(4位二进制转换1位十六进制,通常后加H)

2. 非数值数据表示

  • ASCII码
  • 变形国标码

3. 基本数据类型

  • 计算机存取的以二进制位表示的信息位数一般是8的倍数,有专门名称

IA32汇编名称

长度

C中对应例子

说明

字节

8

(unsigned)char / ASCII

-


16

(unsigned)short / 变形国标码汉字

CPU一次能处理信息量的术语,字长是衡量CPU性能的重要指标

双字

32

(unsigned)int

IA32是32位CPU,用的最多的数据类型就是双字

四字

64

(unsigned)double

-

十字节

80

-

-

字符串

-

(unsigned)int

字符构成的一个线性数组,通常每个字符由一个字节表示,但有时每个字符也可用一个字或一个双字表示

IA-32汇编语言笔记(1)——

4. 数据的存储

  • 使用小端存储:数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
  • IA-32汇编语言笔记(1)——





以上是关于IA-32汇编语言笔记—— 基础知识的主要内容,如果未能解决你的问题,请参考以下文章

IA-32汇编语言笔记——堆栈的作用

IA-32汇编语言笔记—— 分支程序设计

什么是ia-32处理器数据存储的小端方式

使用 __builtin_ ia32 shufps 将向量移动 32 位?

《逆向工程核心原理》读书笔记——第4章 IA-32寄存器基本讲解

汇编语言中的寻址模式 (IA-32 NASM)