Thông báo

Collapse
No announcement yet.

Giúp mình về 8086

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giúp mình về 8086

    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

  • #2
    hix,mình chả buồn đọc nữa nhưng với bài đổi mã thập phân sang nhị phân thì cứ việc chia 1 số thập phân đó cho 2 rồi nhét dần vào trong ngăn xếp,sau khi đã chia xong (thương bằng 0) thì ta chỉ việc lấy dần các số cất trong ngăn sếp ra để hiển thị,thứ tự lấy ra sẽ ngược lại với thứ tự ta đưa vào,đúng như dạng ta cần hiển thị
    vanduc0211@gmail.com

    Comment


    • #3
      uh nhưng vì lý thuyết mơ hồ quá nên mình không hiểu những lệnh mong bạn giúp thì giúp cho trót mình cảm ơn nhiều bạn a

      Comment

      Về tác giả

      Collapse

      marcomputer Tìm hiểu thêm về marcomputer

      Bài viết mới nhất

      Collapse

      Đang tải...
      X