Diễn đàn công nghệ & giải trí
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn công nghệ & giải trí

Diễn đàn công nghệ - học tập & giải trí lớp 09tc trường Đại Học Khoa Học Tự Nhiên
 
Trang ChínhPortalTìm kiếmLatest imagesĐăng kýĐăng Nhập
Top posters
12betvn (762)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
Phạm Quang Nam (705)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
Nguyên An (674)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
mmmmaabb012 (160)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
dragon0388 (140)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
anhtraidalat (139)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
NguyenHuuHung (125)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
fly1571988 (117)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
giaquynh.nguyen (108)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 
playback (103)
Bài tập hợp ngữ tuần 5 Vote_lcapBài tập hợp ngữ tuần 5 Voting_barBài tập hợp ngữ tuần 5 Vote_rcap 

Share|

Bài tập hợp ngữ tuần 5

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down
Tác giảThông điệp
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyTue Jan 25, 2011 4:23 pm

Bài tập tuần 5 chuyên về các lệnh nhảy và lặp trong hợp ngữ. Trong đây không có bài 3 đâu nha, vì bài 3 em đã post ở topic "Bài tập hợp ngữ tuần 4" của anh phoenix51706 rồi.
Bài 6.Dùng lệnh lặp, viết chương trình nhập vào 1 chuỗi ký tự. Sau khi nhập xong đếm xem chuỗi có bao nhiêu ký tự. Xuất số ký tự có trong chuỗi.
Ví dụ:
S = "Hello world !" ==> Số kí tự trong chuỗi là 13.

Code:

                .model small
                .stack
                .data         
                mess1  db  'Nhap vao chuoi ky tu s: $'
                mess2  db  13,10, 'So ky tu trong la: $'                             
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'
               
                .code 
               
                ;xoa man hinh
                mov ax,3
                int 10h     
               
                mov dx,seg mess1
                mov ds,dx
               
                ;thong bao nhap     
                mov ah,9
                lea dx,mess1
                int 21h
               
                mov bl,0
                Nhap:
                mov ah,1
                int 21h
               
                cmp al,13      ;so sanh voi phim enter
                je  thoat 
               
                cmp  bh,255    ;so sanh neu nhap den 255 ky tu thi thoat
                je  thoat
               
                inc bl
                jmp Nhap
               
                thoat:
                ;thong bao so ky tu
                mov ah,9
                lea dx,mess2
                int 21h
                       
               
                mov al,bl
                mov bl,10
                mov cx,0
                chia:     
                mov ah,0    ;xoa bit cao
                div bl      ;chia al cho bl thuong dat al, so du dat ah
                mov dh,0    ;xoa bit cao
                mov dl,ah
                push dx
                inc cx      ;tang cx de thuc hien vong lap in               
                cmp al,0    ;so sanh neu al=0 thi phep chia da hoan tat
                je  th
                jmp chia
               
                th:               
                ;in so ky tu
                mov ah,2
                pop dx
                add dl,30h
                int 21h 
               
                loop th                               
           
               
                kt:     
                mov ah,9
                lea dx,messkt
                int 21h
               
                mov ah,1
                int 21h     
                                                             
                mov ah,4ch
                int 21h                                                             
                end               

Bài 7.Nhập 2 số nguyên dương thuộc N,M thuộc [0..9], nhập 1 ký tự Char. Xuất ra màn hình ma trận gồm N dòng và M cột gồm ký tự Char.
Ví dụ:
N=3, M=4, C='*'
⇒ * * * *
* * * *
* * * *

Code:

                      .model small
                .stack
                .data             
                mess1  db  13,10, 'Nhap so dong N: $'
                mess2  db  13,10, 'Nhap so cot M  : $'             
                mess3  db  13,10, 'In *: ' ,13,10, '$'
                messkt  db  'Nhan 1 phim de ket thuc ...$'             
                n      db  0                                                                                               
                .code                                                 
                mov ax,3
                int 10h
             
                mov dx,seg mess1
                mov ds,dx
             
                ;thong bao nhap N
                Nhap:
                mov ah,9
                lea dx,mess1
                int 21h
             
                mov ah,1
                int 21h           
                                   
                cmp al,'0'
                jb  Nhap
                cmp al,'9'
                ja  Nhap
                sub al,30h             
                mov bl,al
             
                ;thong bao nhap N
                NhapM:
                mov ah,9
                lea dx,mess2
                int 21h
             
                mov ah,1
                int 21h           
                                   
                cmp al,'0'
                jb  NhapM
                cmp al,'9'
                ja  NhapM
                sub al,30h             
                mov bh,al
             
                ;in thong bao in *
                mov ah,9
                lea dx,mess3
                int 21h
             
             
                mov ah,2 
             
                mov ch,0    ;xoa bit cao
                mov cl,bl
               
                cmp cl,0    ;kiem tra neu n=0 thi in 1 dong dau tien
                ja  inf1
                mov cl,1
               
                inf1:
                push cx
                mov ch,0    ;xoa bit cao
                mov cl,bh
                mov dl,'*'  ;gan dl=*
               
                cmp cl,0    ;kiem tra neu m=0 thi chi in cot
                ja  inf2
                mov cl,1
               
                inf2:
                int 21h                             
                loop inf2                           
                mov dl,13  ;xuong dong
                int 21h
             
                mov dl,10  ;xuong dong
                int 21h
             
                pop cx             
                loop inf1                               
                             
                kt:
                mov ah,9
                lea dx,messkt
                int 21h
             
                mov ah,1
                int 21h
             
                mov ah,4ch
                int 21h             
             
                end

