IBM-PC汇编语言程序设计实验报告 - 百度文库 ϵͷ

ʱ : IBM-PC汇编语言程序设计实验报告 - 百度文库ϿʼĶ

SUB BYTE PTR [SI+8],10 MOV DL,1

A9:ADD BYTE PTR [SI+9],DL A0:RET

ADD65536 ENDP

;********************** QUIT:MOV AH,4CH INT 21H CODES ENDS END START

ʵ ͳַ

1.ʵĿҪ

ʵĿġ

շ֧Ƶԭ뷽صոֳγɺжijεƷͼɡ

ʵҪ

շ֧ĵüӳıджϳе˳

2.ʵʵԭ

ûһַַַͷ࣬磺aaabb1234&Уĸ54ַ1

17 ҳ 21 ҳ

3.ʵʵּ

4.Դ

DATAS SEGMENT maxlen db 80 actlen db ?

String db 80 dup(?)

str1 db 'please input a String(<80) :$' str2 db 0ah,0dh,'Number of chars :$' str3 db 0ah,0dh,'Number of digits:$' str4 db 0ah,0dh,'Number of others:$'

Quit db 0ah,0dh,0ah,0dh,'Press any keys quit!$' char dw ? digit dw ? other dw ? DATAS ENDS CODES SEGMENT

ASSUME CS:CODES,DS:DATAS START:

PUSH DS xor AX,AX push Ax

MOV AX,DATAS MOV DS,AX

18 ҳ 21 ҳ

lea DX ,str1 mov AH ,9 int 21h

lea DX ,maxlen mov AH, 0aH int 21H

lea SI ,String mov char,0 mov digit,0 mov other,0 COMPARE:

mov AL, [SI] cmp al,0dh jz exit

CMP AL ,30H JC OTHER1 CMP AL ,3aH JC NUMBER CMP AL, 41H JC OTHER1 CMP AL , 5BH JC LETTER CMP AL , 61H JC OTHER1 CMP AL, 7BH JC LETTER OTHER1:

INC other JMP INCADDR NUMBER:

INC digit JMP INCADDR LETTER:

INC char INCADDR: INC SI

JMP COMPARE exit:

lea DX ,str3 mov AH ,9 int 21h mov SI,10

19 ҳ 21 ҳ

mov AX,digit call PrintNumber lea DX ,str2 mov AH ,9 int 21h

mov AX,char

call PrintNumber lea DX ,str4 mov AH ,9 int 21h

mov AX,other XOR DX ,DX

call PrintNumber lea DX ,Quit mov AH ,9 int 21h mov ah,1 int 21H

mov ax,4C00H int 21H

PrintNumber proc near XOR DX ,DX XOR SI,SI mov SI,10 div SI mov BX,DX cmp AX,0 JL next3 mov DX,AX ADD DX,30H mov ah, 2 int 21H next3:

mov DX,BX ADD DL,30H mov ah, 2 int 21H ret

PrintNumber endp

CODES ENDS END START

20 ҳ 21 ҳ