8086采用一种在内部用两个16位地址合成的方法形成一个20为物理地址
一个称为段地址,另一个称为偏移地址
段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
地址加法器将两个16位地址合成为一个20位的物理地址
地址加法器通过内部总线将20位物理地址送上地址总线
20位物理地址被地址总线传送到存储器

地址加法器规则 物理地址=段地址*16+偏移地址 合成物理地址
基础地址=段地址*16 相当于2进制地址左移四位 16进制地址左移一位

段寄存器
8086有4个段寄存器:cs,ds,ss,es
当cpu访问内存时由这四个段寄存器提供内存单元的段地址

cs和ip是8086cpu最关键的两个寄存器,他们指示cpu当前要读指令的地址。
cs为代码段地址,ip为指令指针寄存器。

cs:ip指向的内容当做指令执行。

jmp可以修改cs ip
jmp ax 指向前 ax =1000H,cs=2000H ip=0003H
执行后 cs=2000H ip=1000H、
用寄存器中的值修改ip

 

mov ax,18  将18送入寄存器AX                 AX = 18
mov ah,78   将78送入寄存器AH                AH=78
add ax,8     将寄存器AX中的数值加上8        AX =AX+8
mov ax,bx    将寄存器BX中的数据送入寄存器AX AX=BX
add ax,bx    将AX和BX中的数值相加,结果存入 AX AX=AX+BX

ax等同于AX不分大小写

对寄存器中的数据进行改变
刚开始AX BX 中的值为0000H
                  AX   BX
mov ax,4E20H    4E20H 0000H
add ax,1406H    6226H 0000H
mov bx,2000H    6226H 2000H
add ax,bx       8226H 2000H
mov bx,ax       8226H 8226H
add ax,bx       ?     8226H
最后数据相加后为1044CH高位1不能再ax中保存 ax数据位044CH

在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的
mov ax,bx
mov bx,ax
mov ax,18H
mov al,18H
add ax,bx
add ax,20000
等都是正确指令

mov ax,bl
mov bh,ax
mov al,20000
mov al,100H
等都是错误指令,两个操作对象位数不一致。

 posted on 2013-09-08 00:18  gac  阅读(507)  评论(0编辑  收藏  举报