Bài 8.Viết chương trình cho phép nhập vào một chuỗi S.
Đổi tất cả ký tự thường thành ký tự hoa.
Đổi tất cả ký tự hoa thành ký tự thường.

Code:

                .model small
                .stack
                .data         
                mess1  db  13,10, 'Nhap vao chuoi ky tu s(a-z,A-Z): $'
                mess2  db  13,10, 'Cac ky tu duoc dat ra la: $'                             
                messloi db  13,10, 'Nhap sai!',13,10, '$'
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'
                a      db  ?
                .code 
               
                ;xoa man hinh
                mov ax,3
                int 10h     
               
                mov dx,seg mess1
                mov ds,dx
               
                jmp N
               
                ;thong bao nhap sai
                Nhapsai:
                mov ah,9
                lea dx,messloi
                int 21h
               
                N:
                ;thong bao nhap     
                mov ah,9
                lea dx,mess1
                int 21h
               
                mov cx,0 
                mov si,0
                Nhap:
                mov ah,1                               
                int 21h 
               
                cmp al,13      ;so sanh voi phim enter
                je  thoat 
               
                cmp  cx,255    ;so sanh neu nhap den 255 ky tu thi thoat
                je  thoat
               
                cmp al,'A'      ;neu nho hon 'A' thi chuyen ve Nhapsai
                jb  Nhapsai
               
                cmp al,'Z'      ;neu <= 'Z' thi chuyen ve Nhapsai
                jna M
               
                cmp al,'a'      ;neu nho hon 'a' thi chuyen ve Nhapsai
                jb  Nhapsai
               
                cmp al,'z'      ;neu lon hon 'z' thi chuyen ve Nhapsai 
                ja  Nhapsai                                               
                       
                M:       
                inc cx                     
                mov a[si],al
                inc si
                jmp Nhap
               
                thoat:
                ;thong bao so ky tu
                mov ah,9
                lea dx,mess2
                int 21h
               
                ;xu ly mang da nhap
                mov si,0
                xuly:     
                cmp a[si],'Z'
                ja  doikythuong 
                add a[si],20h      ;neu la ky tu hoa thi +20h se thanh ky tu thuong
                jmp ktv               
               
                doikythuong:
                sub a[si],20h      ;neu la ky tu thuong thi -20h se thanh ky tu hoa                             
                             
                ktv:
                inc si             
                loop xuly                 
               
                mov cx,si 
                mov si,0               
               
                mov ah,2
                inmang:
                mov dl,a[si]
                int 21h
               
                inc si                               
                loop inmang
               
               
                kt:     
                mov ah,9
                lea dx,messkt
                int 21h
               
                mov ah,1
                int 21h     
                                                             
                mov ah,4ch
                int 21h                                                             
                end               

Bài 9.Nhập và xuất mảng 1 chiều. Tìm phần tử max, min, tính tổng các phần tử trong mảng.
Ví dụ:
N = 5
A[N] = {3,1,2,7,4}
=> max = 7, min = 1, tổng = 17.

Code:

                .model small
                .stack
                .data               
                mess1  db  13,10, 'Nhap so phan tu cua mang(1-9): $'
                mess2  db  13,10, 'Nhap a[$'               
                mess2_1 db  ']=$'
                mess3  db  13,10, 'Max = $'
                mess4  db  13,10, 'Min = $'
                mess5  db  13,10, 'Tong= $'
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'               
                A      db  ?                                                                                               
                .code                                                   
                mov ax,3
                int 10h
               
                mov dx,seg mess1
                mov ds,dx
               
                ;thong bao nhap so phan tu
                Nhap:
                mov ah,9
                lea dx,mess1
                int 21h
               
                mov ah,1
                int 21h
               
                cmp al,'1'
                jb  Nhap
                cmp al,'9'
                ja  Nhap
                sub al,30h
                mov bl,al  ;gan bl=al so phan tu da nhap
               
                mov si,0
                mov ch,0
                mov cl,bl  ;gan cl=bl de xu ly trong vong lap
                Nhapmang:
               
                Nhappt:
                ;thong thong bao
                mov ah,9
                lea dx,mess2
                int 21h
               
                mov ah,2
                mov dh,0        ;xoa bit cao
                mov dx,si
                add dl,30h
                int 21h
               
                mov ah,9
                lea dx,mess2_1
                int 21h
               
                mov ah,1        ;nhap gia tri cho mang
                int 21h
               
                cmp al,'0'
                jb  Nhappt
                cmp al,'9'
                ja  Nhappt
               
                sub al,30h
                mov a[si],al    ;gan gia tri vua nhap vao mang   
               
                inc si               
                loop Nhapmang                 
               
                mov ah,0        ;xoa bit cao
                mov al,0        ;gan al=0 de cong tong
                mov dh,a[0]
                mov dl,a[0]               
                mov bh,10
               
                mov cl,bl               
                mov si,0
               
                xulymang:
                ;mul bh
                add al,a[si]
               
                cmp dh,a[si]               
                ;jbe min        ;jbe tuong duong <=                 
                jna min        ;jna tuong duong <=                 
               
                mov dh,a[si]
                               
                min:       
                               
                cmp dl,a[si]               
                ;jae max        ;jae tuong duong >=                                 
                jnb max        ;jnb tuong duong >=                 
               
                mov dl,a[si]               
               
                max:             
                inc si          ;tang si vi tri trong mang
                loop xulymang     
               
                mov bl,al  ;gan lay gia tri tong               
                mov cl,dl  ;gan lay gia tri max
                mov ch,dh  ;gan lay gia tri min
                            ;neu khong gan xuong len lea dx,mess3 gia tri se thay doi             
                           
                ;in max                           
                mov ah,9               
                lea dx,mess3
                int 21h               
               
                mov dl,cl
                add dl,30h
                mov ah,2
                int 21h
               
                ;in min
                mov ah,9               
                lea dx,mess4
                int 21h     

                mov dl,ch
                add dl,30h
                mov ah,2
                int 21h 
               
                ;in tong
                mov ah,9
                lea dx,mess5
                int 21h
                       
                mov ah,0    ;xoa bit cao                       
                mov al,bl  ;gan al=bl chuan bi chia
                mov bx,10               
                mov cx,0
               
                chia:                 
                mov dx,0    ;xoa bit cao           
                div bx      ;phep chia lay ax chia bl, thuong dat ax
                            ;so du dat dx               
                push dx    ;dat dx vao stack
                inc cx      ;tang cx de thuc hien vong lap
                cmp ax,0               
                ja  chia
                                                                         
                mov ah,2 
                intong:
                pop dx      ;lay du lieu trong stack gan vao dx
                add dl,30h               
                int 21h
                loop intong
                               
                kt:
                mov ah,9
                lea dx,messkt
                int 21h

                mov ah,1
                int 21h
               
                mov ah,4ch
                int 21h               
               
                end

