Code by Jellydn ASM LIB Support from 06Tonline Việc chuyển đổi qua lại giữa hệ số thì chỉ cần 4 chương trình sau là đủ hex dec và bin oct.. - Phương pháp in ra là như nhau đều lưu v
Trang 1Code by Jellydn ASM LIB Support from 06Tonline
Việc chuyển đổi qua lại giữa hệ số thì chỉ cần 4 chương trình sau là đủ ( hex < -> dec và bin < -> oct) Đọc qua code ,các bạn dễ dàng thấy được rằng :
- Đoạn code in ra số bin,oct,dec là như nhau ( chỉ sửa từ 39H à37H hay à31H)
- Thủ tục nhập số bin,oct là như nhau
- Nhập 16 và in 16 là có sự khác ( do có chữ ) nên trong tài liệu này đã
có
- Phương pháp in ra là như nhau ( đều lưu vào stack sao đó đọc ra lại ) Còn nhập số bin,oct,hex là như nhau Chỉ có nhập số dec là khác
Do đó ,chỉ cần 4 code này Các bạn có thể làm được chuyển qua lại của tất cả hệ ^^
Chú ý :
-Chương trình chỉ làm việc với số từ 0à65535
-Khi nhập số hex thì phải dùng chữ hoa (tức là ‘A’ ,ko phải là ‘a’)
Hi vọng với tài liệu này sẽ giúp ích cho các bạn trong đợt thi giữa kì này
Ebook được làm bởi 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
MOVAX,@DATA
MOVDS,AX
Trang 2
; HIEN THONG BAO MSG1
MOVAH,9
LEADX,MSG1
INT 21H
; NHAP SO
CALL NHAP10
; XUAT RA SO DA NHAP
; HIEN THONG BAO MSG2
MOVAH,9
LEADX,MSG2
INT 21H
; IN SO DA NHAP DUOI DANG HEX
MOVAX,SI
MOVBX,16
MOVCX,0
SAVE_STACK:
MOVDX,0
DIVBX; AX: THUONG VA DX: SO DU CUA PHEP CHIA [DX:AX] : BX
PUSHDX
INCCX
CMPAX,0
JNE SAVE_STACK
MOVAH,2
INKQ:
POPDX
CMPDL,9; >9 THI SANG XU LY CHU
JG CHU
ORDL,30H ; > SANG SO
JMP INRA
CHU:
ADDDL,37H
INRA:
INT 21H
LOOP INKQ
; THOAT VE DOS
MOVAH,4CH
INT 21H
MAIN ENDP
NHAP10 PROC; DAU RA LA SI, LUU KET QUA VUA NHAP
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVSI,0
Trang 3MOVDI,10
NHAP:
MOVAH,1
INT 21H
CMPAL,13
JE XUAT
CMPAL,30H ; <0
JL ERR
CMPAL,39H ; >9
JG ERR
SUBAL,30H ; -> SO 0->9
MOVBL,AL; LUU TAM AL SANG BL
MOVAX,SI
MULDI; AX=SI*10
ADDAX,BX
MOVSI,AX
JMP NHAP
ERR:
;IN SANG DONG
MOVAH,2
MOVDL,0AH
INT 21H
MOVDL,0DH
INT 21H
MOVAH,9
LEADX,MSG1
INT 21H
JMP NHAP
XUAT:
POPDX
POPCX
POPBX
POPAX
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 $'
Trang 4MSG2 DB 0AH,0DH,'SO BAN DA NHAP $'
.CODE
MAIN PROC
MOVAX,@DATA
MOVDS,AX
; HIEN THONG BAO MSG1
MOVAH,9
LEADX,MSG1
INT 21H
; NHAP SO
CALL NHAP16
; XUAT RA SO DA NHAP
; HIEN THONG BAO MSG2
MOVAH,9
LEADX,MSG2
INT 21H
; IN SO DA NHAP DUOI DANG DEC
MOVAX,BX
MOVBX,10
MOVCX,0
SAVE_STACK:
MOVDX,0
DIVBX; AX: THUONG VA DX: SO DU CUA PHEP CHIA [DX:AX] : BX
PUSHDX
INCCX
CMPAX,0
JNE SAVE_STACK
MOVAH,2
INKQ:
POPDX
ORDL,30H
INT 21H
LOOP INKQ
; THOAT VE DOS
MOVAH,4CH
INT 21H
MAIN ENDP
NHAP16 PROC; DAU RA LA BX, LUU KET QUA VUA NHAP
PUSHAX
PUSHCX
PUSHDX
Trang 5XORBX,BX
MOVCL,4
MOVAH,1
NHAP:
INT 21H
CMPAL,13 ; NEU LA ENTER THI THOAT
JE XUAT
CMPAL,30H ; <0
JL ERR
CMPAL,39H ; >9
JG HEX
ANDAL,0FH ;DOI RA SO NHI PHAN
TIEP:
SHLBX,CL
ORBL,AL
JMP NHAP
ERR:
;IN SANG DONG
MOVAH,2
MOVDL,0AH
INT 21H
MOVDL,0DH
INT 21H
MOVAH,9
LEADX,MSG1
INT 21H
MOVAH,1,
JMP NHAP
HEX:
CMPAL,'A'; < A
JL ERR
CMPAL,'F'; > F
JG ERR
SUBAL,37H;
JMP TIEP
XUAT:
POPDX
POPCX
POPAX
RET
NHAP16 ENDP
END MAIN
;
; Chuong trinh chuyen nhap bin va in oct
;
Trang 6; ENV : EMU8086
;
.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB'MOI BAN NHAP 1 SO BIN $'
MSG2 DB 0AH,0DH,'SO BAN DA NHAP $'
.CODE
MAIN PROC
MOVAX,@DATA
MOVDS,AX
; HIEN THONG BAO MSG1
MOVAH,9
LEADX,MSG1
INT 21H
; NHAP SO
CALL NHAP2
; XUAT RA SO DA NHAP
; HIEN THONG BAO MSG2
MOVAH,9
LEADX,MSG2
INT 21H
; IN SO DA NHAP DUOI DANG OCT
MOVAX,BX
MOVBX,8
MOVCX,0
SAVE_STACK:
MOVDX,0
DIVBX; AX: THUONG VA DX: SO DU CUA PHEP CHIA [DX:AX] : BX
PUSHDX
INCCX
CMPAX,0
JNE SAVE_STACK
MOVAH,2
INKQ:
POPDX
ORDL,30H ; > SANG SO
INT 21H
LOOP INKQ
; THOAT VE DOS
MOVAH,4CH
INT 21H
Trang 7
MAIN ENDP
NHAP2 PROC; DAU RA LA BX, LUU KET QUA VUA NHAP
PUSHAX
PUSHCX
PUSHDX
XORBX,BX
MOVCL,1
MOVAH,1
NHAP:
INT 21H
CMPAL,13 ; NEU LA ENTER THI THOAT
JE XUAT
CMPAL,30H ; <0
JL ERR
CMPAL,31H ; >1
JG ERR
ANDAL,0FH ;DOI RA SO NHI PHAN
SHLBX,CL
ORBL,AL
JMP NHAP
ERR:
;IN SANG DONG
MOVAH,2
MOVDL,0AH
INT 21H
MOVDL,0DH
INT 21H
MOVAH,9
LEADX,MSG1
INT 21H
MOVAH,1,
JMP NHAP
XUAT:
POPDX
POPCX
POPAX
RET
NHAP2 ENDP
END MAIN
;
; Chuong trinh chuyen nhap oct va in bin
;
; ENV : EMU8086
;
Trang 8
.MODEL SMALL
.STACK 100H
.DATA
MSG1 DB'MOI BAN NHAP 1 SO OCT $'
MSG2 DB 0AH,0DH,'SO BAN DA NHAP $'
.CODE
MAIN PROC
MOVAX,@DATA
MOVDS,AX
; HIEN THONG BAO MSG1
MOVAH,9
LEADX,MSG1
INT 21H
; NHAP SO
CALL NHAP8
; XUAT RA SO DA NHAP
; HIEN THONG BAO MSG2
MOVAH,9
LEADX,MSG2
INT 21H
; IN SO DA NHAP DUOI DANG BIN
MOVAX,BX
MOVBX,2
MOVCX,0
SAVE_STACK:
MOVDX,0
DIVBX; AX: THUONG VA DX: SO DU CUA PHEP CHIA [DX:AX] : BX
PUSHDX
INCCX
CMPAX,0
JNE SAVE_STACK
MOVAH,2
INKQ:
POPDX
ORDL,30H ; > SANG SO
INT 21H
LOOP INKQ
; THOAT VE DOS
MOVAH,4CH
INT 21H
MAIN ENDP
Trang 9
NHAP8 PROC; DAU RA LA BX, LUU KET QUA VUA NHAP
PUSHAX
PUSHCX
PUSHDX
XORBX,BX
MOVCL,3
MOVAH,1
NHAP:
INT 21H
CMPAL,13 ; NEU LA ENTER THI THOAT
JE XUAT
CMPAL,30H ; <0
JL ERR
CMPAL,37H ; >7
JG ERR
ANDAL,0FH ;DOI RA SO NHI PHAN
SHLBX,CL
ORBL,AL
JMP NHAP
ERR:
;IN SANG DONG
MOVAH,2
MOVDL,0AH
INT 21H
MOVDL,0DH
INT 21H
MOVAH,9
LEADX,MSG1
INT 21H
MOVAH,1,
JMP NHAP
XUAT:
POPDX
POPCX
POPAX
RET
NHAP8 ENDP
END MAIN