一个奇怪的汇编问题

ljn79121 2002-06-08 03:58:40
我的代码

data segment
BUF DB 03H,04H,01H,05H,0BH,06H,08H,09H,02H
;就是在这里替换
MYDATA2 DB 'SDF'
data ends

stack segment stack 'stack'
dw 32 dup(?)
stack ends

code segment
begin proc far
assume ss:stack,cs:code,ds:data
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
;我这里没有写任何代码
begin endp
code ends
end begin

编译之后运行,视正常的
但是,当我把BUF的声明去掉改为M1 DB 4H
data segment
M1 DB 4H
MYDATA2 DB 'SDF'
data ends
的时候,编译之后,运行跳出对话框来,显示
“ 命令提示符(2)-exam2
NTVDM CPU 遇到无效的指令。
CS:005E IP:02C6 OP:FE A3 60 23 89 选择“关闭”终止应用程序”

另外说明,我在begin proc far 过程中没有写相关于这些变量的代码,所以问题
应该视出在 data segment的数据声明段

谢谢大家指教
...全文
45 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckc 2002-06-09
  • 打赏
  • 举报
回复
你的程序没有结束,这样它会一直运行下去,出什么错误是不一定的。
应该加一个ret

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