Bài 10.Cài đặt thuật toán Bubble Sort dùng ASM.
Thuật toán Bubble Sort theo ngôn ngữ C như sau:

Code:

for (int i = 0; i< N-1; i++)
   for(int j=N-1;j > i; j--)
      if(a[j] < a[j-1])
         Hoan_Vi (a[j], a[j-1]);
Code:

                .model small
                .stack
                .data               
                mess1  db  13,10, 'Nhap so phan tu cua mang(1-9): $'
                mess2  db  13,10, 'Nhap a[$'               
                mess2_1 db  ']=$'
                mess3  db  13,10, 'Mang sau khi da sap xep:$'
                mess4  db  13,10, 'a[$'               
                mess4_1 db  ']=$'
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'               
                A      db  ?                                                                                               
                .code                                                   
                mov ax,3
                int 10h
               
                mov dx,seg mess1
                mov ds,dx
               
                ;thong bao nhap so phan tu
                Nhap:
                mov ah,9
                lea dx,mess1
                int 21h
               
                mov ah,1
                int 21h
               
                cmp al,'1'
                jb  Nhap
                cmp al,'9'
                ja  Nhap
                sub al,30h
                mov bl,al  ;gan bl=al so phan tu da nhap
               
                mov si,0
                mov ch,0
                mov cl,bl  ;gan cl=bl de xu ly trong vong lap
                Nhapmang:
               
                Nhappt:
                ;thong thong bao
                mov ah,9
                lea dx,mess2
                int 21h
               
                mov ah,2
                mov dh,0        ;xoa bit cao
                mov dx,si
                add dl,30h
                int 21h
               
                mov ah,9
                lea dx,mess2_1
                int 21h
               
                mov ah,1        ;nhap gia tri cho mang
                int 21h
               
                cmp al,'0'
                jb  Nhappt
                cmp al,'9'
                ja  Nhappt
               
                sub al,30h
                mov a[si],al    ;gan gia tri vua nhap vao mang   
               
                inc si               
                loop Nhapmang                 
                               
                dec bl          ;giam bl di 1 de sap xep bubble sort               
                mov cl,bl      ;gan cl=bl de thuc hien vong lap       
                mov si,0        ;tra si ve 0 de sap xep trong mang
               
                fori:
                push cx        ;dua cx vao stack, luu vong lap ngoai 
                mov ch,0        ;xoa bit cao
                mov cl,bl      ;gan cl=bl de thuc hien vong lap trong
                sub cx,si      ;- di nhung so da so sanh roi
                mov di,si      ;gan di=si
                inc di          ;va tang di len 1 de so sanh
                                ;giua so truoc va so sau
                mov dl,a[si]
                    forj:                       
                    cmp dl,a[di];so sanh dl(a[si]) voi di
                    jb  th      ;neu dl nho hon thi nhay xuogn th
                   
                    mov bh,a[di];hoan vi giua a[si] va a[di]
                    mov a[si],bh;
                    mov a[di],dl;                   
                   
                    mov dl,a[si];gan dl=a[si] de so sanh tiep                                       
                    th:
                    inc di      ;tang di len
                    loop forj                 
               
                inc si          ;ket thuc vong lap tang si len
                pop cx          ;gan cx=du lieu trong stack     
               
                loop fori
               
                inc bl      ;tang bl len 1 vi luc sap xep da giam di 1
                mov ch,0    ;xoa bit cao
                mov cl,bl  ;gan cl=bl de thuc hien vong lap           
                mov si,0    ;tra vi tri mang ve 0
                 
                ;in mang
                mov ah,9
                lea dx,mess3
                int 21h   
               
                inmang:
                mov ah,9
                lea dx,mess4
                int 21h
               
                mov ah,2
                mov dh,0    ;xoa bit cao
                mov dx,si
                add dl,30h
                int 21h
               
                mov ah,9
                lea dx,mess4_1 
                int 21h
               
                mov ah,2
                mov dl,a[si]
                add dl,30h
                int 21h
               
                inc si                   
                loop inmang                             
               
                kt:
                mov ah,9
                lea dx,messkt
                int 21h

                mov ah,1
                int 21h
               
                mov ah,4ch
                int 21h               
               
                end

