Các dạng bài tập ASM

39 507 0
Các dạng bài tập ASM

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Một số dạng bài tập ngôn ngữ lập trình Assembly

[...]... ; ax = ui add si,ax ; si = (t ng các thành ph n t u1 n ui-1) + ui loop L1 mov ax,si ; ax = t ng c p s nhân pop BP ; H i ph c giá tr BP ret @CSN$qiii ENDP END CÁC BÀI T P L P TRÌNH H TH NG Bài 1 Hãy vi t chương trình cho bi t máy tính b n ang dùng có m m nào hay không? N u có thì bao nhiêu ? Cách gi i : Chú ý byte c a có a ch 0:410h c a vùng d li u ROM BIOS có ch a các thông tin liên quan n thông tin... @AVERAGE$qiini ENDP END Bài 4 ; ; Tính t ng m t dãy s nguyên | ; Phân công nhi m v : − Ngôn ng C++ : • Nh n s lư ng thành ph n n, • Nh n các s c a dãy s ưa vào m t m ng, • G i chương trình con tính t ng các thành ph n c a m ng do Assembly vi t, • Hi n k t qu lên màn hình − Ngôn ng Assembly : Chương trình con tính t ng các thành ph n c a m ng Cách 1: Hàm Assembly không... mov ax,es:[bx] ; ax = a ch COM call HIEN_HEXA ; Hi n a ch d ng HEXA lên màn hình HienString space ; Hiên m t s d u cách add bx,2 ; bx tr n các byte ch a a ch c ng COM ti p theo loop L2 Exit: mov ah,4ch ; V DOS int 21h INCLUDE lib3 .asm ; lib3 .asm ch a chương trình con HIEN_HEXA END PS lib3 .asm ; ; Chương trình con hi n n i dung có trong | ; thanh ghi AX lên màn hình d ng HEXA |... năng hi n 1 ký t ASCII lên màn hình int 10h Exit: mov ah,4ch ; V DOS int 21h END PS Bài 2 Hãy vi t chương trình cho bi t máy tính b n ang dùng có c ng COM nào hay không? N u có thì bao nhiêu c ng và cho bi t a ch các c ng ó ( a ch c ng ph i là HEXA) Cách gi i : Chú ý byte c a có a ch 0:411h c a vùng d li u ROM BIOS có ch a các thông tin liên quan n thông tin v s lư ng c ng COM mà máy tính ang dùng có,... 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ài 8 ; - ; Tính bi u th c | ; Khi chương trình ch y yêu c u có dang : INCLUDE lib1 .asm MODEL small STACK 100h DATA M1 db 10,13,'Hay vao N : $' M2 db 10,13,'Tong tu 1 den $' M3 db 10,13,' la : $ ' M4 db 10,13,'Co tiep tuc (c/k)... int 21h INCLUDE lib2 .asm END PS LIÊN K T NGÔN NG B C CAO V I ASSEMBLY Bài 1 ; -; a lũy th a n (v i a là s nguyên và n là s nguyên dương) | ; -Phân công nhi m v : − Ngôn ng C++ : • Nh n a và n, • G i chương trình con tính an do Assembly vi t, • Hi n k t qu lên màn hình − Ngôn ng Assembly : Chương trình con tính an Cách 1: Hàm Assembly... 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à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 : INCLUDE lib1 .asm MODEL small STACK 100h DATA M1 db 10,13,'Hay vao n : $' M2 db 10,13,'Hay vao q... c chia HX2: ; Còn thương b ng 0 thì thi t l p vòng l p lôi các sô (d ng ASCII pop ax ; vào AL hi n) mov ah,0eh ; Ch c năng hi n 1 ký t ASCII n m AL lên màn hình int 10h loop HX2 pop dx cx bx ax ret HIEN_HEXA ENDP Bài 3 Hãy vi t chương trình cho bi t máy tính b n ang dùng có c ng LPT nào hay không? N u có thì bao nhiêu c ng và cho bi t a ch các c ng ó ( a ch c ng ph i là HEXA) ... PUBLIC @CSC$qv @CSC$qv PROC mov cx,_n ; cx = n mov bx,_d ; bx = d mov ax,_u1 ; ax = u1 mov dx,ax ; dx = u1 dec cx ; cx = n-1 L1: add dx,bx ; dx = ui add ax,dx ; ax = (t ng các thành ph n t u1 n ui-1) + ui loop L1 ret @CSC$qv ENDP END Cách 2: Hàm Assembly có 1 i (n là tham s th c - c t vào stack, còn d,u1 v n là bi n toàn c c) T p C++: #include #include int d,u1; extern int CSC(int... cx = n (l y giá tr n t stack) mov bx,_d ; bx = d mov ax,_u1 ; ax = u1 mov dx,ax ; dx = u1 dec cx ; cx = n-1 L1: add dx,bx ; dx = ui add ax,dx ; ax = (t ng các thành ph n t u1 n ui-1) + ui loop L1 pop BP ; H i ph c giá tr c a BP ret @CSC$qi ENDP END Cách 3: Hàm Assembly có 2 i (n, d là tham s th c - c t vào satck, còn u1 v n là bi n toàn c c) T p C++: #include #include int u1; extern . INCLUDE lib2 .asm END PS Bài 2 ; ; n! (n từ 0 đến 7) | ; Khi chương trình chạy yêu cầu có dang : Hay vao n : 6 Giai thua cua 6 la : 720 Co tiep tuc CT (c/k)?_ INCLUDE lib1 .asm .MODEL. lib2 .asm END PS Bài 6 ; ; Tổng cấp số cộng khi biết n (số lượng thành phần) | ; d (công sai) và u1 (giá trị thành phần đầu tiên) | ; Khi chương trình chạy yêu cầu có dang : INCLUDE lib1 .asm. lib2 .asm END PS 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 : INCLUDE lib1.asm

Ngày đăng: 29/04/2014, 23:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan