Thắng Ỉn-Thái Nguyên City-Giao lưu và kết bạn
Xin chào..!Bạn đang ở diễn đàn anh em thái nguyên....hãy chung tay góp sức để diễn đàn ngày càng phát triển.thank you very much and good luck 4you!!!!!!!!!!!!!!!!Very Happy:D:D
...............Admin....................
Thắng Ỉn-Thái Nguyên City-Giao lưu và kết bạn
Xin chào..!Bạn đang ở diễn đàn anh em thái nguyên....hãy chung tay góp sức để diễn đàn ngày càng phát triển.thank you very much and good luck 4you!!!!!!!!!!!!!!!!Very Happy:D:D
...............Admin....................
Thắng Ỉn-Thái Nguyên City-Giao lưu và kết bạn
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.
Thắng Ỉn-Thái Nguyên City-Giao lưu và kết bạn

Diễn Đàn Anh Em Thái Nguyên
 
Trang ChínhGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập
Tìm kiếm
 
 

Display results as :
 
Rechercher Advanced Search
Latest topics
Navigation
 Portal
 Diễn Đàn
 Thành viên
 Lý lịch
 Trợ giúp
 Tìm kiếm
Diễn Đàn
Affiliates
free forum


 

 bai tap vi xu ly hop ngu

Go down 
Tác giảThông điệp
thangthuytn158
MOD
MOD
thangthuytn158


Tổng số bài gửi : 118
Points : 344
Reputation : 2
Join date : 03/11/2011
Age : 31
Đến từ : Thái nguyên

bai tap vi xu ly hop ngu Empty
Bài gửiTiêu đề: bai tap vi xu ly hop ngu   bai tap vi xu ly hop ngu Icon_minitimeThu Nov 17, 2011 9:21 pm

Bài 1: Chương trình nhập vào 1 xâu và hiển thị xâu theo chiều ngược

.model small
.stack 100h
.data
tb1 db "Moi nhap xau ky tu:$"
tb2 db "Xau theo chieu nguoc:$"
xd db 0dh,0ah,"$"
.code
main proc
mov ax, @data
mov ds,ax
mov ah,9
lea dx, tb1
int 21h
xor cx,cx
mov ah,1
nhap: int 21h
cmp al,0dh
je thoat
inc cx
push ax
jmp nhap
thoat: mov ah,9
lea dx,xd
int 21h
lea dx,tb2
int 21h
mov ah,2
hien: pop dx
int 21h
loop hien
mov ah,1
int 21h
mov ah, 4ch
int 21h
main endp
end main

Bài 2: Chương trình đọc 1 số nguyên từ bàn phím sau đó hiển thị số vừa đọc lên màn hình.
.model small
.stack 100h
.data
coso db 10
so dw 5234
xd db 0dh,0ah,"$"
.code
main proc
;Khoi tao
mov ax,@data
mov ds,ax

call input
mov ax,dx
call output
mov ax,bx
add ax,cx

;Ket thuc
mov ah,4ch
int 21h
main endp

;Doc 1 so nguyen duong tu ban phim (nho hon 256)
;ket qua luu trong thanh ghi dx
input proc
xor dx,dx ;gia tri doc vao duoc cong vao dx
nhap:
mov ah,1 ;ham doc 1 ky tu tu ban phim
int 21h
cmp al,0dh
je thoat ;neu an enter la thoat
sub al,30h ;chu so co ma ASCII la so+30h
mov bl,al
mov ax,dx
mul coso ;nhan gia tri trong dx len 10 roi cong
add ax,bx ;voi al
mov dx,ax
jmp nhap
thoat:
mov bx,dx ;sau khi an enter thi con tro xuong
mov dx,0ah ;dong duoi
mov ah,2
int 21h
mov dx,bx
ret
input endp