Bài 10 thì phần hướng dẫn trong file pdf không phải là thuật toán Bubble Sort đầu. Đó là thuật toán đưa số nhỏ nhất ra đầu rồi đến các số nhỏ tiếp theo trong mảng. Đây là thuật toán Bubble Sort viết theo cấu trúc C trong bài 10
Code:

                .model small
                .stack
                .data               
                mess1  db  13,10, 'Nhap so phan tu cua mang(1-9): $'
                mess2  db  13,10, 'Nhap a[$'               
                mess2_1 db  ']=$'
                mess3  db  13,10, 'Mang sau khi da sap xep:$'
                mess4  db  13,10, 'a[$'               
                mess4_1 db  ']=$'
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'               
                A      db  ?                                                                                               
                .code                                                   
                mov ax,3
                int 10h
               
                mov dx,seg mess1
                mov ds,dx
               
                ;thong bao nhap so phan tu
                Nhap:
                mov ah,9
                lea dx,mess1
                int 21h
               
                mov ah,1
                int 21h
               
                cmp al,'1'
                jb  Nhap
                cmp al,'9'
                ja  Nhap
                sub al,30h
                mov bl,al  ;gan bl=al so phan tu da nhap
               
                mov si,0
                mov ch,0
                mov cl,bl  ;gan cl=bl de xu ly trong vong lap
                Nhapmang:
               
                Nhappt:
                ;thong thong bao
                mov ah,9
                lea dx,mess2
                int 21h
               
                mov ah,2
                mov dh,0        ;xoa bit cao
                mov dx,si
                add dl,30h
                int 21h
               
                mov ah,9
                lea dx,mess2_1
                int 21h
               
                mov ah,1        ;nhap gia tri cho mang
                int 21h
               
                cmp al,'0'
                jb  Nhappt
                cmp al,'9'
                ja  Nhappt
               
                sub al,30h
                mov a[si],al    ;gan gia tri vua nhap vao mang   
               
                inc si               
                loop Nhapmang                 
                                                                                   
                mov bh,0        ;xoa bit cao                                                                                   
                dec bl          ;giam bl di 1 de sap xep bubble sort                               
                mov cl,bl      ;gan cl=bl de thuc hien vong lap                       
                mov dx,0
               
                fori:               
                push cx        ;dua cx vao stack, luu vong lap ngoai                                                                                                 
                mov si,bx      ;gan bien si=bx tuong duong voi n-1
                                ;trong huong dan
                    forj:                       
                    mov di,si
                    dec di     
                    mov al,a[si]
                    cmp al,a[di]                   
                    jae th     
                    mov ah,a[di]
                    mov a[si],ah
                    mov a[di],al                 
                   
                    th:
                    dec si                   
                    loop forj                                                                 
                pop cx          ;gan cx=du lieu trong stack                     
               
                loop fori
               
                inc bl      ;tang bl len 1 vi luc sap xep da giam di 1
                mov ch,0    ;xoa bit cao
                mov cl,bl  ;gan cl=bl de thuc hien vong lap           
                mov si,0    ;tra vi tri mang ve 0
                 
                ;in mang
                mov ah,9
                lea dx,mess3
                int 21h   
               
                inmang:
                mov ah,9
                lea dx,mess4
                int 21h
               
                mov ah,2
                mov dh,0    ;xoa bit cao
                mov dx,si
                add dl,30h
                int 21h
               
                mov ah,9
                lea dx,mess4_1 
                int 21h
               
                mov ah,2
                mov dl,a[si]
                add dl,30h
                int 21h
               
                inc si                   
                loop inmang                             
               
                kt:
                mov ah,9
                lea dx,messkt
                int 21h

                mov ah,1
                int 21h
               
                mov ah,4ch
                int 21h               
               
                end

Còn đây là 2 bài ở F10
Bài 1:
- nhập một số dạng ab sao cho ab thuộc {00, .., 16}
- chuyển số ab sang dạng HEX

Code:

                .model small
                .stack
                .data                                         
                mess1  db  'Nhap 1 so ab(00->16): $'   
                mess2  db  13,10, 'So ab o dang HEX la: $'   
                messloi db  13,10, 'Nhap sai!',13,10, '$'
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...!$'
                .code
                ;xoa man hinh
                mov ax,3
                int 10h
               
                mov dx,seg mess1
                mov ds,dx
               
                ;thong bao nhap
                Nhap:
                mov bh,39h      ;gan bh=39h dung so sanh nhap so thu 2
                mov ah,9
                lea dx,mess1
                int 21h               
               
                mov ah,1
                int 21h               
                sub al,30h      ;-30h de lay so vua nhap vao
                cmp al,0
                je  Nhap0
                cmp al,1
                je  Nhap1
                jmp Nhapsai
                             
                Nhap1:               
                mov ah,0        ;xoa bit cao cua ax
                mov cl,10
                mul cl          ;nhan al voi cl=10 tich tra ra ax
                mov bh,36h      ;gan bh=36h dung so sanh nhap so thu 2                         
               
                Nhap0:               
                mov bl,al      ;gan bl=al luu lai so vua nhap
                mov ah,1
                int 21h               
               
                cmp al,'0'
                jb  Nhapsai
                cmp al,bh      ;so sanh dieu kien voi bh da dat o tren
                ja  Nhapsai 

                sub al,30h      ;-30h de tra al ve so             
                add bl,al      ;cong al vao bl   
               
                ;thong bao xuat so HEX
                mov ah,9
                lea dx,mess2
                int 21h 
                         
                cmp bl,16
                je  in16
                cmp bl,9     
                ja  inchu      ;neu lon hon 9 thi nhay inchu
                jmp inso
               
                             
               
                Nhapsai:
                mov ah,9
                lea dx,messloi
                int 21h
                jmp Nhap 
               
                inchu:
                add bl,7    ;gan theo ma ascii
               
                inso:               
                add bl,48  ;gan theo ma ascii         
               
                mov ah,2
                mov dl,bl
                int 21h                       
                jmp kt               
               
                in16:
                mov ah,2
                mov dl,'1'
                int 21h
               
                mov dl,'0'
                int 21h               
               
                kt:   
                ;thong bao ket thuc
                mov ah,9
                lea dx,messkt
                int 21h
               
                mov ah,1
                int 21h
               
                mov ah,4ch
                int 21h
                end

