.386
STACK SEGMENT USE32
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT USE16
ANSTAB DW 0,1,8,27,64,125,216,343,512,729
ErrInputMsg DB 0AH,0DH,'Input Error!$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
;
MOV AH,1
INT 21H
SUB AL,'0';得到ANSTAB中的偏移地址
;看看AL是否介于0~9
CMP AL,0
JL ErrInput
CMP AL,9
JG ErrInput
;
MOV ECX,0
MOV CL,AL
MOV BX,ANSTAB[ECX*2];结果保存在BX
;显示结果
;
JMP EXIT
ErrInput:
LEA DX,ErrInputMsg
MOV AH,9
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
STACK SEGMENT USE32
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT USE16
ANSTAB DW 0,1,8,27,64,125,216,343,512,729
ErrInputMsg DB 0AH,0DH,'Input Error!$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
;
MOV AH,1
INT 21H
SUB AL,'0';得到ANSTAB中的偏移地址
;看看AL是否介于0~9
CMP AL,0
JL ErrInput
CMP AL,9
JG ErrInput
;
MOV ECX,0
MOV CL,AL
MOV BX,ANSTAB[ECX*2];结果保存在BX
;显示结果
;
JMP EXIT
ErrInput:
LEA DX,ErrInputMsg
MOV AH,9
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START