汇编程序中出现link好的程序exe无法运行的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/24 23:34:17
;PROGRAM TITLE GOES HERE-ex_movs
;***************************************************
data segment ;define data segment
source_buffer db 40 dup('a')
data ends
;***************************************************
extra segment ;define extra segment
dest_buffer db 40 dup(?)
extra ends
;***************************************************
code segment ;define code segment
;---------------------------------------------------
main proc far
assume cs:code,ds:data,es:extra
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
lea si,source_buffer
lea di,dest_buffer
cld
mov cx,40
rep movsb
ret
main endp
code ends
end start

输入c:>ex_movs.exe
结果得到--->NTVDM cpu 遇到无效的指令
CS:0DE5 IP:0028 OP:FF FF FF FF FF AO 选择关闭终止应用程序

如果能运行的话
怎么看到运行的结果?
请高手指教~

我没试过你的程序,不过很有可能是你的es也没有赋值,需要像ds那样赋值。
这样写无法看到结果,可以考虑打印输出你想看得地址的值,不难写。还有一种方法就是用debug模式看,命令行下面输入debug <filename>就行了,具体命令和用法可以参考help。