汇编语言基础

一、CUP和内存的访问

1:地址线,地址总线的宽度决定了CUP的寻址能力;
2:数据线,数据总线的宽度决定了CUP与其他器件进行数据传送时的一次数据传送量;
3:控制线,控制总线的宽度决定了CUP对系统中其他器件的控制能力
二、以8086CUP十六位为例寄存器(AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW)
1:通用寄存器:AX、BX、CX、DX(16位)
     由于上一代CUP为8位,为了保持兼容性
     AX可分为AH、AL。
     BX可分为BH、BL。
     CX可分为CH、CL。
     DX可分为DH、DL。
2:位:bit。字节:byte。字:word。
3:在CUP内部(运算器、控制器、寄存器等构成),在CUP内部之间的访问是16位,运算器一次最多处理16位数据、
     寄存器(用以存储)的最大宽度是16位。而真正CUP和内存条等外部器件访问时的物理地址是20位,因此出现了
    段地址和偏移地址以及地址加法器。即由16位的段地址和16位的偏移地址通过地址加法器变成20位的物理地址,通过
    输入输出控制电路,通过20位的地址总线、数据总线、控制总线和内存条访问。在地址加法器中,物理地址=段地址*16+偏移地址
4:段寄存器存储段地址即CS
   CS为代码段寄存器,IP为指令指针寄存器
    CS:IP(CS*16+IP),IP自动增加
5:修改CS、IP的内容
    jmp段地址:偏移地址
    jmp 2AE3:3 执行后:CS=2AE3H,IP=0003H ,CUP将从2AE33H出读取指令
    仅修改IP的内容,jmp某一合法寄存器
     jmp ax , 指令执行前:ax=1000H,CS=2000H,IP=0003H
                       指令执行后:ax=1000H,CS=2000H,IP=1000H
     相当于 mov IP,ax
6:DS和【address】存放访问数据的段地址
   mov bx,1000H
   mov ds,bx
    mov al,[0]
    默认段地址是ds,第三步【0】是偏移地址
7:栈,SS:SP指向栈顶元素(sp+-2)

打赏 支付宝打赏 微信打赏