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 Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
Phạm Quang Nam (705)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
Nguyên An (674)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
mmmmaabb012 (160)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
dragon0388 (140)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
anhtraidalat (139)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
NguyenHuuHung (125)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
fly1571988 (117)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
giaquynh.nguyen (108)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 
playback (103)
Bài Hợp Ngữ Tuần 7-F109 Vote_lcapBài Hợp Ngữ Tuần 7-F109 Voting_barBài Hợp Ngữ Tuần 7-F109 Vote_rcap 

Share|

Bài Hợp Ngữ Tuần 7-F109

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 Hợp Ngữ Tuần 7-F109 Empty
Bài gửiTiêu đề: Bài Hợp Ngữ Tuần 7-F109 Bài Hợp Ngữ Tuần 7-F109 EmptyTue Mar 01, 2011 11:17 am

Bài tập hợp ngữ tuần 7 chuyên về chuyển đổi số thập phân, thập lục, nhị phân.

Bài 01: Chuyển đổi một chuỗi bit nhị phân thành số trong hệ thập phân.


Thuật giải: Nhập vào 1 chuỗi nhị phân, nhân các số nhị phân với mũ 2 tương ứng rồi cộng kết quả lại.

Code:

            .model small
            .stack
            .data
            mess1  db  13,10, "Nhap vao 1 chuoi nhi phan: $"
            mess2  db  13,10, "So thap phan: $"
            messkt  db  13,10, "Nhan 1 phim de ket thuc...!$"           
            .code                                         
           
            mov dx,seg mess1
            mov ds,dx                                     
           
            ;thong bao nhap
            N1:
            mov ah,9
            lea dx,mess1
            int 21h           
           
            mov bx,0    ;xoa bit
            mov cx,0    ;xoa bit
           
            Nhap:
            mov ah,1           
            int 21h           
            cmp al,13  ;kiem tra al=13
            je  kt         
            cmp al,30h
            jb  N1
            cmp al,31h
            ja  N1               
            sub al,30h
            mov bl,al                     
            push bx 
            inc cx
            jmp Nhap
           
            kt:     
            ;thong bao xuat
            mov ah,9
            lea dx,mess2
            int 21h                                                       
           
            ;Doi tu he 2 sang he 10 
            mov bx,0
            mov si,0
            Doi:
            pop dx
            cmp dx,0
            je  tiep    ;neu dx=0 thi khong cong them 
            call laymu  ;goi ham lay mu           
            add bx,ax
            tiep:
            inc si
            loop Doi             
           
            mov ax,bx
            call xuatax ;goi ham xuatax
           
            ;thong bao ket thuc
            mov ah,9
            lea dx,messkt
            int 21h
           
            mov ah,1
            int 21h
           
            mov ah,4ch
            int 21h
            xuatax proc
                pop si
                mov bx,10
                mov cx,0
               
                chia:
                mov dx,0
                div bx      ;chia ax cho bx <=>ax=ax/bx, so du dat o dx
                push dx
                inc cx               
                cmp ax,0    ;kiem ax>0 thi tiep tuc chia
                ja  chia
               
                mov ah,2
                xuatkqax:
                pop dx
                add dl,30h
                int 21h               
                loop xuatkqax
               
                push si
                ret
            endp xuatax
           
            laymu proc 
                mov ax,1   
                cmp si,0    ;kiem tra si=0 <=> tinh mu~=0 => tra ve ax=1
                je  s                 
                mov ax,2    ;kiem tra si=1 <=> tinh mu~=1 => tra ve ax=2
                cmp si,1
                je  s                     
                push cx    ;gan cx=dia chi lenh ke tiep
                mov cx,si 
                dec cx
                 
                nhanmu:    ;vong lap tinh so mu~
                mov dx,2
                mul dx
                loop nhanmu
                pop cx      ;dua dia chi lenh ke tiep vao stack
                s:
                ret
            laymu endp
           
            end
           


Bài 02: Chuyển đổi một số nguyên (1 chữ số) trong hệ thập phân sang hệ nhị phân


Thuật giải: Nhập vào 1 số thập phân, chia số đó cho 2, lưu phần dữ vào stack, thương tiếp tục chia, chia cho đến, sau đó giá trị trong stack rồi in ra

