8086汇编编程
本程序为课设限时答辩时所写,可以达到要求但过程较为繁琐,如果有错误或疑问欢迎直接在评论中提出~
连续输入三个字母(不限大小写),将三个字母的ASCII码相加后将所得的结果以十六进制数的形式显示到屏幕上
data segment
BUFF DB 200
DB 0
DB 200DUP(0)
XLE0 DB 0
XLE1 DB 0
XLE2 DB 0
VAL1 DB 0
VAL2 DB 0
ENDD DB 'THE END$'
CF DB 0DH,0AH,'$'
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
LOP:CMP DI,3
INC DI
JNZ LOP1
JZ ENDING
LOP1:MOV AH,1
INT 21H
CMP AL,2CH
JNZ LETT
LETT:
CMP DI,1
JZ T1
CMP DI,2
JZ T2
CMP DI,3
JMP T3
T1: MOV XLE0,AL
JMP LOP
T2: MOV XLE1,AL
JMP LOP
T3: MOV XLE2,AL
LEA DX,CF
MOV AH,9
INT 21H
JMP PLUS
PLUS:MOV BX,0
ADD BL,XLE0
ADD BL,XLE1
ADD BL,XLE2
JC GAOWEI
JNC DIWEI
GAOWEI2:ADD BL,37H
JMP DIWEI2
GAOWEI3:ADD CL,37H
JMP DIWEI3
DIWEI:
MOV CL,BL
AND BL,0FH
CMP BL,09H
JA GAOWEI2
ADD BL,30H
DIWEI2:
AND CL,0F0H
SAR CL,4
AND CL,0FH
CMP CL,09H
JA GAOWEI3
ADD CL,30H
DIWEI3:
MOV AH,2
MOV DL,CL
INT 21H
MOV AH,2
MOV DL,BL
INT 21H
JMP ENDING
GAOWEI:MOV BH,31H
MOV AH,2 ;高8位,只有01H和00H两种情况
MOV DL,BH
INT 21H
JMP DIWEI
ENDING:LEA DX,CF
MOV AH,9
INT 21H
LEA DX,ENDD
MOV AH,9
INT 21H
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start