Open CelestialCosmic opened 2 years ago
2021/12/22
比特(bit):最基础的组成单位,即 0、1
字节(byte):一类由 8 比特组成的数据,可以存在 8 位寄存器中,其最大值为 255
字(word):一类由 2 字节组成的数据,可以存在 16 位寄存器中,其最大值为 65535
16位寄存器 AX、BX、CX、DX,都能存 16 字节的信息,也能分成 2 个独立的 8 位寄存器使用,此时 AX 前 8 字节叫 AH、后 8 字节叫 AL。
在逻辑上,寄存器中的字节自右向左排列,最右的是 0。
以mov ax,18为例
mov ax,18
mov 叫“指令”,ax,18 叫“操作数”
mov
ax,18
指令或寄存器的名字不区分大小写
即mov ax,18等价于MOV AX,18
MOV AX,18
赋值:将操作数(也可以是另一个寄存器中的数)送入寄存器
相加:将寄存器中的数与操作数(也可以是另一个寄存器中的数)相加,结果存在左寄存器中
操作数是十进制的,相加时,会转换为十六进制。如果最高位发生进位,其进位的值会“丢失”
物理地址实际由“段地址”与“偏移地址”在地址加法器中合成
$$物理地址 = 段地址 \times 16 + 偏移地址$$
段是一片内存(由 CPU 定义),它的起始地址叫做“段地址”,该片内存的物理地址可以用段地址 + 偏移量来表示
段同样需要寄存器来存储,这些寄存器叫做“段寄存器”,分别是 CS DS SS ES。
任意一节内存中,一个字使用两个字节存储,从右向左读,即从高位内存向低位内存存储。
2021/12/22
数据类型
比特(bit):最基础的组成单位,即 0、1
字节(byte):一类由 8 比特组成的数据,可以存在 8 位寄存器中,其最大值为 255
字(word):一类由 2 字节组成的数据,可以存在 16 位寄存器中,其最大值为 65535
四个通用寄存器
16位寄存器 AX、BX、CX、DX,都能存 16 字节的信息,也能分成 2 个独立的 8 位寄存器使用,此时 AX 前 8 字节叫 AH、后 8 字节叫 AL。
在逻辑上,寄存器中的字节自右向左排列,最右的是 0。
汇编指令
指令形式
以
mov ax,18
为例mov
叫“指令”,ax,18
叫“操作数”指令或寄存器的名字不区分大小写
即
mov ax,18
等价于MOV AX,18
mov 指令
赋值:将操作数(也可以是另一个寄存器中的数)送入寄存器
add 指令
相加:将寄存器中的数与操作数(也可以是另一个寄存器中的数)相加,结果存在左寄存器中
操作数是十进制的,相加时,会转换为十六进制。如果最高位发生进位,其进位的值会“丢失”
物理地址标记
物理地址实际由“段地址”与“偏移地址”在地址加法器中合成
$$物理地址 = 段地址 \times 16 + 偏移地址$$
段与段寄存器
段是一片内存(由 CPU 定义),它的起始地址叫做“段地址”,该片内存的物理地址可以用段地址 + 偏移量来表示
段同样需要寄存器来存储,这些寄存器叫做“段寄存器”,分别是 CS DS SS ES。
内存存储
任意一节内存中,一个字使用两个字节存储,从右向左读,即从高位内存向低位内存存储。