主题:求解汇编~~~
以下两段汇编是什么意思?请各位大哥帮帮小弟~~~
DATAS SEGMENT
DAT1 DB ?
DAT2 DB ?
DAT3 DB ?
DAT4 DB ?
BUF DB 0DH,0AH,'IS A ALPHA! $'
BUF1 DB 0DH,0AH,'IS A DIGITAL! $'
BUF2 DB 0DH,0AH,'OTHER! $'
DATAS ENDS
STACKS SEGMENT STACK
DB 200 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,01H
INT 21H
LEA BX,DAT1
MOV [BX],AL
CMP AL,61H
JB NEXT1
CMP AL,7AH
JA NEXT1
SUB AL,20H
LEA BX,DAT2
MOV [BX],AL
LEA DX,BUF
MOV AH,9
INT 21H
JMP EXIT
NEXT1:CMP AL,30H
JNB NEXT2
CMP AL,39H
JNA NEXT2
LEA BX,DAT4
MOV [BX],AL
LEA DX,BUF2
MOV AH,9
INT 21H
JMP EXIT
NEXT2:LEA BX,DAT3
MOV [BX],AL
LEA DX,BUF1
MOV DX,9
INT 21H
JMP EXIT
EXIT: MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
TABLE DB 0H,1H,4H,9H,16H,25H,36H,49H,64H,81H
RESULT DB ?
BUF DB 0AH,0DH,'square='
BUF1 DB 4 dup(?)
DATAS ENDS
STACKS SEGMENT STACK
DB 200 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,01H
INT 21H
SUB AL,30H
LEA DI,TABLE
MOV AH,0
ADD DI,AX
MOV AL,[DI]
LEA BX,RESULT
MOV [BX],AL
LEA DI,BUF1
MOV AL,RESULT
MOV CL,4
SHR AL,CL
OR AL,30H
MOV [DI],AL
INC DI
MOV AL,RESULT
AND AL,0FH
OR AL,30H
MOV [DI],AL
INC DI
MOV BYTE PTR [DI],'$'
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
DAT1 DB ?
DAT2 DB ?
DAT3 DB ?
DAT4 DB ?
BUF DB 0DH,0AH,'IS A ALPHA! $'
BUF1 DB 0DH,0AH,'IS A DIGITAL! $'
BUF2 DB 0DH,0AH,'OTHER! $'
DATAS ENDS
STACKS SEGMENT STACK
DB 200 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,01H
INT 21H
LEA BX,DAT1
MOV [BX],AL
CMP AL,61H
JB NEXT1
CMP AL,7AH
JA NEXT1
SUB AL,20H
LEA BX,DAT2
MOV [BX],AL
LEA DX,BUF
MOV AH,9
INT 21H
JMP EXIT
NEXT1:CMP AL,30H
JNB NEXT2
CMP AL,39H
JNA NEXT2
LEA BX,DAT4
MOV [BX],AL
LEA DX,BUF2
MOV AH,9
INT 21H
JMP EXIT
NEXT2:LEA BX,DAT3
MOV [BX],AL
LEA DX,BUF1
MOV DX,9
INT 21H
JMP EXIT
EXIT: MOV AH,4CH
INT 21H
CODES ENDS
END START
DATAS SEGMENT
TABLE DB 0H,1H,4H,9H,16H,25H,36H,49H,64H,81H
RESULT DB ?
BUF DB 0AH,0DH,'square='
BUF1 DB 4 dup(?)
DATAS ENDS
STACKS SEGMENT STACK
DB 200 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,01H
INT 21H
SUB AL,30H
LEA DI,TABLE
MOV AH,0
ADD DI,AX
MOV AL,[DI]
LEA BX,RESULT
MOV [BX],AL
LEA DI,BUF1
MOV AL,RESULT
MOV CL,4
SHR AL,CL
OR AL,30H
MOV [DI],AL
INC DI
MOV AL,RESULT
AND AL,0FH
OR AL,30H
MOV [DI],AL
INC DI
MOV BYTE PTR [DI],'$'
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START