Bài 2:
- nhập một số dạng ab sao cho ab thuộc {00, .., 16}
- chuyển số ab sang dạng HEX

Code:

                .model small
                .stack
                .data               
                mess1  db  13,10, 'Nhap 1 so tu 0-9: $'
                mess2  db  13,10, 'Nhap day bit(0|1): $'       
                mess3_1 db  13,10, 'So luong bit 1 trong day la chan!$'
                mess3_2 db  13,10, 'So luong bit 1 trong day la le!$'
                mess4  db  13,10, 'So luong bit 1 trong day: $'
                messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'               
                n      db  0                                                                                                 
                .code                                                   
                mov ax,3
                int 10h
               
                mov dx,seg mess1
                mov ds,dx
               
                ;thong bao nhap
                Nhap:
                mov ah,9
                lea dx,mess1
                int 21h
               
                mov ah,1
                int 21h             
                                     
                cmp al,'0'
                jb  Nhap
                cmp al,'9'
                ja  Nhap
                sub al,30h               
                mov bl,al
               
                ;thong bao nhap day bit
                Nhapbit:
                mov ah,9
                lea dx,mess2
                int 21h
               
                mov ch,0    ;xoa bit cao trong cx               
                mov cl,bl  ;gan cl=bl de thuc hien vong lap
               
                mov dl,0               
                mov bh,1
               
                mov ah,1
                NH:                 
                int 21h
                cmp al,'0'
                je  n0
                cmp al,'1'
                je  n1
                jmp Nhapbit             
             
                n1:
                inc dl
                neg bh                               
               
                n0:               
                loop NH
               
                mov bl,dl
                cmp bh,1
                je  inchan
               
                mov ah,9
                lea dx,mess3_2
                int 21h
                jmp insobit1
               
                inchan:       
                mov ah,9
                lea dx,mess3_1
                int 21h               

                insobit1:
                mov ah,9
                lea dx,mess4
                int 21h
               
                mov ah,2
                mov dl,bl
                add dl,30h
                int 21h
                               
               
               
                kt:
                mov ah,9
                lea dx,messkt
                int 21h
               
                mov ah,1
                int 21h
               
                mov ah,4ch
                int 21h
               
               
                end
Hêt năm rồi nghỉ tết thôi. Chúc mọi người an tết vui vẻ!!! Arrow Arrow Arrow Arrow Arrow Arrow


Được sửa bởi nghthien ngày Sat Feb 19, 2011 7:27 pm; sửa lần 1.
Về Đầu Trang Go down
Khách vi
Khách viếng thăm



Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyTue Jan 25, 2011 7:22 pm

Bạn nghthien giỏi quá đã giải hết bài tập hợp ngữ cho phòng F109 còn làm luôn cho phòng F110, chắc cuối kỳ thi hợp ngữ ban nghthien sẽ đậu cao nhất lớp đó ...hay giỏi quá , cám ơn nhé đã giải thích cho anh em nắm lại bài Shocked
Về Đầu Trang Go down
anhtraidalat
Mod
Mod
anhtraidalat

Tổng số bài gửi : 139
Experience : 232
Danh Vọng : 6

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyTue Jan 25, 2011 9:23 pm

Bài 2 ở F10( tren sai de nha !)

- nhập một số n. n thuộc {0, .., 9}
- nhập một dãy số dạng bit có n phần tử.
- cho biết số lượng bit 1 trong dãy là chẵn hay lẻ
- cho biết tổng số lượng bit 1
Về Đầu Trang Go down
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyTue Jan 25, 2011 11:01 pm

Xin lỗi vì copy nến nhằm! Thanks anh Hiệp đã ghi đề lại
Về Đầu Trang Go down
SuPerMod86
Dân nhập cư - Chưa có hộ khẩu
Dân nhập cư - Chưa có hộ khẩu


Tổng số bài gửi : 5
Experience : 5
Danh Vọng : 0

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyThu Jan 27, 2011 4:45 pm

Bài 1 bên f110 sai rồi hay sao ấy bạn ơi xem lại dùm cái. đại dia
Về Đầu Trang Go down
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Jan 28, 2011 11:09 am

Mình copy lại xem rồi, không sai đâu bạn ơi. Có lẽ bạn nhằm giữa số hệ 10 và hệ 16 đó, vì ở hệ 10 số 15 là chữ "F" ở hệ 16 đó, không phải số 16 đâu nha. Nên khi nhập 16 sẽ in là 10 ở hệ 16. Hoặc nếu mình có sai gì thì bạn nêu lên để mình sửa lại.
Về Đầu Trang Go down
Khách vi
Khách viếng thăm



Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Jan 28, 2011 12:21 pm

