兄弟们救我!谁还记得汇编?!(100分)

5

5415

Unregistered / Unconfirmed
GUEST, unregistred user!
题目:
键盘输入一行字符。
若为小写字母,存入缓冲区 SMLCHR 中;
若为大写字母,存入 BIGCHR;
若为数字,存入 DIGIT。
同时统计小写字母,大写字母和数子的个数在屏幕上显示。
当输入回车时,程序结束。
要求:
1.写出源程序和画出程序流程图,并简要说明设计思路
提示:
缓冲区SMLCHR 和 BIGCHR 和 DIGIT 的数据段定义,20个字节
键盘输入用DOS 系统功能调用 1 ,输入的字符都是 ASCII 码,大写字母符的 ASCII 码范围是41H~5AH(或写成 ’A‘~‘Z’);小写字母符的ASCII 码范围是61H~7AH(或写成 ‘a’~‘z’),数子0~9 的ASCII码是 30H~39H (或写成 ‘0’~‘9’)。
帮别人问的,谢谢大家帮忙!谢谢!
 
CSEG SEGMENT
ASSUME CS:CSEG,DS:CSEG,ES:CSEG
ORG 100H
Start:
PUSH CS
POP DS
MOV WORD PTR SINDEX,OFFSET SMLCHR
MOV WORD PTR BINDEX,OFFSET BIGCHR
MOV WORD PTR DINDEX,OFFSET DIGIT

begin
:
MOV AH,1
INT 21H
CMP AL,0DH
JE @Exit
CMP AL,30H
JL begin
CMP AL,39H
JG @1
MOV BX,WORD PTR DINDEX
MOV DS:[BX],AL
INC WORD PTR DINDEX
JMP begin
@1:
CMP AL,41H
JL begin
CMP AL,5AH
JG @2
MOV BX,WORD PTR BINDEX
MOV DS:[BX],AL
INC WORD PTR BINDEX
JMP begin
@2:
CMP AL,61H
JL begin
CMP AL,7AH
JG begin
MOV BX,WORD PTR SINDEX
MOV DS:[BX],AL
INC WORD PTR SINDEX
JMP begin
@Exit:
;
;自己写输出
;
;


MOV AH,4CH
INT 21H
SMLCHR DB 20 DUP(0)
BIGCHR DB 20 DUP(0)
DIGIT DB 20 DUP(0)
SINDEX DW 0
BINDEX DW 0
DINDEX DW 0
SMSG DB 'SML:'
BMSG DB 'BIG:'
DMSG DB 'DIG:'
CR DB 0DH,0AH,'$'
CSEG ENDS
END START
 
接受答案了.
 
顶部