关于mov ax,[bx] 和mov al,[bx]的一些疑惑。
本帖最后由 loop 于 2011-5-29 23:30 编辑在寄存器中放入某单元地址的值时,假设段地址为ds = ffff;bx = 00;那么mov ax,是将ffff:0中的值放在ax的高位或者低位还是将ffff:0中和ffff:0001中的值一起放到ax中?mov al,这语句又是怎么回事?{:5_94:} 相当于传送ffff:0和ffff:1两个字节,高字节放在高位地址,低字节放在低位地址,mov al,,只是传送一个字节,因为al是一个字节!就是传送ffff:0 这是看你寄存器的格式的。如果是bx,则以字的形式传送;如果是bl(或bh),则以字节的形式传送。
当语句中没有出现常用寄存器时,如mov ds:, 0h,这样写就是错的,必须要加上传送的形式:mov word ptr ds:, 0h, 或者mov byte ptr ds:, 0h.
还有一种情况是特殊的,就是进出栈的时候,无需注明传送类型,默认为字传送。push ax; push ds:这些都是默认以字的形式push入栈。 回复 fishz 的帖子
额,好复杂啊。。。。基本是知道了,谢了{:5_92:} 回复 weixianlang 的帖子
嗯,谢谢了。。。。
页:
[1]