Code:

            .model small
            .stack
            .data
            mess1  db  13,10, "Nhap vao 1 so thap phan(1 chu so): $"
            mess2  db  13,10, "So nhi phan: $"
            messkt  db  13,10, "Nhan 1 phim de ket thuc...!$"           
            .code                                         
           
            mov dx,seg mess1
            mov ds,dx                                     
           
            ;thong bao nhap
            N1:
            mov ah,9
            lea dx,mess1
            int 21h           
           
            mov bx,0    ;xoa bit
            mov cx,0    ;xoa bit
           
            Nhap:
            mov ah,1
            int 21h           
            cmp al,30h
            jb  N1
            cmp al,39h
            ja  N1               
            sub al,30h
            mov bl,al                     
           
                 
            ;thong bao xuat
            mov ah,9
            lea dx,mess2
            int 21h
           
            mov cx,2                               
            mov ax,bx
            ;Doi tu he 10 sang he 2
            mov si,0
            Doi: 
            mov dx,0                   
            div cx      ;chia ax cho cx<=>ax=ax/cx, so du dat o dx 
            push dx    ;dua dx vao stack
            inc si                   
            cmp ax,0
            ja  Doi             
           
            mov cx,si         
            ;xuat so he 2
            mov ah,2
            Xuat:   
            pop bx         
            add bx,30h
           
            mov dx,bx
            int 21h                           
            inc si
            loop Xuat

            ;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 ở trên là đổi có 1 chữ số, Bài dưới là đổi nhiều chữ số. Tại em thấy trong phần nộp bài thầy ghi đổi 1 chữ số à, nên mới post 2 phần.

Code:

            .model small
            .stack
            .data
            mess1  db  13,10, "Nhap vao 1 so thap phan: $"
            mess2  db  13,10, "So nhi phan: $"
            messkt  db  13,10, "Nhan 1 phim de ket thuc...!$"           
            .code                                         
           
            mov dx,seg mess1
            mov ds,dx                                     
           
            ;thong bao nhap
            N1:
            mov ah,9
            lea dx,mess1
            int 21h           
           
            mov bx,0    ;xoa bit
            mov cx,0    ;xoa bit
           
            Nhap:
            mov ah,1
            int 21h
            cmp al,13  ;kiem tra nhap phim enter
            je  kt
            cmp al,30h
            jb  N1
            cmp al,39h
            ja  N1   
           
            sub al,30h
            mov cl,al
           
            mov ax,bx
            mov dx,10
            mul dx      ;nhan bx cho ax<=>ax=ax*dx
            add ax,cx  ;cong them so moi vao
            mov bx,ax
            jmp Nhap
                                 
            kt:       
            ;thong bao xuat
            mov ah,9
            lea dx,mess2
            int 21h
           
            mov cx,2                               
            mov ax,bx
            ;Doi tu he 10 sang he 2
            mov si,0
            Doi: 
            mov dx,0                   
            div cx      ;chia ax cho cx<=>ax=ax/cx, cx=2, so du dat o dx 
            push dx    ;dua dx vao stack
            inc si                   
            cmp ax,0
            ja  Doi             
           
            mov cx,si         
            ;xuat so he 2
            mov ah,2
            Xuat:   
            pop bx         
            add bx,30h
           
            mov dx,bx
            int 21h                           
            inc si
            loop Xuat

            ;thong bao ket thuc
            mov ah,9
            lea dx,messkt
            int 21h
           
            mov ah,1
            int 21h
           
            mov ah,4ch
            int 21h

            end           

Em thấy trong link nộp bài của thầy có để "Nộp bài tập 6 (F109)", nên post bài 6 luôn.

Bài 06: Đổi 1 chuỗi bit nhị phân sang thập lục phân


Thuật giải: Phần nhị chuyễn đổi sang thập lục thi ngắt mỗi 4 số sẽ ra 1 số thập phân, nếu chuỗi số không chi hết cho 4 thi ngắt từ phải qua trái, cho đến chuỗi cuối.
Ví dụ : 10101100=AC, chi tiết: 1010=A,1100=C. 10100011011=51B, chi tiết: 101=5,0001=1,1011=B

