关于字符串显示的问题,百思不得其解,请大家指点

STitanium 2006-08-26 03:08:25
.386
data segment
abc db 49
data ends
code segment
assume ds:data,cs:code
main:
mov ax,data
mov ds,ax
mov ah,2h
lea bx,abc
mov dl,[bx]
int 21h
mov ah,4ch
int 21h
code ends
end main

我想显示'1'字符,但程序能运行但显示不了'1',但去掉".386"之后就可以了,加上去又不行,请问是什么问题,如何解决?
...全文
155 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Areslee 2006-08-28
  • 打赏
  • 举报
回复
因为加了。386之后编译器会认为你的代码是32位代码,32为代码在DOS下不能运行,需要告诉编译器生成16位代码
STitanium 2006-08-27
  • 打赏
  • 举报
回复
very Thanks!但为什么加了".model small"后就解决了问题呢?
hswxf 2006-08-26
  • 打赏
  • 举报
回复
.model small ;简化段伪操作,在64K大小内
.386
.data
abc db 49
.code
main:
mov ax,@data
mov ds,ax
mov ah,2h
lea bx,abc
mov dl,[bx]
int 21h
mov ah,4ch
int 21h
end main
yaoyisky 2006-08-26
  • 打赏
  • 举报
回复
通常.386表示程序用到386的指令,如果程序中不含有386以后的指令,最好不要用

21,458

社区成员

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

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