汇编语言是直接在硬件之上工作的编程语言,首先先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。
01000000,汇编语言表示形式:PUSH AXCPU中可以存储数据的器件,一个CPU中有多个寄存器】BX的内容送到AX中,汇编指令:MOV AX,BX
CPU。CPU也无法工作。CPU使用。1KB = 1024B【2的10次方】,1MB =1024KB,1GB = 1024MB,1TB = 1024GB。
N根地址总线,则可以说这个CPU的地址总线的宽度为N,这样的CPU最多可以寻找2的N次方个内存单元。【1Byte = 8bit】BIOS:基本输入输出系统,是由主板和各类接口卡【如显卡、网卡等】厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出,在主板和某些接口卡上插有存储相应BIOS的ROM。
CPU的总线相连、CPU对他们进行读或写的时候都通过控制线发出内存读写命令。CPU的角度考虑问题。CPU是由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。8086CPU所有的寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX通常用来存放一般性数据,被称为通用寄存器。8086上一代CPU中的寄存器都是8位的,为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。AX为例的逻辑结构:
AH【高八位】和AL【低八位】,BX、CX、DX同理。、AH和AL寄存器是可以独立使用的8位寄存器。8086 CPU所有的寄存器是16位,可以存放2个字节【一个字】。8 bit 组成,可以存在8位寄存器中。
H,二进制后面添加B【Binary】。汇编指令不分大小写!

进位的丢失指的是禁止为不能在8位寄存器中保存,但是CPU并不是真的丢弃这个进位值。
16位数据。16位。16位。20根地址线,可传送20位地址,寻址能力为1M。16位结构,只能传送16位的地址,寻址能力为64K。16位地址合成的方法来形成一个20位的物理地址。



N位,相当于该数据乘以2的N次方。一个数据X进制形式左移N位,相当乘以N的X次方。基础地址 + 偏移地址 = 物理地址

段地址*16+偏移地址 = 物理地址

CPU,由于8086CPU用“ 段地址*16+偏移地址 = 物理地址 ”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。
16的倍数。偏移地址为16位,寻址能力为64K,所以段的最大长度也是64K。8086CPU在内部用段地址偏移地址移位相加的方法形成最终的物理地址。CPU可以用不同的段地址和偏移地址形成同一个物理地址。8086PC机中,存储单元的地址用两个元素来描述:段地址和偏移地址。21F60H内存单元中,对于8086PC机的两种描述:数据存在内存2000:1F60单元中【常见】;数据存在内存的2000段中的1F60H单元中。16的倍数的一组内存单元定义为一个段。8086CPU有4个段寄存器:CS【代码地址】、DS【数据地址】、SS【堆栈地址】、ES 【前面不够放这个寄存器】。8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址。CS【代码段寄存器】和IP【指令指针寄存器】是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的位置。CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
CPU将CS:IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。CPU执行过的话,那么它所在的内存单元必然被CS:IP指向过。CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS:IP中的内容决定的,程序员可以通过改变CS:IP中的内容来控制CPU执行目标指令。mov指令可以改变8086CPU大部分寄存器的值,被称为传送指令。但mov指令不能用于设置CS:IP的值。jmp 段地址:偏移地址,同时修改CS和IP,用指令中给出的段地址修改CS,偏移地址修改IP。jmp 2AE3:3 //即物理地址被修改为2AE33
jmp 3:0B16 //0003:0B16,即物理地址被修改为00B46
jmp 某一合法寄存器,则是仅修改IP。如jmp ax类似于mov IP,ax。
mov ax,6622H
jmp 1000:3
mov ax,0000
mov bx,ax
jmp bx
mov ax,0123H
mov ax,0000
8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段。N <= 64KB】的一组代码,存在一组地址连续,起始地址为16的倍数内存单元中,这段内存是用来存放代码的,从而定义了一个代码段。CPU并不会由于这种安排,就自动地将我们定义的代码段中的指令当作指令来执行,需要使用CS:IP来指定。CPU只认CS:IP指向的内存单元中的内容为指令。