?? 20073237-3.txt
字號:
STACK_SEG SEGMENT STACK
STACK_BUF DW 120 DUP(?)
TOP EQU $-STACK_BUF
STACK_SEG ENDS
DATA_SEG SEGMENT PARA
outNum DB ?;
TInput DB 0ah,0dh,'please input the num end with B.',0ah,0dh,'eg(1010B)---:$'
TEnd DB 0ah,0dh,'again?(Press N or n TO OUT)...$'
DATA_SEG ENDS
CODE_SEG SEGMENT PARA
;------------------------------------------------------
MAIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG
ASSUME SS:STACK_SEG
START:
MOV AX,STACK_SEG
MOV SS,AX
MOV SP,TOP
MOV AX,DATA_SEG
MOV DS,AX
MOV AX,0
agn: LEA DX,TInput
CALL TPRINTF
MOV outNum,0
CALL input
MOV DL,0ah
MOV AH,2
INT 21h
MOV DL,0dH
MOV AH,2
INT 21h
CALL cout
LEA DX,TEnd
CALL TPRINTF
MOV AH,1
INT 21H
CMP AL,6EH
JE agnn
CMP AL,4EH
JE agnn
JMP agn
agnn: MOV AX,4C00H
INT 21H
MAIN ENDP
TPRINTF PROC
MOV AH,9
INT 21h
RET
TPRINTF ENDP
out10B PROC
ADD DL,30H
MOV AH,2
INT 21h
RET
out10B ENDP
check PROC
MOV CL,0
CMP AL,'0'
JB back
CMP AL,'1'
JA back
MOV CL,1
back: RET
check ENDP
C2to10 PROC
MOV CL,0
CMP outNum,40H
JA Dback
SHL outNum,1
ADD outNum,AL
MOV CL,1
Dback: RET
C2to10 ENDP
cout PROC
MOV CL,0
MOV BL,0
L100: CMP outNum,100
JB L100Nt
ADD CL,1
MOV BL,1
SUB outNum,100
JMP L100
L100Nt: CMP CL,0
JE L10
MOV DL,CL
MOV CL,0
CALL out10B
L10: CMP outNum,10
JB L10Nt
ADD CL,1
MOV BL,1
SUB outNum,10
JMP L10
L10Nt: CMP BL,1
JE L10out
CMP CL,0
JE L1
L10out: MOV DL,CL
MOV CL,0
CALL out10B
L1: MOV DL,outNum
CALL out10B
RET
cout ENDP
input PROC
again:
MOV AL,0
MOV AH,1
INT 21H
CMP AL,'B'
JE inRet
CMP AL,'b'
JE inRet
CMP AL,13
JE inRet
CALL check
CMP CL,0
JE backsk
SUB AL,30H
CALL C2to10
CMP CL,1
JE again
inRet: RET
backsk: MOV DL,08H
MOV AH,2
INT 21h
JMP again
input ENDP
;------------------------------------------------------
CODE_SEG ENDS
END START
;
結果:
please input the num end with B.
eg(1010B)---:1000100B
68
again?(Press N or n TO OUT)...
please input the num end with B.
eg(1010B)---:10000B
16
again?(Press N or n TO OUT)...
please input the num end with B.
eg(1010B)---:11111111
127
again?(Press N or n TO OUT)...1
please input the num end with B.
eg(1010B)---:111011
59
again?(Press N or n TO OUT)...
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -