?? 8-13.asm
字號:
;把兩位十六進制數轉化為八進制數
DATA SEGMENT
HEX DB 3H,0, 3H DUP(0)
OCT DB 4 DUP(0)
STRING DB 'PLEASE ENTER DOUBLE_DIGIT HEX:','$'
STRING1 DB 0AH,0DH,'THE OCT NUMBER IS:','$'
STRING2 DB 0AH,0DH,'THE NUMBER YOU DIAL IS INCORROCT!!!!',0AH,0DH,'PLEASE ENTER CORRECT NUMBER:','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
LOP: MOV DX,SEG HEX
MOV DS,DX
MOV DX,OFFSET HEX
MOV AH,0AH
INT 21H
MOV BL,HEX[2]
CALL HEX1
JC LOP
AND BL,0FH
MOV AL,10H
MUL BL
MOV BL,HEX[3]
CALL HEX1
JC LOP
AND BL,0FH
ADD AL,BL
XOR AH,AH
MOV CL,06H
PUSH AX
PUSH AX
SAR AX,CL
MOV OCT,AL
ADD OCT,30H
POP AX
AND AL,38H
MOV CL,3
SAR AL,CL
MOV OCT[1],AL
ADD OCT[1],30H
POP AX
AND AL,07H
MOV OCT[2],AL
ADD OCT[2],30H
MOV OCT[3],24H
MOV DX,OFFSET STRING1
MOV AH,09H
INT 21H
MOV DX,OFFSET OCT
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
HEX1 PROC
CMP BL,'0'
JB ERROR
CMP BL,'9'
JBE OUT2
CMP BL,'F'
JA SMALL
CMP BL,'A'
JB ERROR
JMP OUT1
SMALL: CMP BL,'a'
JB ERROR
CMP BL,'f'
JA ERROR
OUT1: SUB BL,7
OUT2: CLC
RET
ERROR: STC
MOV DX,OFFSET STRING2
MOV AH,09H
INT 21H
RET
HEX1 ENDP
COSEG ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -