初学,mtvdm cpu遇到无效指令,选择关闭终止应用程序???
刚从 ibm pc汇编设计书
上打下段代码
编辑连接都没错
但在执行时却说
mtvdm cpu遇到无效指令,选择关闭终止应用程序
大家帮看看,
还有
能给初学者写建议么?
环境,
masm5。o xp
刚开始以为是cpu问题,可从amd的到celeron的都是这个错误
问题点数:50、回复次数:5Top
1 楼mydo(侯佩|hopy|ks)回复于 2005-11-18 10:50:34 得分 50
估计是没有写退出代码,造成指令指针指向了数据段造成的,you can
do this:
mov ah,4ch
int 21h
or
push ds
xor ax,ax
push ax
retfTop
2 楼awperpvip(挖靠我狂晕来CSDN这么久,竟不知道原来名字可以这么长)回复于 2005-11-19 15:50:48 得分 0
我也遇到了,markTop
3 楼poboy(笑笑生)回复于 2005-11-19 18:33:36 得分 0
我的源文件是
dseg segment
user_string db 50 ,0 ,50 dup(?)
dseg ends
cseg segment
assume cs:cseg ,ds :dseg
read_keys proc near
push ds
sub ax ,ax
push ax
mov ax ,dseg
mov ds ,ax
lea dx ,user_string
mov ax ,0ah
int 21h
sub ch ,ch
mov cl ,user_string +1
add dx ,2
ret
read_keys endp
cseg ends
end
按照楼上提示,
把 ret改为
mov ah,4ch
int 21h
还是报童一个错误
高手指点哪 ?
顶
Top
4 楼mydo(侯佩|hopy|ks)回复于 2005-11-19 21:51:10 得分 0
dseg segment
user_string db 50 ,0 ,50 dup(?)
dseg ends
cseg segment
assume cs:cseg ,ds :dseg
read_keys proc near
mov ax ,dseg
mov ds ,ax
lea dx ,user_string
mov ah ,0ah
int 21h
sub ch ,ch
mov cl ,user_string +1
add dx ,2
mov ah,4ch
int 21h
read_keys endp
cseg ends
end read_keys
mov ah,0ah ! no mov ax, 0ahTop
5 楼poboy(笑笑生)回复于 2005-11-20 10:25:28 得分 0
谢谢 高手 ,的确 如此 ,
书上的全tmd错的 ,服料!
Top




