六.DS寄存器
2017-05-07 本文已影响66人
mkb2
1字节 = 8位
字形 = 2字节
CPU要去度一个内存单元的时候,必须先给定这个内存单元的地址;
在8086系统中,内存地址 = 段地址+偏移地址
8086中有一个SD段地址,专门存储要访问数据的段地址
DS表示的是Data Segement,意为:数据段寄存器
CS表示的是Code Segement,意为:代码段寄存器
在机器中的内存里,所有的"指令和数据"都是用'0,1'表示,CPU也不知道具体他们代表的是什么意思;
如果我们打算告诉CPU这段数字是“指令”,让CS指向那段代码的段地址
如果我们打算告诉CPU这段数字是"数据",让DS指向那段代码的段地址
如果恰巧CS,DS都指向了同一个内存,那么他既可以做指令,也可以做数据
设置数据段
mov al,[0]
只要看到了[0],就表示从某个内存单元格中获取数据;[]
中的表示偏移地址,段地址看DS寄存器
mov bx,1000H
mov ds,bx
mov al,[0]
这段代表从内存中1000H0H(地址1000H:[0]
)取得数据,然后放到al寄存器中;
mov al [address]
表示将DS:address
对应的内存中的数据放到al寄存器中
小练习:将寄存器ah中的数据传入到20567H中
mov bx.2050H
mov ds.bx
mov [67H].ah
因为ah,al表示高位,和低位,都是一个字节,8086可以直接操作;但是ax,bx,cx,dx都是两个字节,如果取数据,要去两个字节,但是下边的内存,切记,每一个都是一位,所以要连续取出两个内存块;这样才能和ax,bx对应上
8086系统中,遵循高高低低
,表示高内存地址,表示高位;
小端模式大端模式
大小端示意图 取出3字节数据 字形数据的传递 小练习