Truyen2U.Net quay lại rồi đây! Các bạn truy cập Truyen2U.Com. 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: Truyen2U.Com

Tags: #dương