ds:[esi]这里的意思是 ds 表示是数据段 esi就是寄存器的值 [esi]表示是地址的值,其实你可以把esi看成是指针。。(说多了)这个话的意思是数据段里地址是esi的地址里面的内容 byte ptr 这个是个伪指令 ,你刚才取的值是字(word)类型的 这个指令的 作用是把这个字取他的高位变成字节 (byte)...
BYTE PTR 表示[DI]处一个字节,指明了指令访问的内存单元是一个字节单元,也就是8位,也就是最大的数为 0FFH,化成10进制数为256。指令访问的是内存,是因为加方括号的都是存储器寻址,方括号里的DI是变址寄存器,整个代表以DI里的内容作为偏移地址,然后以(DS)*16+(DI)得到的值作为在存储器...
在这里,你是要加AL寄存器中的内容加到内存存储单元中去,但计算机不知道要用多大的空间来存储它,所以要加上 byte ptr ,明确告诉计算机我们要用一个字节的空间来存放它![eax]就是把eax中存放的数据作为一个偏移地址EA 综合起来说,楼上的回答是正确的!!
1、如果你用的是16位汇编器的话,它是不支持EDI这个寄存器的,这时只能使用16位寄存器如DI等 2、如果你是在DEBUG环境中使用,除了第一条外,DEBUG还不支持段前缀的这种用法,此时应改为 ds:ADD BYTE PTR [DI],AL
将偏移地址是4000h位置对应的单字节数据传送到al中。
百度试题 结果1 题目汇编CMP BYTE PTR DS:[45B045],0是什么意思 相关知识点: 试题来源: 解析 展开全部 比较内存地址中45B045处存放的值是否为0 反馈 收藏
例如,下面的指令中,用word ptr指明了指令访问的内存单元是一个字单元。mov word ptr ds: [0],1inc word ptr [bx]inc word ptr ds: [o]add word ptr [bx],2下面的指令中,用byte ptr指明了指令访问的内存单元是一个字节单元。mov byte ptr ds: [0],1inc byte ptr [bx]inc byte ptr ds: [o]ad...
例如,下面的指令中,用word ptr指明了指令访问的内存单元是一个字单元。 mov word ptr ds: [0],1 inc word ptr [bx] inc word ptr ds: [o] add word ptr [bx],2 下面的指令中,用byte ptr指明了指令访问的内存单元是一个字节单元。 mov byte ptr ds: [0],1 ...
es:[di], ds:[si],都是存储器操作数,8086指令规定不允许两个操作数都是存储器操作数,所以错了
还是al 等 (2)在没有寄存器的名称存在的时候,用操作符 x prt指明内存单元的长度, x 在汇编指令中可以是word(字)或者byte(字节)。如:movwordptrds:[0],1incwordptr[bx]movbyteptrds:[0],1incbyteptr[bx]等 (3)其他方法 有些指令默认访问的是字单元还是字节单元,比如push ...