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

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

一、CPU简介

1、目标代码

  1. 目标代码/目标程序:由机器指令组成的程序

    • CPU只能执行机器指令
    • 高级语言编写的程序,最后都要转换成机器指令组成的程序,即目标代码,这样才能执行
    • 目标代码是二进制编码的
  2. 程序编译过程
    在这里插入图片描述

2、CPU基本功能

  • CPU的基本功能包括:执行机器指令暂存少量数据访问寄存器
  1. 执行机器指令

    • 机器指令:CPU能直接识别并执行的指令
    • 指令集:一款CPU能执行的全部指令的集合
    • 指令的分类:
      (1)数据传送指令
      (2)转移指令
      (3)处理器控制指令
      (4)其他指令
  2. 暂存少量数据

    • 大部分指令是对数据进行运算和处理。运算数据和运算结构存在
      (1)寄存器(CPU中)
      (2)存储器中(内存)
    • 利用CPU内寄存器存取运算数据和结果效率最高。汇编器会充分利用CPU中仅有的寄存器,编写汇编时也要注意
  3. 访问存储器

    • 存储器: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)intIA32是32位CPU,用的最多的数据类型就是双字
四字64(unsigned)double-
十字节80--
字符串-(unsigned)int字符构成的一个线性数组,通常每个字符由一个字节表示,但有时每个字符也可用一个字或一个双字表示

在这里插入图片描述

4. 数据的存储

  • 使用小端存储:数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
    在这里插入图片描述
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值