Code:
; multi-segment executable file template.

data segment
    ; add your data here!
    Tb1 db 13,10,13, " Nhap ten: $ "
    Tb2 db 13,10,13, " Hello !  $ " 
    s  db  ?

ends

stack segment
    dw  128  dup(0)
ends 
code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax   
   
    mov ax, 3  ; Xoa man hinh
    int  10h

    ; add your code here 
   
    lea dx, Tb1    ;hien thi Tb1
    mov ah, 9
    int 21h        ; output string at ds:dx
             
    mov ah,0Ah      ; nhap so luong ky tu
    mov al,s     
    add dx,2 
     
     
    keyloop:
   
    mov cx, 128
    mov ah,1
    int 21h 
    cmp al,0Dh
  loopne keyloop 
 
             
         
  lea dx, Tb2    ;hien thi Tb2
    mov ah, 9
    mov al,s
  int 21h        ; output string at ds:dx 
 
 
 
    mov ah,40h      ; xuat chuoi s
    mov al,s 
    mov al,Tb2

    int 21h
 
 
 
 
                                             
  mov ah, 40h    ; thiet bi xuat la man hinh
    mov bx, 1
       
    ; wait for any key....   
    mov ah, 1
    int 21h
       
    mov ax, 4c00h ; exit to operating system.
    int 21h   
ends

end start ; set entry point and stop the assembler.





nhờ bạn nghthien giúp anh tìm chỗ sai ko hiểu sao mà khi nhập được chuỗi , khi xuất thì chỉ xuất hello! nhưng lại ko xuất kèm theo chuỗi đã nhập theo yêu cầu bài đã cho là Viết chương trình nhập tên và in ra màn hình câu “Hello ” + tên đã nhập


ví dụ khi nhập tên nguyen tho quang
thì xuất ra hello! nguyen tho quang
mong tin gấp nhé bạn Smile

Về Đầu Trang Go down
SuPerMod86
Dân nhập cư - Chưa có hộ khẩu
Dân nhập cư - Chưa có hộ khẩu


Tổng số bài gửi : 5
Experience : 5
Danh Vọng : 0

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Jan 28, 2011 3:21 pm

Anh quang sai ở chỗ dùng int21h/0ah để nhập chuỗi thì không cần dùng mov ah, 1va2 vòng lặp để nhập nữa.nếu dùng int 21h / 0ah thì có bạn post rồi thì phải( hợp ngữ tuần 3) ở đây em dùng mov ah, 1 sửa lại nha.

[code]
lea dx,Tb1
mov ah, 9
int 21h ; output string at ds:dx

mov cx, 256 ; vong lap 256 ky tu
mov si, 0 ; chi so cua mang
Nhap:
mov ah, 1
int 21h
cmp al, 13 ; kiem tra enter
je thoat
mov s[si], al ; luu vao mang s
inc si
loop nhap

thoat:
lea dx, Tb2
mov ah, 9
int 21h ; output string at ds:dx

mov bx, 0
mov cx, si ; dua so phan tu mang vao
xuat:
mov ah, 2
mov dl, s[bx]
int 21h
inc bx
loop xuat
Về Đầu Trang Go down
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Jan 28, 2011 3:22 pm

Bài của anh chương trình chỉ xuất ra 2 dòng là vì
"lea dx, Tb1 ;hien thi Tb1
mov ah, 9
int 21h"
3 dòng đó xuất thông báo nhập, còn chữ hello là đây:
"lea dx, Tb2 ;hien thi Tb2
mov ah, 9
mov al,s
int 21h ; output string at ds:dx "
Còn doạn
"mov ah,0Ah ; nhap so luong ky tu
mov al,s
add dx,2 "
không có nhập gì cả, vì chỉ khai báo mov ah,0Ah à, mờ không có int 21h.Còn phần nhập là nằm trong loop
"keyloop:
mov cx, 128
mov ah,1
int 21h
cmp al,0Dh
loopne keyloop"
Nhưng trong đó anh chỉ nhập mờ không có lưu vào biến nào cả. Còn phần cuối là xuất chuỗi:
"mov ah,40h ; xuat chuoi s
mov al,s
mov al,Tb2
int 21h"
Xuất chuỗi bằng hàm mov ah,40h thì phải có lea dx giống như thông báo vậy. Nhưng do dữ liệu lúc anh nhập không có lưu trong biến s vì vậy, biến s không có dữ liệu, in không được.
Ở trong file power point của thầy có hướng dẫn:
mov ah,0Ah
mov bx,seg s ;lấy địa chỉ đoạn của s
mov ds,bx ;đưa địa chỉ đoạn của s vào ds
mov dx,offset s ;đưa địa chỉ ô của s vào dx
int 21h ; nhập liệu vào s
Còn hàm 40h phai có các giá trị là độ dài chuỗi, địa chỉ đoạn của chuỗi
mov ah,40h
mov bx,1 ;bx=1 kết nối với màn hình
mov ch,0 ;xoa bit cao
mov cl,actlen ;độ dài của chuổi cần nhập vào
lea dx,chars
int 21h
Đầy là bài mẫu anh xem sẽ rõ hơn:
Code:

        .model small
        .stack
        .data       
        mess1  db  'Nhap vao ten: $'
        mess2  db  13,10, 'Hello: $'
        messkt  db  13,10, 'Nhan 1 phim de ket thuc ...!$'     
        s      label byte
        maxlen  db  20h
        actlen  db  ?          ;do dai chuoi nhap vao
        chars  db  20h dup(?)  ;chuoi nhap vao
        .code 
       
        mov dx,seg mess1    ;lay dia chi doan cua chuong trinh
        mov ds,dx          ;gan vao ds
             
        ;thong bao nhap             
        mov ah,9
        lea dx,mess1
        int 21h       
       
        mov ah,0ah       
        lea dx,s    ;lay dia chi o cua s dua vao dx
        int 21h    ;nhap lieu vao s
       
        ;thong bao xuat
        mov ah,9
        lea dx,mess2       
        int 21h
       
        mov ah,40h
        mov bx,1
        mov ch,0    ;xoa bit cao
        mov cl,actlen
        lea dx,chars
        int 21h                                                           
       
        mov ah,9
        lea dx,messkt
        int 21h
       
        mov ah,1
        int 21h       
                       
        mov ah,4ch
        int 21h
        end 

