简单问题,使用lodsb怎么不对

Gao2003 2005-08-06 03:53:09
data segment
mystr db 'abcdefghij'
mystr2 db 11 dup(?)
data ends
stack segment stack
db 100 dup(?)
stack ends
code segment
assume cs:code
assume ds:data
start: mov cx,0
lea si,mystr
mov ah,2h
cld
print: lodsb
mov dl,al
int 21h
inc cx
cmp cx,10
jnz print

mov ah,4ch
int 21h
code ends
end start
本来想打印字符,可结果不对,本人是初学者,别见笑。
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
VxD1 2005-08-08
  • 打赏
  • 举报
回复
一般串操作指令都要设置es和ds
Cybergate 2005-08-07
  • 打赏
  • 举报
回复
es:di是在stosb时用的,不stosb就不要设置es。

cs不需要设置,也不能用一般的方法设置。
Gao2003 2005-08-06
  • 打赏
  • 举报
回复
谢谢zara(Kyrie eleison),再问一下还有那些寄存器要设置,cs,es要吗?谢谢
zara 2005-08-06
  • 打赏
  • 举报
回复
程序没有设置正确的 DS. 应该在 start: 语句之后加上:
mov ax, data
mov ds, ax
Gao2003 2005-08-06
  • 打赏
  • 举报
回复
这是X86的16位用masm5编译运行结果不对

21,497

社区成员

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

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