一个菜鸟问题,请各位大侠指点。(这程序我都快晕了!!!)

zzyspeak 2001-05-20 09:57:00
我写了如下代码:
;****************************************************************
data segment
sentence db 'array$'
data ends
;*******************************************************************
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset sentence
int 21h
mov ah,4ch
int 21h
code ends
end
masm汇编通过,可一执行就出错,程序跳到其它的系统区,请问这是为何?
...全文
71 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowingedge 2001-05-21
  • 打赏
  • 举报
回复
你没有设置启动点。
jink 2001-05-21
  • 打赏
  • 举报
回复
同意cui(蚊子王) 
蚊子王 2001-05-21
  • 打赏
  • 举报
回复
兄弟,你的程序入口在那里?
改成下面看看
;****************************************************************
data segment
sentence db 'array$'
data ends
;*******************************************************************
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,offset sentence
int 21h
mov ah,4ch
int 21h
code ends
end start
蚊子王 2001-05-21
  • 打赏
  • 举报
回复
“不加启动点一样可以执行”:
你大概是用MASM吧,如果是TASM连接这关都过不了。
“启动点到底有什么用”:
它是程序刚开始是的ip值,换句话说就是程序从哪里开始执行
snowingedge 2001-05-21
  • 打赏
  • 举报
回复
启动点用来设置ip
zzyspeak 2001-05-21
  • 打赏
  • 举报
回复
首先谢谢楼上几位兄台。不过在小弟送分之前,小弟还有一事未明。
加上start 是成功了。可是把字符串array$改为十六进制码,不加启动点一样可以执行,这是为何?还有启动点到底有什么用?
chentw 2001-05-20
  • 打赏
  • 举报
回复
在code segment后面加上
main proc far

最后加上main endp
chentw 2001-05-20
  • 打赏
  • 举报
回复
在code segment后面加上
main proc far

最后加上main endp

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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