汇编语言基础知识

首先介绍一下

汇编语言的组成

  • 汇编指令(机器码的助记符)
  • 伪指令(由编译器执行)
  • 其他符号(由编译器识别)

汇编语言的核心是汇编指令,他决定了汇编语言的特性
图片
机器指令与汇编指令一一对应

  • 机械指令:1000100111011000
  • 操作:寄存器BX的内容传送到AX中
  • 汇编指令:MOV AX,BX
  • 这样的写法便于人们的记忆

汇编语言执行过程:
图片

存储器

  • 先来说说CPU,中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。要想让一个CPU来工作,就必须让他提供指令和数据。
  • 指令和数据在存储器中存放,也就是平时所说的内存。
  • 如果外设存储器的数据不读到内存则将无法被CPU使用,CPU无法直接与外设沟通。
  • CPU与各个内存储器通讯是通过总线(BUG)
  • 所以在学习汇编的时候主要学CPU是如何与内存打交道

指令和数据

  • 指令和数据是应用上的概念
  • 在存储器上,指令和数据没有任何区别,都是二进制信息
二进制信息:

1000100111011000———>56D8H(数据)

1000100111011000———>MOV AX,BX(指令)
  • 对于两种相同的二进制信息,决定他是指令还是数据,由设计者来规定

存储单元

  • 存储器被划分成若干个存储单元,每个存储单元从0开始编号
例如:

一个存储器有128个存储单元,编号从0~127。

CPU对存储器的读写

CPU要想进行数据的读写操作,必须对外部器件进行三类信息的交互:

  • 存储单元的地址(地址信息)
  • 器件的选择,读或写的命令(控制信息)
  • 读或写的数据(数据信息)
    CPU首先通过地址总线对外部器件发送一个带有地址的数据,再通过控制总线发出一个对该地址是读或者写的信号,如果是写就通过数据总线携带需要写入的数据,这就是三个总线的工作负责让CPU与各个部件的通讯。在这里我们平时说的CPU32位64位就是地址总线的宽度
    图片
    图片
    看上面下侧图片,CPU发送了一个对3号地址进行读的操作的信号,首先通过地址总线定位存储器3号地址的位置,通过控制总线发出了一个读操作的信号,3号地址的内容将通过数据总线传回。
    具体传输:
    在这里插入图片描述
    此图片由上面低地址,下面高地址排序,数据传过去正确接收的顺序应该是00001011,高地址在前,所以内存收到的地址为0000BH,H代表十六进制,一根地址总线线索引一个字节,也就是8位。

CPU下面的引脚就是总线的线路接口,现在的CPU引脚已达到了上千上万,里面引脚一些是数据总线的接口,一些是地址总线的接口,一些是控制总线的接口

汇编语言(各章知识点) 课程介绍 第1章 预备知识  1.1 汇编语言的由来及其特点   1 机器语言   2 汇编语言   3 汇编程序   4 汇编语言的主要特点   5 汇编语言的使用领域  1.2 数据的表示和类型   1 数值数据的表示   2 非数值数据的表示   3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组   1 寄存器组   2 通用寄存器的作用   3 专用寄存器的作用  2.2 存储器的管理模式   1 16位微机的内存管理模式   2 32位微机的内存管理模式  2.3 习题 第3章 操作数的寻址方式  3.1 立即寻址方式  3.2 寄存器寻址方式  3.3 直接寻址方式  3.4 寄存器间接寻址方式  3.5 寄存器相对寻址方式  3.6 基址加变址寻址方式  3.7 相对基址加变址寻址方式  3.8 32位地址的寻址方式  3.9 操作数寻址方式的小结  3.10 习题 第4章 标识符和表达式  4.1 标识符  4.2 简单内存变量的定义   1 内存变量定义的一般形式   2 字节变量   3 字变量   4 双字变量   5 六字节变量   6 八字节变量   7 十字节变量  4.3 调整偏移量伪指令   1 偶对齐伪指令   2 对齐伪指令   3 调整偏移量伪指令   4 偏移量计数器的值  4.4 复合内存变量的定义   1 重复说明符   2 结构类型的定义   3 联合类型的定义   4 记录类型的定义   5 数据类型的自定义  4.5 标号  4.6 内存变量和标号的属性   1 段属性操作符   2 偏移量属性操作符   3 类型属性操作符   4 长度属性操作符   5 容量属性操作符   6 强制属性操作符   7 存储单元别名操作符  4.7 表达式   1 进制伪指令   2 数值表达式   3 地址表达式  4.8 符号定义语句   1 等价语句   2 等号语句   3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编语言指令格式   1 指令格式   2 了解指令的几个方面  5.2 指令系统   1 数据传送指令   2 标志位操作指令   3 算术运算指令   4 逻辑运算指令   5 移位操作指令   6 位操作指令   7 比较运算指令   8 循环指令   9 转移指令   10 条件设置字节指令   11 字符串操作指令   12 ASCII-BCD码调整指令   13 处理器指令  5.3 习题 第6章 程序的基本结构  6.1 程序的基本组成   1 段的定义   2 段寄存器的说明语句   3 堆栈段的说明   4 源程序的结构  6.2 程序的基本结构   1 顺序结构   2 分支结构   3 循环结构  6.3 段的基本属性   1 对齐类型   2 组合类型   3 类别   4 段组  6.4 简化的段定义   1 存储模型说明伪指令   2 简化段定义伪指令   3 简化段段名的引用  6.5 源程序的辅助说明伪指令   1 模块名定义伪指令   2 页面定义伪指令   3 标题定义伪指令   4 子标题定义伪指令  6.6 习题 第7章 子程序和库  7.1 子程序的定义  7.2 子程序的调用和返回指令   1 调用指令   2 返回指令  7.3 子程序的参数传递   1 寄存器传递参数   2 存储单元传递参数   3 堆栈传递参数  7.4 寄存器的保护与恢复  7.5 子程序的完全定义   1 子程序完全定义格式   2 子程序的位距   3 子程序的语言类型   4 子程序的可见性   5 子程序的起始和结束操作   6 寄存器的保护和恢复   7 子程序的参数传递   8 子程序的原型说明   9 子程序的调用伪指令   10 局部变量的定义  7.6 子程序库   1 建立库文件命令   2 建立库文件举例   3 库文件的应用   4 库文件的好处  7.7 习题 第8章 输入输出和中断  8.1 输入输出的基本概念   1 I/O端口地址   2 I/O指令  8.2 中断   1 中断的基本概念   2 中断指令   3 中断返回指令   4 中断和子程序  8.3 中断的分类   1 键盘输入的中断功能   2 屏幕显示的中断功能   3 打印输出的中断功能   4 串行通信口的中断功能   5 鼠标的中断功能   6 目录和文件的中断功能   7 内存管理的中断功能   8 读取和设置中断向量  8.4 习题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值