Từ 1 tới 1 trên tổng số 1 kết quả

Đề tài: Chuyển đổi các cơ số dùng code asm, vòng lặp mãi không dừng khi số nhập vào lớn hơn 10?

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    1

    Lightbulb Chuyển đổi các cơ số dùng code asm, vòng lặp mãi không dừng khi số nhập vào lớn hơn 10?

    Chương trình chuyển số nhị phân sang thập phân của mình chạy trên emu 8086 thì có một hiện tượng là khi nhập số nhị phân>10:vd 1011 thì chương trình chạy vòng lặp mãi không dừng.Mọi người hãy giúp mình tìm ra lỗi.
    @Xin lỗi mod,mình ít khi nào đăng bài trên các 4r nên không biết đặt tiêu đề thế nào cho rõ ràng.Thắc mắc của mình là:Lỗi của vòng lặp code asm chuyển đổi cơ số từ nhị phân sang thập phân.Mod sửa lại giúp mình nha.
    Ý tưởng của mình là dùng lệnh xoay ror để xoay tuần tự các bit và lấy các bit 1 để cộng lại ra số thập phân.
    .model small
    .stack 256
    .data
    tb1 db "Nhap vao so nhi phan:$"
    tb2 db 10,13,"Xuat so thap phan:$"
    tong dw 0
    dem dw 0
    so dw 0
    s dw 100 dup
    @Tbao macro tb
    mov ah,9
    lea dx,tb
    int 21h
    endm
    @Nhapbit macro
    Nhap:
    mov ah,1
    int 21h
    cmp al,13
    je Tbx
    shl bx,1
    or bl,al
    inc dem
    jmp Nhap
    Tbx:
    @Tbao tb2
    endm
    @Xuli macro
    mov cx,dem
    mov dx,1
    Xoay:
    ror bx,1
    jnc Dich
    add so,dx
    Dich:
    shl dx,1
    loop Xoay
    endm
    @Doiso macro
    mov dem,0
    mov dx,0
    Tach:
    mov ax,so
    mov bx,10
    div bx
    push dx
    inc dem
    mov so,ax
    cmp so,0
    je KQ
    jmp Tach
    KQ:
    mov cx,dem
    jmp Xuat
    Xuat:
    mov ah,2
    pop dx
    add dx,48
    int 21h
    loop Xuat
    endm
    .code
    mov ax,@data
    mov ds,ax
    @Tbao tb1
    @Nhapbit
    @Xuli
    @Doiso
    mov ah,4ch
    int 21h
    Đã được chỉnh sửa lần cuối bởi sunlight7793 : 17-04-2012 lúc 09:32 PM.

Các đề tài tương tự

  1. code bài chuyển biểu thức từ trung sang hậu tố-Dùng Stack
    Gửi bởi Loveanygirls trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 16-02-2012, 02:48 PM
  2. nhập vào 1 kí tự. dùng vòng lặp để vẽ hình Trái Tim bằng mỗi kí tự đó
    Gửi bởi thantaithieugia trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 10-12-2011, 06:05 PM
  3. sai code chuyển hệ 10 sang hệ 16 dùng stack
    Gửi bởi quangbinhit trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 28-09-2011, 10:04 AM
  4. Xin chuyển dùng code C sang vb6
    Gửi bởi ragnakrorn77 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 27-08-2009, 07:56 PM
  5. Chuyển hệ thập phân sang nhị phân chỉ dùng vòng for không dùng mảng
    Gửi bởi zodjac1990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 24-02-2009, 06:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn