鱼C论坛

 找回密码
 立即注册
查看: 1362|回复: 8

mov指令的限制

[复制链接]
发表于 2022-5-5 15:51:33 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
书中182页中有这么三行指令
mov ax,0123h
mov ds:[0],ax
mov word ptr ds:[2],0
第一二行指令能不能换成
mov ds:[0],0123h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-5 21:18:50 From FishC Mobile | 显示全部楼层
段寄存器和立即数之间不能用mov转移
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-22 20:15:07 | 显示全部楼层
不能直接更改段寄存器中的数据,只能是数据->通用寄存器->段寄存器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-25 20:21:30 | 显示全部楼层
楼上两位看错了吧,那个不是传送给段寄存器,是传给内存单元,立即数传送给内存单元是被允许的,经过测试是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 14:36:05 | 显示全部楼层
是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 16:57:59 | 显示全部楼层

是吗?

1.png
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我也测试了,不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 17:06:16 | 显示全部楼层
从前的编译器不能立即数到内存

  1. sh-5.1$ cat main.s
  2.     .text
  3.     .global _start
  4. _start:
  5.     movl    $0, 0
  6.     retl
  7. sh-5.1$ as --32 -o main.o main.s
  8. sh-5.1$ objdump -S -M suffix main.o

  9. main.o:     file format elf32-i386


  10. Disassembly of section .text:

  11. 00000000 <_start>:
  12.    0:        c7 05 00 00 00 00 00         movl   $0x0,0x0
  13.    7:        00 00 00
  14.    a:        c3                           retl
  15. sh-5.1$ vim main.s
  16. sh-5.1$ cat main.s
  17.     .code16
  18.     .text
  19.     .global _start
  20. _start:
  21.     movw    $0, 0
  22.     retw
  23. sh-5.1$ as --32 -o main.o main.s
  24. sh-5.1$ objdump -S -M suffix main.o

  25. main.o:     file format elf32-i386


  26. Disassembly of section .text:

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

  31. main.o:     file format elf32-i386


  32. Disassembly of section .text:

  33. 00000000 <_start>:
  34.    0:        c7 06 00 00 00 00            movw   $0x0,0x0
  35.    6:        c3                           retw
  36. sh-5.1$
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-18 22:43:05 | 显示全部楼层
人造人 发表于 2022-11-26 17:06
从前的编译器不能立即数到内存

是的,我又试了一下,确实不行,是我疏忽了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 10:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表