Code:

            .model small
            .stack
            .data
            mess1  db  13,10, "Nhap vao 1 chuoi nhi phan: $"
            mess2  db  13,10, "So thap luc phan: $"
            messkt  db  13,10, "Nhan 1 phim de ket thuc...!$"
            mangtl  dw  ?         
            .code                                         
           
            mov dx,seg mess1
            mov ds,dx                                     
           
            ;thong bao nhap
            N1:
            mov ah,9
            lea dx,mess1
            int 21h           
           
            mov bx,0    ;xoa bit
            mov cx,0    ;xoa bit
           
            Nhap:
            mov ah,1           
            int 21h           
            cmp al,13      ;kiem tra al=13
            je  kt         
            cmp al,30h
            jb  N1
            cmp al,31h
            ja  N1               
            sub al,30h
            mov bl,al                     
            push bx        ;dua bx vao stack 
            inc cx
            jmp Nhap
           
            kt:     
            ;thong bao xuat
            mov ah,9
            lea dx,mess2
            int 21h                                                       
           
            ;Doi tu he 2 sang he sang tung so he 10 
            mov bx,0
            mov si,0
            mov di,0
            Doi:
            pop dx      ;lay gia tri trong stack ra gan = dx
            cmp dx,0
            je  tiep 
            call laymu  ;goi ham laymu           
            add bx,ax   
           
            tiep:
            inc si
            cmp si,4    ;kiem tra xem da du 4 so chua
            jb  tiep2
            mov si,0
            cmp bx,10  ;kiem tra bx=10
            jb  so     
            add bl,7    ;cong bx them 7 vi khi xuat ra ky tu
                        ;chu hoa cach chu so 17 don vi
            so: 
            add bl,30h
            mov mangtl[di],bx  ;luu gia tri vao mang
            inc di
            mov bx,0    ;gan bx=0 bat dau tinh lai
            tiep2:
            loop Doi 
           
            cmp si,0    ;kiem tra si=0
            je  ktdoi  ;neu si=0 tuc la mang bit nhi phan chia het cho 4
                        ;neu chia het cho 4 thi ket thuc
                        ;neu khong chia het cho 4 tuc la so cuoi chua duoc
                        ;luu vao mangtl
                       
            cmp bx,10  ;tiep tuc tinh so cuoi                       
            jb  socuoi
            add bl,7
            socuoi: 
            add bl,30h
            mov mangtl[di],bx  ;luu gia tri vao mang
            inc di
            mov bx,0                       
                   
            ktdoi:
            mov cx,di           
           
            mov ah,2
            xuattl:    ;xuat so thap luc phan
            dec di      ;giam di 1 don vi
            mov dx,mangtl[di]  ;gan dl=mangtl[di] de in           
            int 21h         
            loop xuattl         
           
            ;thong bao ket thuc
            mov ah,9
            lea dx,messkt
            int 21h
           
            mov ah,1
            int 21h
           
            mov ah,4ch
            int 21h
           
            laymu proc 
                mov ax,1    ;gan ax=1
                cmp si,0    ;kiem tra so mu~, neu si=0 thi tra ve ax=1 vi so mu si=0
                je  s                 
                mov ax,2    ;gan ax=1
                cmp si,1    ;kiem tra so mu~, si=1 <=> ax^1=2
                je  s                     
                push cx    ;gan cx=dia chi lenh ke tiep
                mov cx,si  ;gan cx=si de tinh so mu
                dec cx
                 
                nhanmu:    ;vong lap tinh mu~ 2
                mov dx,2   
                mul dx
                loop nhanmu
                pop cx      ;dua dia chi lenh ke tiep vao stack
                s:
                ret        ;ket thuc thu tuc
            laymu endp
           
            end           
Arrow Arrow Arrow Arrow Arrow Arrow Arrow Arrow Arrow Arrow
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 Hợp Ngữ Tuần 7-F109 Empty
Bài gửiTiêu đề: Re: Bài Hợp Ngữ Tuần 7-F109 Bài Hợp Ngữ Tuần 7-F109 EmptyTue Mar 01, 2011 2:41 pm

trong ví dụ thầy nhập 5 bit nên cách của bạn phá sản rối hic đạ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 Hợp Ngữ Tuần 7-F109 Empty
Bài gửiTiêu đề: Re: Bài Hợp Ngữ Tuần 7-F109 Bài Hợp Ngữ Tuần 7-F109 EmptyTue Mar 01, 2011 6:43 pm

Bạn copy vào emu8086 chạy thử đi. Ở trên mình có ví dụ nhập 11 bit rồi đó.
Trích dẫn :

Ví dụ : 10101100=AC, chi tiết: 1010=A,1100=C. 10100011011=51B, chi tiết: 101=5,0001=1,1011=B
Về Đầu Trang Go down
Sponsored content




Bài Hợp Ngữ Tuần 7-F109 Empty
Bài gửiTiêu đề: Re: Bài Hợp Ngữ Tuần 7-F109 Bài Hợp Ngữ Tuần 7-F109 Empty

Về Đầu Trang Go down

Bài Hợp Ngữ Tuần 7-F109

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ữ-
Free forum | ©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