Code by Jellydn
ASM LIB Support from 06Tonline
Vic chuyn đổi qua li gia h s thì ch cn 4 chương trình sau là đủ (
hex <---> dec và bin <---> oct) . Đọc qua code ,các bn d dàng thy
được rng :
- Đon code in ra s bin,oct,dec là như nhau ( ch sa t 39H à37H
hay à31H)
- Th tc nhp s bin,oct là như nhau .
- Nhp 16 và in 16 có s khác ( do có ch ) n trong tài liu này đã
có.
- Phương pp in ra là như nhau ( đều lưu o stack sao đó đọc ra li )
.Còn nhp s bin,oct,hex là như nhau . Ch có nhp s dec là khác.
Do đó ,ch cn 4 code y . Các bn có th làm được chuyn qua li ca
tt c h ^^.
Chú ý :
-Chương trình ch làm vic vi s t 0à65535
-Khi nhp s hex thì phi dùng ch hoa (tc là A ,ko phi a’).
Hi vng vi tài liu y s giúp ích cho các bn trong đợt thi gia y .
Ebook được làm bi Jellydn.
;
; Chuong trinh chuyen nhap dec va in hex
;
; ENV : EMU8086
;
.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 'MOI BAN NHAP 1 SO $'
MSG2 DB 0AH,0DH,'SO BAN DA NHAP $'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
; HIEN THONG BAO MSG1
MOV AH,9
LEA DX,MSG1
INT 21H
; NHAP SO
CALL NHAP10
; XUAT RA SO DA NHAP
; HIEN THONG BAO MSG2
MOV AH,9
LEA DX,MSG2
INT 21H
; IN SO DA NHAP DUOI DANG HEX
MOV AX,SI
MOV BX,16
MOV CX,0
SAVE_STACK:
MOV DX,0
DIV BX ; AX: THUONG VA DX: SO DU CUA PHEP CHIA [DX:AX] : BX
PUSH DX
INC CX
CMP AX,0
JNE SAVE_STACK
MOV AH,2
INKQ:
POP DX
CMP DL,9; >9 THI SANG XU LY CHU
JG CHU
OR DL,30H ;--> SANG SO
JMP INRA
CHU:
ADD DL,37H
INRA:
INT 21H
LOOP INKQ
; THOAT VE DOS
MOV AH,4CH
INT 21H
MAIN ENDP
NHAP10 PROC ; DAU RA LA SI, LUU KET QUA VUA NHAP
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV SI,0
MOV DI,10
NHAP:
MOV AH,1
INT 21H
CMP AL,13
JE XUAT
CMP AL,30H ; <0
JL ERR
CMP AL,39H ; >9
JG ERR
SUB AL,30H ; -> SO 0->9
MOV BL,AL ; LUU TAM AL SANG BL
MOV AX,SI
MUL DI ; AX=SI*10
ADD AX,BX
MOV SI,AX
JMP NHAP
ERR:
;IN SANG DONG
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
MOV AH,9
LEA DX,MSG1
INT 21H
JMP NHAP
XUAT:
POP DX
POP CX
POP BX
POP AX
RET
NHAP10 ENDP
END MAIN
;
; Chuong trinh chuyen nhap hex va in dec
;
; ENV : EMU8086
;
.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB 'MOI BAN NHAP 1 SO HEX $'
MSG2 DB 0AH,0DH,'SO BAN DA NHAP $'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
; HIEN THONG BAO MSG1
MOV AH,9
LEA DX,MSG1
INT 21H
; NHAP SO
CALL NHAP16
; XUAT RA SO DA NHAP
; HIEN THONG BAO MSG2
MOV AH,9
LEA DX,MSG2
INT 21H
; IN SO DA NHAP DUOI DANG DEC
MOV AX,BX
MOV BX,10
MOV CX,0
SAVE_STACK:
MOV DX,0
DIV BX ; AX: THUONG VA DX: SO DU CUA PHEP CHIA [DX:AX] : BX
PUSH DX
INC CX
CMP AX,0
JNE SAVE_STACK
MOV AH,2
INKQ:
POP DX
OR DL,30H
INT 21H
LOOP INKQ
; THOAT VE DOS
MOV AH,4CH
INT 21H
MAIN ENDP
NHAP16 PROC ; DAU RA LA BX, LUU KET QUA VUA NHAP
PUSH AX
PUSH CX
PUSH DX
XOR BX,BX
MOV CL,4
MOV AH,1
NHAP:
INT 21H
CMP AL,13 ; NEU LA ENTER THI THOAT
JE XUAT
CMP AL,30H ; <0
JL ERR
CMP AL,39H ; >9
JG HEX
AND AL,0FH ;DOI RA SO NHI PHAN
TIEP:
SHL BX,CL
OR BL,AL
JMP NHAP
ERR:
;IN SANG DONG
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
MOV AH,9
LEA DX,MSG1
INT 21H
MOV AH,1,
JMP NHAP
HEX:
CMP AL,'A' ; < A
JL ERR
CMP AL,'F' ; > F
JG ERR
SUB AL,37H;
JMP TIEP
XUAT:
POP DX
POP CX
POP AX
RET
NHAP16 ENDP
END MAIN
;
; Chuong trinh chuyen nhap bin va in oct
;