六.DS寄存器

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系统中,遵循高高低低,表示高内存地址,表示高位;

计算ax,bx,cx结果
结果分析

小端模式大端模式

大小端示意图
取出3字节数据
字形数据的传递
小练习
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容