Về Đầu Trang Go down
SuPerMod86
Dân nhập cư - Chưa có hộ khẩu
Dân nhập cư - Chưa có hộ khẩu


Tổng số bài gửi : 5
Experience : 5
Danh Vọng : 0

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Jan 28, 2011 4:20 pm

có ai post bài 5 tìm USCLN không nhỉ đại dia
Về Đầu Trang Go down
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyMon Jan 31, 2011 9:21 pm

Bài 5 tìm USCLN
Code:

            ;Trong bai dung thuat giai tim uscln la lay so lon
            ;tru di so nho cho den khi 2 so bang nhau           
            .model small
            .stack
            .data
            mess1  db  13,10, 'Nhap vao so nguyen N: $'
            mess2  db  13,10, 'Nhap vao so nguyen M: $'
            mess3  db  13,10, 'USCLN($'
            mess4  db        ' la 2 so nguyen to cung nhau$'
            messkt  db  13,10, 'Nhan 1 phim de ket thuc ...$'
            n      dw  0
            m      dw  0
            .code
           
            mov dx,seg mess1
            mov ds,dx
            mov si,0
           
            ;thong bao nhap n
            Nhap1:
            mov n,0
            mov ah,9
            lea dx,mess1
            int 21h
           
            Nhapn:
            mov ah,1
            int 21h           
            cmp al,13
            je  ktn
            cmp al,'0'
            jb  Nhap1
            cmp al,'9'
            ja  Nhap1
           
            ;xu ly khi nhap hop le
            mov cx,10 
            sub al,30h
            mov bh,0    ;xoa bit cao
            mov bl,al
            mov ax,n
            mul cx
            add ax,bx
            mov n,ax           
            jmp Nhapn
           
            ktn:
            cmp n,0
            je  Nhap1
           
            ;thong bao nhap m
            Nhap2:           
            mov m,0
            mov ah,9
            lea dx,mess2
            int 21h
           
            Nhapm:
            mov ah,1
            int 21h           
            cmp al,13
            je  ktm
            cmp al,'0'
            jb  Nhap2
            cmp al,'9'
            ja  Nhap2
           
            ;xu ly khi nhap hop le
            mov cx,10
            sub al,30h
            mov bh,0    ;xoa bit cao
            mov bl,al
            mov ax,m
            mul cx
            add ax,bx
            mov m,ax           
            jmp Nhapm
           
            ktm:
            cmp m,0
            je  Nhap2
           
            ;thong bao tim uoc so
            mov ah,9
            lea dx,mess3
            int 21h
           
            ;xuat n
            mov ax,n
            mov cx,0
            mov bx,10           
           
            xuatax:
            mov dx,0    ;gan dx=0 de thuc hien phep chia           
            div bx      ;chia ax cho bx, thuong dat ax, so du dat dx
            push dx    ;dua dx vao stack
            inc cx      ;tang cx de in trong vong lap
            cmp ax,0    ;kiem tra ax=0
            je  xuat    ;neu ax=0 thi ket thuc phan chia
            jmp xuatax
           
            xuat:
            pop dx      ;lay du lieu trong stack
            add dl,30h  ;cong them 30h de in ky tu so
            mov ah,2
            int 21h           
            loop xuat
            ;tang si de lam dieu kien in tiep theo           
            inc si 
           
            cmp si,2
            je  xuatngoac 
           
            cmp si,3
            je  kt
           
            cmp si,4
            je  xuatm2
           
            cmp si,5
            je  xuattbnt         
           
            mov ah,2         
            mov dl,','
            int 21h           
                             
            ;xuat m
            mov ax,m
            mov cx,0
            mov bx,10
            jmp xuatax           
           
            xuatngoac:
            mov ah,2
            mov dl,')'
            int 21h
           
            xuatbang:
            mov ah,2
            mov dl,'='
            int 21h
           
            ;xu ly tim uscln
            mov bx,n    ;gan bx=n
            mov cx,m    ;gan cx=m
            tim_us:
            cmp bx,1
            je  nguyento
            cmp bx,cx
            je  bangnhau
            cmp bx,cx
            ja  lon
            jmp nho
           
            bangnhau:
            mov ax,bx
            mov cx,0
            mov bx,10
            jmp xuatax
           
            lon:
            sub bx,cx
            jmp tim_us
           
            nho:   
            sub cx,bx
            jmp tim_us
           
            nguyento:
            inc si
            mov ah,2
            mov dl,'1'
            int 21h           
           
            ;in xuong hang
            mov dl,13
            int 21h
           
            mov dl,10
            int 21h
           
            ;in =>
            mov dl,'='
            int 21h
           
            mov dl,'>'
            int 21h 
           
            mov dl,' '
            int 21h
           
            ;xuat n
            mov ax,n
            mov cx,0
            mov bx,10
            jmp xuatax
           
            ;xuat m
            xuatm2:
            mov ah,2
            mov dl,','
            int 21h
           
            ;gan ax=m de in ax
            mov ax,m
            mov cx,0
            mov bx,10
            jmp xuatax
           
            ;thong bao 2 so la so nguyen to
            xuattbnt:
            mov ah,9
            lea dx,mess4
            int 21h
           
            kt:
            mov ah,9
            lea dx,messkt
            int 21h
           
            mov ah,1
            int 21h
           
            mov ah,4ch
            int 21h
            end