;In ra man hinh so nguyen duong luu trong ax
output proc
xor cx,cx ;chua so casc chu so cua ax
xor bx,bx
chia:
cmp ax,0
je hien
div coso
mov bl,ah
push bx ;lay chu so cuoi cung cua ax
xor ah,ah ;dua vao stack
inc cx
jmp chia
hien:
mov ah,2
jcxz thoat1 ;cx=0 thi thoat
lap:
pop dx ;lay dan tung chu so trong stack dua
add dx,30h ;ra man hinh
int 21h
loop lap ;cx se giam dan sau lenh loop
thoat1: ret
output endp
end main

Bài 3: Chương trình hiển thị lời chào tiếng Việt và tiếng Anh đặt cách nhau 5 dòng
.model small
.stack 100h
.data
DC db 13,10,"$"
chaotay db " Hello!$"
Chaota db "Chaoban!$"
.code
main proc
;Khoi tao
mov ax,@data
mov ds,ax
mov ah,9 ; hien thi loi chao
lea dx,chaotay
int 21h
;cach 5 dong dung ham 9 cua ngat 21
lea dx,DC
mov cx,6
lap: int 21h
loop lap
lea dx,chaota
int 21h
mov ah,4ch
int 21h
main endp
end main

Bài 4: Tương tự bài 2 nhưng số dòng cách là do người dùng nhập vào
.model small
.stack 100h
.data
CRDF db 13,10,"$"
chaotay db " Hello!$"
Chaota db "Chaoban!$"
thongbao db "Go vao so dong cach: $"
socrdf db ?
.code
main proc
;Khoi tao
mov ax,@data
mov ds,ax
mov ah,9
lea dx,thongbao
int 21h
mov ah,1 ;doc so dong cach dung
int 21h ;ham 1 cua ngat 21
and al,0fh ; doi ra he 2
mov socrdf,al
mov ah,9
lea dx,crdf
int 21h
mov ah,9
lea dx,chaotay
int 21h
lea dx,crdf
xor cx,cx
mov cl,socrdf
lap: int 21h
loop lap
lea dx,chaota
int 21h
mov ah,4ch
int 21h
main endp
end main

Bài 5: Có một chuỗi ký tự thường trong bộ nhớ, hãy tạo ra chuỗi ký tự hoa và cất vào trong bộ nhớ.
.model small
.stack 100
.data
str1 db "a", "b", "c", "d"
Tbao db "chuoi da duoc doi:", 10,13
str2 db 8 dup(" ")
db "$"
.code
main proc
mov ax, @data
mov ds, ax
mov es, ax
lea SI, Str1 +7 ; SI chi vao cuoi chuoi cu
lea DI, Str2+ 7; DI chi vao cuoi chuoi moi
STD; dinh huong lui
mov cx, 8
Lap: lodsb
sub al, 20h
stosb
Loop lap
lea dx, Tbao
mov ah,9
int 21h
mov ah, 4ch
int 21h
main endp
end main

Bài 6: Nhập 1 ký tự từ bàn phím và hiển thị trên đầu dòng tiếp theo
.Model Small
.Stack 100h
.Code
Main Proc
mov ah, 2 ; Hàm 2: hiển thị một ký tự
mov dl, "?"
int 21h
mov ah, 1 ; Hàm 1: đọc một ký tự từ bàn phím
int 21h ; Ký tự đọc đưa vào trong al
mov bl, al ; Cất ký tự trong bl
mov ah, 2
mov dl, 0dh ; Ký tự carriage return
int 21h ; Thực hiện carriage return
mov dl, 0ah ; Ký tự line feed
int 21h ; Thực hiện line feed
mov dl, bl
int 21h ; Hiển thị ký tự
mov ah, 4ch ; Hàm thoát về DOS
int 21h ; exit to DOS
Main Endp
End Main

