+ -
当前位置:首页 → 问答吧 → 汇编直接赋值

汇编直接赋值

时间:2011-01-29

来源:互联网

一小段汇编程序
 assume cs:code
 
 code segment
  mov ax,0ffffh
  mov ds,ax
   
  mov ax,0020h
  mov es,ax
   
  mov bx,0
  mov cx,12

  s:mov dl,[bx]
  mov es:[bx],dl
  inc bx
  loop s

  mov ax,4c00h
  int 21h
   

  code ends
  end


中间的一段:mov dl,[bx]
  mov es:[bx],dl
  能不能改写为:mov es:[bx],[bx]
  请解释一下原因!谢谢了!

作者: gchz1990   发布时间: 2011-01-29

应该是可以的
  你用DEBUG走一下

作者: znxllyuan   发布时间: 2011-01-29

引用楼主 gchz1990 的回复:
……
中间的一段:mov dl,[bx]
mov es:[bx],dl
能不能改写为:mov es:[bx],[bx]


不能,传送指令的2个操作数不能同时为存储器的寻址方式。

作者: shzhfu   发布时间: 2011-01-29

引用 2 楼 shzhfu 的回复:
引用楼主 gchz1990 的回复:
……
中间的一段:mov dl,[bx]
mov es:[bx],dl
能不能改写为:mov es:[bx],[bx]


不能,传送指令的2个操作数不能同时为存储器的寻址方式。

 哦对对对
 忘了这事了 
 都是存储单元的话指令太长了 指令队列放不下

作者: znxllyuan   发布时间: 2011-01-29