汇编语言关于ds的问题

debug中输入以下代码
mov bx, 1000( H)
mov ds, bx
mov [0], al
ds到底是做什么用的?不是用于存放程序使用中的数据的地址的吗?可是为什么第三行的代码可以修改1000H中的内容呢??求高手解答!
mov 1000, al
这种方式为什么不可以??

ds是段寄存器,是用来存储段地址的,程序是通过段地址:偏移地址寻找数据地址的。mov 1000,al是错误的,al是寄存器,1000是数据,不能mov啊,只有内存地址或寄存器才能啊,例如mov [1000],al这样就可以
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-08
mov 1000, al

这个是因为目地操作数不能为立即数(8086指令规则第三条)
mov [0], al

这个[0]是存储器操作数

汇编语言关于ds的问题
ds是段寄存器,是用来存储段地址的,程序是通过段地址:偏移地址寻找数据地址的。mov 1000,al是错误的,al是寄存器,1000是数据,不能mov啊,只有内存地址或寄存器才能啊,例如mov [1000],al这样就可以

汇编语言 中的 DS CS SS问题
CS,在汇编程序中称为代码段,在整个存储器中一般位于起始端的中端,以CS为中心,往前是数据段(DS),最前面是堆栈段(SS),这里的DS=X-1,是因为DSCS,SS在存储器中都只占有一个字节的位置。在某些情况下,DS=SS,。这是因为这些程序中可能不需要用到堆栈段。

汇编语言 程序运行后关于DS段寄存器的问题:
程序加载后,ds中存放着程序所在内存区的段地址,而cs中的是代码段的开头段地址,默认便宜地址都是为0 0b2d:0000到0b3d:0000这段空间是256字节,是PSP区,是用来让程序和dos进行通信的 另外最好不要在code segment中定义数据,不然会吧数据当成代码运行 可以另起一个data segment来定义数据 ...

汇编语言:为什么MOV DS,[2000H]语句不合法,而MOV DS,DS:[2000H]就合法...
编译软件,有错误。DS 是段寄存器,可以用存储器操作数来赋值,但是不可用立即数赋值。MOV DS, [2000H],按照教材上的规定,[2000H] 是存储器操作数。而:MOV DS, 2000H,中的 2000H 才是立即数。但是,编译软件,并不按照这个规则。在编译软件眼里,上面的两种形式,都是《立即数》。只有这种写...

请问汇编ds是什么意思
汇编ds指,程序使用的数据所存放段的最低地址,即存放数据段的段基值。汇编语言(assemblylanguage)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编...

已知(DS ) = 1234H, (SI ) = 124H,一道汇编语言题
新手,也是看书上学的 例1 假设:SI=1000H , DS=5000H, (51000H)=1234H执行指令 LEA BX , [SI]后,BX=1000H执行指令 MOV BX , [SI]后,BX=1234H 所以同理可以得到:第一步 LEA SI,[SI] 此时SI的值还是124H MOV AX,[SI] 此时AX的值是30ABH,SI=124H MOV [SI+22H], 1200H,...

ds是什么意思啊?
DS在汇编语言中的意思是数据段寄存器(Data Segment register),段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。段寄存器DS的作用 段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。

汇编语言div和dd指令问题
在 data segment 之下,DD 伪指令,就在第0字节~第3字节,存放了32位数 100001,低字节在前。当把 data 送到 DS 之后,DS:[0] ~ DS:[3],即为 100001。DS:[0] ~ DS:[1],即为 100001 的低 16 位数;DS:[2] ~ DS:[3],即为 100001 的高 16 位数。同理,还有两个 DW 伪指令...

汇编语言问题
mov ds,dx ——— ;这两句实现对段寄存器ds的赋值(前面assume只是声明)mov ah,0 ———;赋值寄存器ah为0 mov al,y+1 ———;把内存地址为y+1(从上面的定义看来,其实就是字符"4"所在的单元)的值赋给寄存器al sub al,05 ———;从寄存器al中减去5 aas ———;非压缩...

在汇编中 用debug模式调试程序的时候 ds和程序的开始地址
程序开始的地址是cs:ip的地址 ds是数据段,而0020h应该是cs的,估计是因为你程序中有数据,所以0010--0020这段是为ds分配的空间

相似回答