065-Assembly汇编02


汇编语言有三类组成
1.汇编指令      (机器码的助记符)
2.伪指令     (由编译器执行)
3.其他符号      (由编译器识别)


存储器
CPU是计算机的核心部件,控制运作和运算
要向CPU提供指令和数据
那么这些指令和数据就放在一个存储器中
这个存储器就是内存


磁盘和内存不一样
磁盘中的数据不读取到内存中
就无法被CPU使用


在内存或磁盘上,指令和数据没有区别
因为他们都是二进制信息


1.6存储单元
存储器被划分成若干个存储单元
每个存储单元从0开始顺序编号
比如
一个存储器有128个存储单元
那么编号为0-127


1.7
连接CPU和其他芯片的导线
称为 总线
逻辑上分为:
1.地址总线
2.数据总线
3.控制总线


1.7三个总线如何控制
CPU这边有3个信息
地址 3    -
数据 0    -内存3号地址100
控制 读    -

1.CPU通过地址总线发送3,那么内存就知道了,要操作3
2.CPU通过控制总线发送读,那么内存就知道了,要读取
3.CPU现在知道了要读取3号地址,那么把100通过数据总线传送给CPU

写入也是一样
1.地址总线给了3
2.控制总线给了写
3.数据总线把100写到3号地址


1.8地址总线
假设CPU有2根地址总线
那么CPU可以同时发送2个信号
比如 00 01 10 11,
所以如果有n根地址总线
就可以同时发送n个信号
那么就可以表示2^n个地址

我们可以说CPU的宽度为N
最多可以寻找2的N次方个内存单元

现在的32位计算机,64位计算机
就是宽度为32和宽度为64
那么32位一次可以走4个字节
那么64位一次可以走8个字节


1.9
8088CPU一次走8位,一个字节
8086CPU一次走16位,2个字节


1.11
如果一个CPU的地址宽度为10
那么就可以寻址1024个内存单元
那么这1024个内存单元构成了
内存地址空间


1.14
RAM 随机存储器
ROM 只读存储器

第二章 寄存器
8086的CPU所有的寄存器都是16位,可以存放2个字节
16位寄存器能存储的最大值为2^16-1

为了保持兼容
每个寄存器都分为2个独立的8位寄存器
AX分为AH,AL  (high,low)
BX分为BH,BL
CX分为CH,CL
DX分为DH,DL


2.3简单汇编指令
mov ax,18    ax=18
mov ah,18    ah=18
add ax,8        ax=ax+8
mov ax,bx    ax=bx
add ax,bx        ax=ax+bx

练习题
mov ax,8226H    ax=8226H
mov bx,8226H     bx=8226H
add ax,bx        ax=ax+bx
最后
ax=1044CH
由于只能存4位,结果ax是
044CH
那么
AH是04
AL是4C


现在ax是044CH
add al,90H    al=al+90H
结果4C加90是13C    但是1不会进位
所以ah还是ah
所以ax是043CH,
所以ah和al是不一样的

2.4物理地址
CPU访问内存单元时要给出内存单元的地址.
所有的内存单元构成的存储空间是一个一维的线性空间.

2.6.8086CPU物理地址
8086有20位地址总线,寻址能力为1M
8086内部为16位结构,只能传送16位的地址,寻址能力为64K

2.9 段寄存器
段寄存器提供段地址
8086CPU有4个段寄存器
CS,DS,SS,ES

CS为代码段寄存器
IP为指令指针寄存器

发布了1081 篇原创文章 · 获赞 42 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_33781658/article/details/104509931