debug中输入以下代码
mov bx, 1000( H)
mov ds, bx
mov [0], al
ds到底是做什么用的?不是用于存放程序使用中的数据的地址的吗?可是为什么第三行的代码可以修改1000H中的内容呢??求高手解答!
mov 1000, al
这种方式为什么不可以??
汇编语言:为什么MOV DS,[2000H]语句不合法,而MOV DS,DS:[2000H]就合法...
编译软件,有错误。DS 是段寄存器,可以用存储器操作数来赋值,但是不可用立即数赋值。MOV DS, [2000H],按照教材上的规定,[2000H] 是存储器操作数。而:MOV DS, 2000H,中的 2000H 才是立即数。但是,编译软件,并不按照这个规则。在编译软件眼里,上面的两种形式,都是《立即数》。只有这种写...
汇编语言 中的 DS CS SS问题
CS,在汇编程序中称为代码段,在整个存储器中一般位于起始端的中端,以CS为中心,往前是数据段(DS),最前面是堆栈段(SS),这里的DS=X-1,是因为DSCS,SS在存储器中都只占有一个字节的位置。在某些情况下,DS=SS,。这是因为这些程序中可能不需要用到堆栈段。
汇编语言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 伪指令...
汇编语言 程序运行后关于DS段寄存器的问题:
程序加载后,ds中存放着程序所在内存区的段地址,而cs中的是代码段的开头段地址,默认便宜地址都是为0 0b2d:0000到0b3d:0000这段空间是256字节,是PSP区,是用来让程序和dos进行通信的 另外最好不要在code segment中定义数据,不然会吧数据当成代码运行 可以另起一个data segment来定义数据 ...
想问汇编ds是什么意思
汇编ds指,程序使用的数据所存放段的最低地址,即存放数据段的段基值。汇编语言(assemblylanguage)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编...
汇编语言试题(求大神啊,万分感谢)
(DS:DX+1)=实际输入的字符数 该语句就是将BUFFER+1填入CX,CL=1,CH=0,实际上是读入了实际输入字符数,用于后续的字符处理循环计数,即LOOP指令。问题3中的下一句MOV CH,0用于强制对CH清零,原因如前所述,需要自行初始化。另一个替代方案是MOV CX, BUFFER+1,这样会自动对CH清零,而且适用于...
ds是什么意思啊?
DS在汇编语言中的意思是数据段寄存器(Data Segment register),段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。段寄存器DS的作用 段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。
已知(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,...
汇编语言问题
mov ds,dx ——— ;这两句实现对段寄存器ds的赋值(前面assume只是声明)mov ah,0 ———;赋值寄存器ah为0 mov al,y+1 ———;把内存地址为y+1(从上面的定义看来,其实就是字符"4"所在的单元)的值赋给寄存器al sub al,05 ———;从寄存器al中减去5 aas ———;非压缩...
关于汇编LDS
将DS:OPRD指向的字的值赋值到REG,DS:OPRD+2指向的字的值赋值给DS 是将内存中的两个字型数据赋值给段寄存器和一个用于寻址的寄存器 你现在学的16位上的东西到了32位上基本全都能用上,如果你学了32位汇编的话