从键盘输入字符串,在屏幕上显示输入字符中ASCII最大的字符。应该是用DOS汇编语言写。微机原理的题。

从键盘输入字符串,在屏幕上显示输入字符中ASCII最大的字符Pleaseinputsomechars:0123456789012345Thebiggestcharis:9... 从键盘输入字符串,在屏幕上显示输入字符中ASCII最大的字符
Please input some chars: 0123456789012345
The biggest char is: 9
展开
 我来答
ad6673706
2013-04-22 · TA获得超过207个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:276万
展开全部
调试通过!

DATAS SEGMENT
d1 db 'Please input some chars: ','$' ;字符串1
d2 db 'The biggest char is: ','$' ;字符串2
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES
START:
MOV AX,DATAS ;初始化DS
MOV DS,AX

mov dx,offset d1 ;显示字符串1
mov ah,9
int 21h
mov bx,0 ;BX置0,下面用来存放AL的值
s1:
mov ah,7 ;键盘输入不回显,AL=输入数据
int 21h
cmp al,30h ;比较如果小于0重新输入,再检查是否是回车.
jb s2
cmp al,39h ;比较如果大于9重新输入
ja s3

mov dl,al ;如果是数字就显示
mov ah,2
int 21h

cmp al,bl ;与BL比较
jb s2
mov bl,al ;如果小于写入BL

jmp s3
s2:
cmp al,0dh ;回车结束输入
jz s4
s3:
jmp s1
s4:
mov dl,0dh ;显示回车
mov ah,2
int 21h

mov dl,0ah ;显示换行
int 21h

mov dx,offset d2 ;显示字符串2
mov ah,9
int 21h

mov dl,bl ;显示BL,也就是输入的最大值。
mov ah,2
int 21h

mov ah,0 ;等待输入
int 16h

MOV AH,4CH
INT 21H
CODES ENDS
END START
做而论道
高能答主

2013-04-23 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.2万
采纳率:86%
帮助的人:8822万
展开全部
下列程序已经可以正常工作。

ASSUME CS:CODE, DS:DATA
DATA SEGMENT
MSG1 DB 'Please input some chars: $'
MSG2 DB 13, 10, 'The biggest char is: <'
BIG DB ' ', '>$'
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
;------------------------------
MOV DX, OFFSET MSG1
MOV AH, 9
INT 21H
M_LOOP:
MOV AH, 1
INT 21H
CMP AL, 13
JE DISP
CMP AL, DS:[BIG]
JB M_LOOP
MOV DS:[BIG], AL
JMP M_LOOP
DISP:
MOV DX, OFFSET MSG2
MOV AH, 9
INT 21H
;------------------------------
MOV AH, 4CH
INT 21H
CODE ENDS
END START

本程序,不仅仅适用于输入数字符号。

任何的大小写英文、数字、以及其它符号,本程序都能正确处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式