Nếu có gì sai thì mọi người post lên để em sửa lại
Về Đầu Trang Go down
phoenix51706
Trụ Cột 09TC
Trụ Cột 09TC
phoenix51706

Tổng số bài gửi : 94
Experience : 163
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Feb 18, 2011 11:13 pm

hôm rồi bạn Thiện có gửi bài tập 7 tuần 5 lên cho mọi người tham khảo. Hôm nay mình xin gửi lại bài này nhưng được sắp xếp theo cách mình thấy gần với lập trình C để ai chưa hiểu được sẽ hiểu kỹ. Góp chút gió để tạo bão chứ dạo này thấy forum post toàn mấy cái gì không chẳng thấy liên quan tới học hành gì hết.
Code:
      .model  small
        .stack
        .data
tb1    db      "nhap vao chieu dai: $"
tb2    db      10, 13, "nhap vao chieu rong: $"
dai    db      ?       
rong    db      ?
       
        .code
       
        mov ax, @data
        mov ds, ax
       
       
        mov ah, 9
        mov dx, offset tb1
        int 21h
       
        mov ah, 1
        int 21h
        mov dai, al
       
        mov ah, 9
        mov dx, offset tb2
        int 21h
       
        mov ah, 1
        int 21h
        mov rong, al
       
       
       
        mov    cl, rong
        sub    cl, 30h            ;de so nhap vao dung la so
        mov    ch, 0              ;xoa ch de cx(16bit)=cl(bit)= chieu rong (8bit)
chieurong:

        push    cx
           
            mov    ah, 2                               
            mov    dl, 13              ;xuong hang
            int    21h
       
            mov    ah, 2
            mov    dl, 10              ;ra dau dong
            int    21h                 
         
                           
        mov    cl, dai
        sub    cl, 30h            ;de so nhap vao dung la so
        mov    ch, 0               
chieudai:
        mov    ah, 2
        mov    dl, '*'            ;in ra dau *
        int    21h
       
        loop    chieudai                     
               
        pop    cx               
        loop    chieurong
       
       
        mov ah, 4ch
        int 21h
       
       
        end       
Về Đầu Trang Go down
playback
Nhất Đại Công Thần
Nhất Đại Công Thần
playback

Tổng số bài gửi : 103
Experience : 125
Danh Vọng : 3

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptySat Feb 19, 2011 8:41 am

bt7 phong 109 neu nhap vao so "0" thi se chay ko ngung cac chu thot xem lai bai do dum nha! minh sua lai dieu kien lan ban dau nhu sau:
jb Nhap = je Nhap
Sad Sad Sad Sad Sad Sad Sad Sad Sad Sad Sad
Về Đầu Trang Go down
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptySat Feb 19, 2011 7:33 pm

Mình đã sửa bài 7 rồi, Bạn copy chạy thử lại xem. Vì khi nhập mình quên so sánh giá trị 0 nên vòng lặp chạy hoài.
Về Đầu Trang Go down
vothien
Dân nhập cư - Chưa có hộ khẩu
Dân nhập cư - Chưa có hộ khẩu


Tổng số bài gửi : 1
Experience : 1
Danh Vọng : 0

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyTue Mar 27, 2012 4:54 pm

Viết chương trình kiểm tra một biểu thức đại số có chứa các dấu ngoặc (như (), [] và {})
là hợp lệ hay không hợp lệ .
Ví dụ:
(a + [b – { c * ( d – e ) } ] + f)
là hợp lệ nhưng
(a + [b – { c * ( d – e )] } + f)
là không hợp lệ.
"""" ai giup minh voi Question "
Về Đầu Trang Go down
nghthien
Tri Phủ
Tri Phủ
nghthien

Tổng số bài gửi : 61
Experience : 86
Danh Vọng : 4

Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 EmptyFri Apr 13, 2012 6:01 pm

Bài này thì kiểm tra xem ngoặc nào mở trước thì ngoặc đó đóng trước, nếu khác thì báo lỗi.
Về Đầu Trang Go down
Sponsored content




Bài tập hợp ngữ tuần 5 Empty
Bài gửiTiêu đề: Re: Bài tập hợp ngữ tuần 5 Bài tập hợp ngữ tuần 5 Empty

Về Đầu Trang Go down

Bài tập hợp ngữ tuần 5

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn công nghệ & giải trí :: Tập thể lớp 09TC Trường ĐH Khoa Học Tự Nhiên - Q5, TP. HCM :: Hộp lưu trữ :: Học kì III ( 2010 ~ 2011 ) :: Kiến trúc máy tính & hợp ngữ-
Create a forum on Forumotion | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất
quan ao tre em | thoi trang tre em | thoi trang be gai | thoi trang be trai | me va be | ao khoac cho be