当前位置: 代码迷 >> 汇编语言 >> 菜鸟疑问:用汇编显示 ' I LOVE YOU CHINA' 字符!用了中断显示,为什么可以通过编译,但是运行出错
  详细解决方案

菜鸟疑问:用汇编显示 ' I LOVE YOU CHINA' 字符!用了中断显示,为什么可以通过编译,但是运行出错

热度:4908   发布时间:2013-02-26 00:00:00.0
初学者疑问:用汇编显示 ' I LOVE YOU CHINA' 字符!用了中断显示,为什么可以通过编译,但是运行出错。
datasg segment
 message1 db 'I LOVE YOU CHINA.'
datasg ends
program segment
main proc far 
 assume cs:program,ds:datasg
start:
 mov ch,11
 mov si,0
showChar:
 mov al,ds:[si]
 mov  dl,al
 mov ah,2
 int 21h
 inc si
 dec ch
 jnz showChar
 ret 
main endp
program ends
end

------解决方案--------------------------------------------------------
最后的 end 语句加上 start 成 end start 以指定程序是从 start: 处开始执行;否则会将前面的数据当代码执行了,后果难料。
------解决方案--------------------------------------------------------
程序没有设置 ds 指向 datasg 段吧,所以 mov al,ds:[si] 没有访问到正确的、自己需要的内容。
  相关解决方案