Bài 7: Viết chương trình nhắc người dùng gõ vào một dòng văn bản. Trên hai dòng tiếp theo, in ra ký tự viết hoa đầu tiên và ký tự viết hoa cuối cùng theo thứ tự alphabetical. Nếu người dùng gõ vào một ký tự thường thì chương trình sẽ thông báo: ‘No capitals’.
.Model Small
.Stack 100h
.Data
Prompt db "Type a line of text: ", 0dh, 0ah, "$"
; hiện dấu nhắc
Nocap_msg db 0dh, 0ah, "No capitals $"
Cap1_msg db 0dh, 0ah,"First capital= "
First db "[ $ "
Cap2_msg db 0dh, 0ah, "Last capital="
Last db "@ $"
.Code
Main Proc
mov ax, @Data ; Khởi tạo đoạn dữ liệu (ds)
mov ds, ax
mov es, ax ; Option
mov ah, 9 ; Hàm hiển thị chuỗi
lea dx, Prompt ; Lấy địa chỉ chuỗi hiển thị
int 21h ; Hiển thị chuỗi
; Đọc và xử lý một dòng văn bản
mov ah, 1 ; Đọc một ký tự
int 21h ; Ký tự đọc được trong al
While:
; Khi ký tự gõ vào không phải là CR thì thực hiện
cmp al, 0dh ; Char = CR?
je End_While ; Yes, thoát
; Nếu ký tự là hoa
cmp al, "A" ;Char>=’A’
jnge End_If ; Không phải ký tự hoa thì nhảy đến End_If
cmp al, "Z" ; Char<=’Z’
jnle End_If ; Không phải ký tự hoa thì nhảy đến End_If
; Nếu ký tự nằm trước biến First (giá trị ban đầu là ‘[‘: ký tự sau ‘Z’)
cmp al, First ; Charjnl Check_last ; >=
; Thì ký tự viết hoa đầu tiên = ký tự
mov First, al ; First = character (al)
; End if
Check_last:
; Nếu ký tự là sau biến Last (giá trị ban đầu là ‘@’: ký tự trước ‘A’)
cmp al, Last ; Char>Last
jng End_If ; <=
; Thì ký tự cuối cùng = ký tự
mov Last, al ; Last = character
; End if
End_If:
; Đọc một ký tự
int 21h ; Ký tự trong al
jmp While ; Lặp lại
End_While:
; In kết quả
mov ah, 9 ; Hàm hiển thị chuỗi ký tự
; If không có chữ hoa nào được nhập thì First=’[‘
cmp First, "[" ; First=’[‘?
jne Caps ; Không, in kết quả
; Then
lea dx, Nocap_msg
int 21h
Caps:
lea dx, Cap1_msg
int 21h
lea dx, Cap2_msg
int 21h
; End_If
; DOS exit
mov ah, 4ch ; Hàm trở về DOS
int 21h ; Về DOS
Main Endp
End Main

Bài 8: Chương trình cho phép nhập 2 số mà tổng của chúng <10.
.model small
.stack 100h
.data
tbao1 db "Go vao 2 so co tong <10:"
tbao2 db 13,10,"Tong cua:"
so1 db ?
db " va "
so2 db ?
db " La"
Sum db -30h, "$"
.code
main proc
;Khoi tao
mov ax,@data
mov ds,ax
mov ah,9
lea dx,tbao1
int 21h
;doc so dong cach dung ham 1 cua ngat 21
mov ah,1
int 21h
mov so1,al
mov dl,","
mov ah,2
int 21h
mov ah,1
int 21h
mov so2,al
call add2so
lea dx,tbao2
mov ah,9
int 21h
mov ah,4ch
int 21h
main endp
add2so proc
mov al,so1
add al,so2
add sum,al
ret
add2so endp
end main

Bài 9:Chương trình nhập một ký tự, nếukhông là ký tự điều khiển thì hiển thị lên màn hình ngược lại thì quay ra.
.model small
.stack 100h
.data
tb1 db "Go vao 1 ky tu:"
xd db 13,10,"$"
.code
main proc
;Khoi tao
mov ax,@data
mov ds,ax
mov ah,1
lea dx,tb1
int 21h
mov bl,al
lea dx,xd
mov ah,9
int 21h
cmp bl,20h
jb ra
mov dl,bl
mov ah,2
int 21h
ra: mov ah,4ch
int 21h
main endp
end main
Về Đầu Trang Go down
http://anhemthainguyen.tk/
 
bai tap vi xu ly hop ngu
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
Thắng Ỉn-Thái Nguyên City-Giao lưu và kết bạn :: Công nghệ thông tin :: Học Tập-
Chuyển đến