关于输入一个字,并读取1个数的问题

judge_p 2009-10-19 08:45:24
我的题目是记录某字内存单元中1的个数并用十进制输出!
我写了这个个程序
data segment
message db 0dh,0ah,'Press a word(Press ctrl+c to exit)!',0dh,0ah,'$'
mess db 0dh,0ah,'$'
count db '0'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax

mov count,'0'
mov dx,offset message
mov ah,9
int 21h

mov ah,1 ;输入
int 21h
mov bl,al
mov cx,8


lop:
mov bh,0
sal bx,1
cmp bh,1
jnz next
inc count
next:
loop lop


mov ah,1 ;输入
int 21h
mov bl,al
mov cx,8

mov dx,offset mess
mov ah,9
int 21h
lop1:
mov bh,0
sal bx,1
cmp count,':'
jnz next2
mov dl,'1'
mov ah,2
int 21h
sub count,10
next2:
cmp bh,1
jnz next1
inc count
next1:
loop lop1

mov ah,2
mov dl,count
int 21h

jmp start

; mov ah,1
; int 21h
; mov ah,4ch
; int 21h


code ends
end start


我估计应该是正确无误的了,但是当我按下delete键时就出现怪事了,只按了一个键就输出结果了(就一个空格然后一个S然后就是有4个1),请问这个是怎么回事??(还有如果我这个程序那里不好,希望给点意见,谢谢!!)
...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
judge_p 2009-10-21
  • 打赏
  • 举报
回复
自己顶一下,知道的回我个,谢谢!!急!!
judge_p 2009-10-19
  • 打赏
  • 举报
回复
可以的话希望告诉下我什么地方出了差错,谢谢!!如果不愿意的话我也就只能自己去琢磨了,呵呵,我下线了!!
judge_p 2009-10-19
  • 打赏
  • 举报
回复
不是啊,我指的是调试出来的东西,我看的不是很懂!有些很奇怪!
BAYNPU 2009-10-19
  • 打赏
  • 举报
回复
用DEBUG调试程序:DEBUG XX(文件名).EXE,这个没有难度.
judge_p 2009-10-19
  • 打赏
  • 举报
回复
。。。那个dubug我还不怎么会用,因为有点复杂,可不可以告诉我下怎么回事啊??
BAYNPU 2009-10-19
  • 打赏
  • 举报
回复
你在DEBUG追踪一下上面源代码就知道是怎么回事。
不光是按DELETE有问题,按其它键也有问题如:END、HOME、INSERT...。
judge_p 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 baynpu 的回复:]
摆脱,你答非所问!!那个jmp start是我故意加上去的,为了能够多次处理数据的....
当按下DELETE是不是出现下面的现象?
E:\ML615>b80
Press a word(Press ctrl+c to exit)!
S
4
Press a word(Press ctrl+c to exit)!
S
4
Press a word(Press ctrl+c to exit)!
[/Quote]

恩,就是这样,请问是怎么回事??
BAYNPU 2009-10-19
  • 打赏
  • 举报
回复
摆脱,你答非所问!!那个jmp start是我故意加上去的,为了能够多次处理数据的....
当按下DELETE是不是出现下面的现象?
E:\ML615>b80
Press a word(Press ctrl+c to exit)!
S
4
Press a word(Press ctrl+c to exit)!
S
4
Press a word(Press ctrl+c to exit)!
judge_p 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 baynpu 的回复:]
......
jmp A1

;    mov ah,1
;    int 21h
A1:  mov ah,4ch
    int 21h
code ends
end start
[/Quote]

摆脱,你答非所问!!那个jmp start是我故意加上去的,为了能够多次处理数据的....
BAYNPU 2009-10-19
  • 打赏
  • 举报
回复
......
jmp A1

; mov ah,1
; int 21h
A1: mov ah,4ch
int 21h
code ends
end start

21,458

社区成员

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

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