AH9号命令显示不正确

Jlion_Chen 2008-04-27 01:30:33
一下代码是实现找出十个数中间的最小数,并显示在屏幕上,不知道为什么显示的是乱码,请好心人帮忙看看。
谢谢!
;FILENAME: 3.ASM
.486
DATA SEGMENT USE16
BUF DB -12,9,-2,8,0,1,3,-8,-89,-23
TMP DB 'MIN=',0,'B','$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BUG:
MOV AX,DATA
MOV DS,AX
MOV CX,10
MOV BX,OFFSET BUF
MOV DH,0
BEGIN:
MOV AL,[BX]
CMP AL,0
JL MIN
JMP NEXT
MIN:
CMP DH,AL
JG CHANGE
JLE NEXT
CHANGE:
MOV DH,AL
NEXT: INC BX
LOOP BEGIN
MOV BX,OFFSET BUF
MOV BYTE PTR[BX+14],DH
ADD BYTE PTR[BX+14],30H
MOV AH,9
MOV DX,OFFSET TMP
INT 21H ;返回DOS
MOV AH,4CH
INT 21H
CODE ENDS
END BUG
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
不明LZ在说什么
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
没遇到过这种情况.
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
接分先!
cnzdgs 2008-04-27
  • 打赏
  • 举报
回复
另外,你直接把结果加30H输出也不行啊。如果是0~9之间的值才可以这样输出。
cnzdgs 2008-04-27
  • 打赏
  • 举报
回复
TMP DB 'MIN=',0,B','$',0最后需要一个0。
cnzdgs 2008-04-27
  • 打赏
  • 举报
回复
BX+14改成TMP[4]。
BAYNPU 2008-04-27
  • 打赏
  • 举报
回复
.486
DATA SEGMENT USE16
BUF DB -12,9,-2,8,0,1,3,-8,-89,-23
TMP DB 'MIN=,0,B','$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BUG:
MOV AX,DATA
MOV DS,AX
MOV CX,10
MOV BX,OFFSET BUF
MOV DH,0
BEGIN:
MOV AL,[BX]
CMP AL,0
JL MIN
JMP NEXT
MIN:
CMP DH,AL
JG CHANGE
JLE NEXT
CHANGE:
MOV DH,AL
NEXT: INC BX
LOOP BEGIN
MOV BYTE PTR[BX+14],DH
ADD BYTE PTR[BX+14],30H
mov dx,offset tmp
MOV AH,9
INT 21H ;返回DOS
MOV AH,4CH
INT 21H
CODE ENDS
END BUG

21,496

社区成员

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

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