các bạn cho mình hỏi code của 8086:NHập vào số thập phân in ra số nhị phân có 1 số dòng lệnh mình không hiểu mong mọi người giúp nha:Vì KHÔNG có toppic 8086 nên mình chen 1 toppic của 8051:cụ thể code như thế này:những gì mình không hiểu mình đã ghi in hoa nha các bạn.Mà mình nhớ đổi từ thập phân sang nhị phân mình chỉ việc chia cho 2 lấy số dư là được mà.sao trong assembly làm khó hiểu quá.mình mới học mong các pro giúp mình với
.MODEL SMALL
HienXau MACRO xau
PUSH AX
PUSH DX
LEA DX,xau
MOV AH,09H
INT 21H
POP DX
POP AX
ENDM
.STACK 100H
.DATA
TB1 DB 'Nhap vao mot so thap phan: $'
TB2 DB 13,10,'Dang nhi phan la: $'
.CODE
MAIN PROC
;Khoi tao thanh ghi DS
MOV AX [MENTION=84674]DATA[/MENTION]
MOV DS,AX
;Xoa man hinh
MOV AH,0FH
INT 10H
MOV AH,0
INT 10H
;Hien thong bao nhap so thap phan
HIENXAU TB1
;Nhap tung so, nhan so tinh duoc truoc do voi 10 roi cong voi so vua nhap
XOR BX,BX ;Xoa BX = 0, BX dung de chua so he 10 nhap vao
MOV CX,10 ;So nhan
MOV DI,0 ;Ghi nho ve dau: DI=0 la duong, DI=1 la am
NHAP:
MOV AH,1[LỆNH CHUYỂN 1 VÀO THANH GHI AH NÀY ĐỂ LÀM GÌ VẬY?????????????)
INT 21H
JE THOI ;Neu an Enter thi thoat
CMP AL,'-'
JNE TIEP
MOV DI,1(CHUYỂN 1 VÀO THANH GHI DI ĐỂ LÀM GÌ???????????????????)
JMP NHAP
TIEP:SUB AL,30H ;Chuyen chu so thanh so
XOR AH,AH(LỆNH XOR NÀY MÌNH KHÔNG HIỂU LÉM HÌNH NHƯ LÀ ĐẢO BIT PHẢI KHÔNG??????????????????????????)
PUSH AX ;Dua so vua nhap vao ngan xep
MOV AX,BX ;Dua so tinh duoc truoc do vao AX de nhan voi 10
MUL CX ;Nhan so tinh duoc truoc do voi 10
MOV BX,AX ;Dua tich sang BX
POP AX ;Lay lai so de trong ngan xep
ADD BX,AX ;Cong so do voi BX roi de ket qua trong BX
JMP NHAP ;Quay lai nhap so tiep theo
THOI:
;Kiem tra xem co nhap vao dau - hay khong
CMP DI,0
JE DUARA ;Khong nhap vao dau tru
NEG BX ;Co nhap dau -
;Dua so he 10 ra man hinh duoi dang he 2
DUARA:
HIENXAU TB2
CALL HIENBIN ;Goi chuong trinh con
;Tro ve DOS
MOV AH,4CH
INT 21H
MAIN ENDP
;Khai bao chuong trinh con
HIENBIN PROC
;Cat cac thanh ghi de khong bi anh huong
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV CX,16
MOV AH,2
MOV DH,0
HIEN:
XOR DL,DL
ROL BX,1
ADC DL,30H
INT 21H
INC DH
CMP DH,4(CÂU NÀY NGHĨA LÀ DH-4 CHỨA VÔ DH LÀM GÌ VẬY CÁC BAN????????????????)
JNE HIENTIEP
MOV AH,2
MOV DL,' '
INT 21H
MOV DH,0
HIENTIEP:
LOOP HIEN
;Lay lai noi dung cua cac thanh ghi da cat
POP DX
POP CX
POP BX
POP AX
RET ;Tro ve chuong trinh chinh
HIENBIN ENDP
END MAIN
.MODEL SMALL
HienXau MACRO xau
PUSH AX
PUSH DX
LEA DX,xau
MOV AH,09H
INT 21H
POP DX
POP AX
ENDM
.STACK 100H
.DATA
TB1 DB 'Nhap vao mot so thap phan: $'
TB2 DB 13,10,'Dang nhi phan la: $'
.CODE
MAIN PROC
;Khoi tao thanh ghi DS
MOV AX [MENTION=84674]DATA[/MENTION]
MOV DS,AX
;Xoa man hinh
MOV AH,0FH
INT 10H
MOV AH,0
INT 10H
;Hien thong bao nhap so thap phan
HIENXAU TB1
;Nhap tung so, nhan so tinh duoc truoc do voi 10 roi cong voi so vua nhap
XOR BX,BX ;Xoa BX = 0, BX dung de chua so he 10 nhap vao
MOV CX,10 ;So nhan
MOV DI,0 ;Ghi nho ve dau: DI=0 la duong, DI=1 la am
NHAP:
MOV AH,1[LỆNH CHUYỂN 1 VÀO THANH GHI AH NÀY ĐỂ LÀM GÌ VẬY?????????????)
INT 21H
JE THOI ;Neu an Enter thi thoat
CMP AL,'-'
JNE TIEP
MOV DI,1(CHUYỂN 1 VÀO THANH GHI DI ĐỂ LÀM GÌ???????????????????)
JMP NHAP
TIEP:SUB AL,30H ;Chuyen chu so thanh so
XOR AH,AH(LỆNH XOR NÀY MÌNH KHÔNG HIỂU LÉM HÌNH NHƯ LÀ ĐẢO BIT PHẢI KHÔNG??????????????????????????)
PUSH AX ;Dua so vua nhap vao ngan xep
MOV AX,BX ;Dua so tinh duoc truoc do vao AX de nhan voi 10
MUL CX ;Nhan so tinh duoc truoc do voi 10
MOV BX,AX ;Dua tich sang BX
POP AX ;Lay lai so de trong ngan xep
ADD BX,AX ;Cong so do voi BX roi de ket qua trong BX
JMP NHAP ;Quay lai nhap so tiep theo
THOI:
;Kiem tra xem co nhap vao dau - hay khong
CMP DI,0
JE DUARA ;Khong nhap vao dau tru
NEG BX ;Co nhap dau -
;Dua so he 10 ra man hinh duoi dang he 2
DUARA:
HIENXAU TB2
CALL HIENBIN ;Goi chuong trinh con
;Tro ve DOS
MOV AH,4CH
INT 21H
MAIN ENDP
;Khai bao chuong trinh con
HIENBIN PROC
;Cat cac thanh ghi de khong bi anh huong
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV CX,16
MOV AH,2
MOV DH,0
HIEN:
XOR DL,DL
ROL BX,1
ADC DL,30H
INT 21H
INC DH
CMP DH,4(CÂU NÀY NGHĨA LÀ DH-4 CHỨA VÔ DH LÀM GÌ VẬY CÁC BAN????????????????)
JNE HIENTIEP
MOV AH,2
MOV DL,' '
INT 21H
MOV DH,0
HIENTIEP:
LOOP HIEN
;Lay lai noi dung cua cac thanh ghi da cat
POP DX
POP CX
POP BX
POP AX
RET ;Tro ve chuong trinh chinh
HIENBIN ENDP
END MAIN
Comment