用汇编语言编写程序:从键盘输入一串(不超过51个)以逗号分隔符的不带符号的十进制数(1~4位),在显示器
用汇编语言编写程序:从键盘输入一串(不超过51个)以逗号分隔符的不带符号的十进制数(1~4位),在显示器显示输入个数和最大值。
例如:输入:23,105,8888,1234 输出:COUNT=4 MAX=8888
拜托 谢谢啦!!
答案:;80x86汇编程序设计,已测试
.386
RW MACRO A,B
LEA DX, A
MOV AH, B
INT 21H
ENDM
DATA SEGMENT USE16
BUF1 DB 200
DB ?
DB 200 DUP(?)
BUF2 DW 50 DUP(?)
MAX DW ?
COUNT DW ?
STR1 DB 'Please input numbers:',0DH,0AH,'$'
STR2 DB 'COUNT=$'
STR3 DB 'MAX=$'
STR4 DB 0DH,0AH,'$'
DATA ENDS
STACK SEGMENT USE16 STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA, SS:STACK
START:
MOV AX, DATA
MOV DS, AX
RW STR1, 9
RW BUF1, 10
RW STR4, 9
CALL ZF_SZ
CALL MAXNUM
SHR DI, 1
MOV COUNT,DI
RW STR2, 9
MOV AX, COUNT
CALL SHUCHU
MOV DL, ' '
MOV AH, 2
INT 21H
RW STR3, 9
MOV AX, MAX
CALL SHUCHU
MOV AH, 4CH
INT 21H
ZF_SZ PROC
XOR AX, AX
XOR CX, CX
XOR DX, DX
XOR DI, DI
MOV SI, 2
MOV CL, BUF1[1]
MOV BX, 10
LOOP1: CMP BUF1[SI],','
JE JMP1
MUL BX
PUSH BX
MOV BL, BUF1[SI]
SUB BL, 30H
ADD AX, BX
POP BX
INC SI
LOOP LOOP1
JMP JMP5
JMP1: MOV BUF2[DI],AX
XOR AX, AX
ADD DI, 2
INC SI
LOOP LOOP1
JMP5: MOV BUF2[DI],AX
ADD DI, 2
RET
ZF_SZ ENDP
MAXNUM PROC
PUSHA
MOV CX, DI
XOR BX, BX
MOV AX, BUF2[BX]
ML: CMP AX, BUF2[BX]
JGE MJ
XCHG BUF2[BX], AX
MJ: ADD BX, 2
DEC CX
LOOP ML
MOV MAX, AX
POPA
RET
MAXNUM ENDP
SHUCHU PROC ;数值数据到串的转换并输出
PUSH BX
PUSH CX
MOV BX, 10 ;确定需要转换的进制
XOR CX, CX
XOR DX, DX
SC1: INC CX
DIV BX
PUSH DX
XOR DX, DX
CMP AX, 0
JNE SC1
SC2: POP DX
CMP DX, 10
JL J1
ADD DX, 7
J1: ADD DL, 30H
MOV AH, 2
INT 21H
LOOP SC2
POP CX
POP BX
RET
SHUCHU ENDP
CODE ENDS
END START
其他:额..我还想叫你帮我呢
上一个:汇编语言的loop指令
下一个:帮我检查个200行的简单汇编程序哪语意错了,解决100分