Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Chia 2 so

 

Bài 5

;---------------------------------------------

; Chia 2 số với số bị chia là nguyên   |

;     còn số chia là nguyên dương        |

;     ( 2 chữ số sau dấu thập phân)        |

;---------------------------------------------

Khi chương trình chạy yêu cầu có dang :

 

 

Hay vao so bi chia : -20

Hay vao so chia :  3

Thuong la : -6.66

Co tiep tuc CT (c/k)?_

 

 

 

 

 

 

 

 

INCLUDE lib1.asm

.MODEL small

.STACK 100h

.DATA

M1           db 10,13,'Hay vao so bi chia : $'

M2           db 10,13,'Hay vao so chia : $'

M3           db 10,13,'Thuong la : $ '

dautru      db '-$'

daucham  db '.$'

M4           db 10,13,'Co tiep tuc (c/k) ? $'

.CODE

PS:

            mov  ax,@data

            mov  ds,ax

            CLRSCR                    ; Xóa màn hình

            HienString M1          ; Hiện thông báo M1 (‘Hay vao so bi chia : ‘)

            call   VAO_SO_N     ; Nhận giá trị số bị chia

            mov  bx,ax                 ; bx = số bị chia

            HienString M2          ; Hiện thông báo M2 (’Hay vao so chia : ‘)

            call   VAO_SO_N     ; Nhận giá trị số chia (ax = số chia)

            xchg  ax,bx                ; Đổi chéo (ax=số bị chia, bx=số chia)

            HienString M3          ; Hiện thông báo M3 (‘Thuong la : ‘)

            and   ax,ax                 ; Dựng cờ dấu của số bị chia (dấu thương cùng dấu số bị chia)

            jns   CHIA1                ; Nếu dấu số bị chia là dương thì nhảy đến nhãn CHIA1

            HienString dautru     ; còn nếu số bị chia là âm thì hiện dấu ‘-‘ lên màn hình (dấu âm)

            neg   ax                       ; Đổi dấu số bị chia (để thành số nguyên dương)

CHIA1:

            xor   dx,dx                 ; dx = 0

            div   bx                       ; dx:ax chia cho bx (ax=thương còn dx=dư)

            call  HIEN_SO_N     ; Hiện giá trị của thương lên màn hình

            and  dx,dx                  ; Dựng cờ của phần dư (Z=1 thì dư=0, còn Z=0 thì dư≠0)

            jz     KT                      ; Dư bằng 0 thì nhảy đến kết thúc quá trình chia

            HienString daucham ; còn không thì hiện dấu chấm (‘.’) và tiếp tục chia

            mov  cx,2                   ; Số chữ số sau dấu thập phân

            mov  si,10                  ; si = 10

CHIA2:

            mov  ax,dx                 ; Đưa phần dư vào ax

            mul   si                       ; Nhân phần dư cho 10

            div   bx                       ; dx:ax chia cho bx

            call  HIEN_SO_N     ; Hiện giá trị của thương lên màn hình

            and  dx,dx                  ; Dựng cờ của phần dư (Z=1 thì dư=0, còn Z=0 thì dư≠0)

            jz     KT                      ; Phần dư bằng 0 thì nhảy đến kết thúc quá trình chia

            loop CHIA2

    KT:

            HienString M4          ; Hiện dòng nhắc M4 (‘Co tiep tuc CT (c/k) ?’)

            mov  ah,1                   ; Chờ nhận 1 ký tự từ bàn phím

            int     21h

            cmp  al,'c'                   ; Ký tự vừa nhận có phải là ký tự ‘c’ ?

            jne    Exit                   ; Nếu không phải thì nhảy đến nhãn Exit (về DOS)

            jmp   PS                      ; Còn không thì quay về đầu (bắt đầu lại chương trình)

   Exit:

            mov  ah,4ch               ; Về DOS

            int     21h

INCLUDE lib2.asm

            END PS

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: #dương