Tong cap so nhan

 

Bài 7

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

; Tổng cấp số nhân khi biết n (số lượng thành phần)   |

;    q (công bội) và u1 (giá trị thành phần đầu tiên)     |

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

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

 

 

Hay vao n :  3

Hay vao q :  2

Hay vao u1 : 1

Tong cap so nhan la : 7

Co tiep tuc CT (c/k)?_

 

 

 

 

 

 

 

 

INCLUDE lib1.asm

.MODEL small

.STACK 100h

.DATA

M1  db 10,13,'Hay vao n : $'

M2  db 10,13,'Hay vao q : $'

M3  db 10,13,'Hay vao u1 : $ '

M4  db 10,13,’ Tong cap so nhan la : $’     

M5  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 n : ‘)

            call   VAO_SO_N     ; Nhận giá trị n

            mov  cx,ax                 ; cx = n

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

            call   VAO_SO_N     ; Nhận giá trị q

            mov  bx,ax                 ; bx = q

            HienString M3          ; Hiện thông báo M3 (’Hay vao u1 : ‘)

            call   VAO_SO_N     ; Nhận giá trị u1

            mov  si,ax                  ; si = ax = u1 (si = tổng = u1; ax =ui và lúc đầu bằng u1)

            dec   cx                       ; Giảm cx đi 1 (n-1)

    L1:

            mul   bx                      ; ax = ax*bx = ui

            add   si,ax                  ; si  = tổng

            loop  L1

HienString M4          ; Hiện thông báo M3 (‘Tong cap so nhan la : ‘)

mov  ax,si                  ; Chuyển tổng từ si đến ax

            call  HIEN_SO_N     ; Hiện tổng cấp số nhân

            HienString M5          ; 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: truyentop.pro

Tags: #dương