鱼C论坛

 找回密码
 立即注册
查看: 5847|回复: 2

从键盘输入一系列以$为结束符的字符串,其中非数字字符计数,并显示出计数结果

[复制链接]
发表于 2012-4-17 20:12:27 | 显示全部楼层 |阅读模式
1鱼币
这是IBM-pc汇编语言程序设计上的第5章第11题,我的程序错在那里啊?请各位高手给个指点哈..先谢了!!!


;从键盘输入一系列以$为结束符的字符串,
;然后对其中非数字字符计数,
;并显示出计数结果。
assume cs:code,ds:data
data segment
db 100 dup(0)
data ends
code segment
start:
mov ax,data
mov ds,ax
sub bx,bx
sub dx,dx

mov ax,07h  ;调用7号功能
int 21h
mov ds:[bx],al
cmp al,'$'
je s
inc bx
cmp al,'0'
jl s1
cmp al,'9'
jg s1
jmp near ptr start
s1:
inc dx  ;用dx记录符合要求的数
ret

s:
add dl,30h
mov ax,2h
int 21h
mov ah,4ch
int 21h
code ends
end start

最佳答案

查看完整内容

部分代码: 当你输入的字符数大于10个时,你要进行转换,如25 分别显示十位,个位 data segment STR db 100 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax sub bx,bx sub dl,dl again: mov ah,01h ;调用1号功能 int 21h mov ds:,al cmp al,'$' je s inc bx cmp al,'0' jl s1 cmp al,'9' jg s1 jmp again s1: inc dl ;用dx记录符合要求的数 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-17 20:12:28 | 显示全部楼层
部分代码:
当你输入的字符数大于10个时,你要进行转换,如25
分别显示十位,个位
data segment
STR db 100 dup(0)
data ends
code segment
assume cs:code,ds:data
start:
        mov ax,data
        mov ds,ax
        sub bx,bx
        sub dl,dl

again:        mov ah,01h  ;调用1号功能
        int 21h
        mov ds:[bx],al
        cmp al,'$'
        je s
        inc bx
        cmp al,'0'
        jl s1
        cmp al,'9'
        jg s1
        jmp again
s1:
        inc dl  ;用dx记录符合要求的数
        jmp again
s:
        add dl,30h
        mov ah,2h
        int 21h
        mov ah,4ch
        int 21h
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-10 21:29:39 | 显示全部楼层
虽然不能回答你的问题  但是沙发是我的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表