汇编语言
汇编语言基础知识
简介
面向机器的用符号表示的程序设计语言,也有符号语言.
汇编语言由:汇编指令(机器码的助记符),伪指令和其他符号
数据的表示
B(二进制)D(十进制)
转换:除法取余并倒过来
原码–就是本身 反码–负数取反,正数不变(符号位不变) 补码–负数在反码基础上加一,正数不变
采用的是美国信息交换标准代码 ASCII
- 注意十六进制要在后面加 H 以区别
- 十六进制和二进制就是每四位组成
- 对"数的补码"求补就是该数取反的补码,即 [[x]补]补 = [-x]补
基本逻辑运算
- and ^ *
- or |
- xor
- not
### 计算机基本原理
计算机组成
中央处理器(运算器和控制器),存储器,输入输出,用系统总线(数据总线,地址总线,控制总线)连接起来
存储器
16位CPU的特点
- 数据总线16位
- 最多可以处理16位的数据
- 寄存器最大宽度16位
- 寄存器与运算器的通路为16位
基本存储单元
八位二进制组成一个字节
byte
,两个字组成一个字word
,两个字为双字dword
8086的存储器以字节为基本存储单位,对内存的读写至少是一个字节
字的结构如下:0 1 1 1 0 0 1 0 | 1 1 1 0 0 0 1 0
高 位 字 节 | 低 位 字 节
规定:低字节存放于低地址单元,高字节存放于高地址单元
如何用16位结构实现20位的物理地址的传送和内存寻址: 8086 CPU在内部使用两个16位地址合成来形成一个20位物理地址的方法.
存储器分段
采用" 段地址*16 + 偏移地址 = 物理地址",用于采用十六进制来表示,即相当于把段地址左移一位加上偏移地址就是物理地址
每个段的大小为64 KB 即偏移地址 从0000 ~ FFFF
段的类型
- 代码段:存放指令,代码段段基址存放在段寄存器CS
- 数据段:存放数据,数据段段基址存放在段寄存器DS
- 附加段:辅助存放,附加段段基址存放在段寄存器ES
- 堆栈段:堆栈,存放在段寄存器SS
因为typora之前没有激活的原因,所以好像超字数的都没有保存,还好我导出保存了html和pdf,都存在了github里的仓库里,还好我之前意识到了不对劲,下面是github pages的链接
汇编语言上
汇编语言下