Tricker135 发表于 2022-5-5 15:51:33

mov指令的限制

书中182页中有这么三行指令
mov ax,0123h
mov ds:,ax
mov word ptr ds:,0
第一二行指令能不能换成
mov ds:,0123h

wp231957 发表于 2022-5-5 21:18:50

段寄存器和立即数之间不能用mov转移

panda-zwy 发表于 2022-6-22 20:15:07

不能直接更改段寄存器中的数据,只能是数据->通用寄存器->段寄存器

BriMdsGalaMoon 发表于 2022-7-25 20:21:30

楼上两位看错了吧,那个不是传送给段寄存器,是传给内存单元,立即数传送给内存单元是被允许的,经过测试是可以的

阿狼啊 发表于 2022-11-26 14:36:05

是可以的

人造人 发表于 2022-11-26 16:57:59

阿狼啊 发表于 2022-11-26 14:36
是可以的

是吗?



人造人 发表于 2022-11-26 16:59:25

BriMdsGalaMoon 发表于 2022-7-25 20:21
楼上两位看错了吧,那个不是传送给段寄存器,是传给内存单元,立即数传送给内存单元是被允许的,经过测试是 ...

我也测试了,不可以

人造人 发表于 2022-11-26 17:06:16

从前的编译器不能立即数到内存

sh-5.1$ cat main.s
    .text
    .global _start
_start:
    movl    $0, 0
    retl
sh-5.1$ as --32 -o main.o main.s
sh-5.1$ objdump -S -M suffix main.o

main.o:   file format elf32-i386


Disassembly of section .text:

00000000 <_start>:
   0:        c7 05 00 00 00 00 00         movl   $0x0,0x0
   7:        00 00 00
   a:        c3                           retl
sh-5.1$ vim main.s
sh-5.1$ cat main.s
    .code16
    .text
    .global _start
_start:
    movw    $0, 0
    retw
sh-5.1$ as --32 -o main.o main.s
sh-5.1$ objdump -S -M suffix main.o

main.o:   file format elf32-i386


Disassembly of section .text:

00000000 <_start>:
   0:        c7 06 00 00 00 00            movl   $0x0,(%esi)
   6:        c3                           retl
sh-5.1$ objdump -S -M suffix -m i8086 main.o

main.o:   file format elf32-i386


Disassembly of section .text:

00000000 <_start>:
   0:        c7 06 00 00 00 00            movw   $0x0,0x0
   6:        c3                           retw
sh-5.1$

阿狼啊 发表于 2022-12-18 22:43:05

人造人 发表于 2022-11-26 17:06
从前的编译器不能立即数到内存

是的,我又试了一下,确实不行,是我疏忽了
页: [1]
查看完整版本: mov指令的限制