Bài tập ASM tổng hợp - Pdf 13

class="bi x0 y0 w1 h1"
BÀI TẬP ASM TỔNG HỢP

Bài 1. Nhập xâu chứa họ và tên đầy đủ của 1 người gồm: HO, ten
dem, ten. Hãy tách tên, họ, tên đệm người đó vào 1 xâu khác và
in ra xâu tách được.

include mylib.mac
code segment
assume cs:code
org 100h
;
start:jmp over
xau db 40 dup('?')
ten db 10 dup('$')
over:
@write'Nhap xau ho va ten : '
lea di,xau ;dua con tro DI vao xau
xor bx,bx ;khai bao bien dem do dai cua xau nhap vao
cld ;thiet lap CF=0
nhap:
mov ah,1
int 21h
cmp al,0dh ;so sanh voi enter
je tachten ;neu la enter thi nhay den nhan tachten
stosb ;nguoc lai se luu ky tu vua nhap vao xau
inc bx ;tang bien dem do dai xau len 1
jmp nhap ;quay tro lai nhap tiep
;

tachten: ;qua tinh tach ten


Bài 2. Tách họ (được sử dụng thư viện)

include mylib.mac
code segment
assume cs:code
org 100h
;
start:jmp over
xau db 50 dup(?)
ho db 30 dup('$')
over:
@write'Nhap xau ho va ten:'
lea di,xau;dua con tro di vao dau xau ho va ten
xor bx,bx;bien dem do dai xau
cld;thiet lap di tu dong tang len 1
nhap:
mov ah,1
int 21h
cmp al,0dh
je tachho
stosb;neu khong phai la enter thi dua vao xau
inc bx;va tang bien dem do dai xau len 1
jmp nhap;quay lai nhap tiep
tachho:
lea di,xau;dua con tro di ve dau xau de duuyet
cld;thiet lap di tu dong tang len 1
mov al,' ';gan al=' 'de so sanh va duyet xau
mov cx,bx;so lan lap toi da
repe scasb ;duyet tu dau xau khi con =nhau.tuc la dang

org 100h
;
start:jmp over
xau db 50 dup(?)
tendem db 20 dup('$')
over:
@write'Nhap xau ho va ten'
lea di,xau
cld
xor bx,bx
nhap:
mov ah,1
int 21h
cmp al,0dh
je ten_dem
stosb
inc bx
jmp nhap
ten_dem:
lea di,xau
cld
mov al,' '
mov cx,bx
repe scasb;duyet chung nao con bang nhau
repne scasb;dunyet chung nao con khac nhau
repe scasb
sub di,1;dua con tro lui lai dung chu cai dau tien cua ten
dem
mov si,di;gan si =vi tri hien tai cua di
lea di,tendem;dua con tro di ve dau xau tendem

over:
mov ah,9
lea dx,tb1
int 21h
mov ah,1
int 21h
cmp al,'2'
jb over
cmp al,'9'
ja over
sub al,30h
mov bl,19
lap:
sub bl,al
inc thuong
cmp bl,al
jae nhay
jmp qua
nhay:
jmp lap
qua:
mov ah,9
lea dx,tb2
int 21h
mov cl,thuong
add cl,30h
mov ah,2
mov dl,cl
int 21h
mov ah,9

jbe nhay
cmp bl,'a'
jb over
cmp bl,'f'
ja over
jmp nhay1
nhay:
mov ah,9
lea dx,tb2
int 21h
sub bl,11h
mov ah,2
mov dl,bl
int 21h
jmp thoat
nhay1:
mov ah,9
lea dx,tb2
int 21h
sub bl,31h
mov ah,2
mov dl,bl
int 21h
;
thoat:
int 20h
code ends
end start

Bài 6.

int 21h
jmp thoat
nhay1:
cmp al,97
jb over
cmp al,122
ja over
mov ah,9
lea dx,tb4
int 21h
;
thoat:
int 20h
code ends
end start

Bài 7.
code segment
assume cs:code
org 100h
;
start:jmp over
tb1 db 'Bang ma asci mo rong la :',10,13,'$'
tb2 db ' ','$'
tb3 db 10,13,'$'
over:
mov ah,9
lea dx,tb1
int 21h
mov cx,128

;
start:jmp over
tb1 db 10,13,'Nhap so co 1 chu so:$'
tb2 db 10,13,'Do la so chan$'
tb3 db 10,13,'DO la so le$'
over:
mov ah,9
lea dx,tb1
int 21h
mov ah,1
int 21h
mov bl,al
sub bl,30h
cmp bl,0
je over
cmp bl,9
ja over
shr bl,1
jc sole
mov ah,9
lea dx,tb2
int 21h
jmp thoat
sole:
mov ah,9
lea dx,tb3
int 21h
;
thoat:
int 20h

add bl,cl
shr bl,1
jc nhay;neu so day ra la so 1 thi chung to tong la 1 so le.nguoc
lai tong la 1 so chan
add bl,30h
mov ah,2
mov dl,bl
int 21h
jmp thoat
nhay:
add bl,30h
mov ah,2
mov dl,bl
int 21h
mov ah,2
mov dl,'.'
int 21h
mov ah,2
mov dl,'5'
int 21h
;
thoat:
int 20h
code ends
end start

Bài 10.
code segment
assume cs:code
org 100h

int 21h
jmp thoat
nhay:
xchg bl,cl
jmp inra
;
thoat:
int 20h
code ends
end start

Bài 11.
code segment
assume cs:code
org 100h
;
start:jmp over
tb1 db 10,13,'Nhap 1<=N<=5 :$'
tb2 db 10,13,'tong tu 1 den N la:$'
tong db 0
over:
mov ah,9
lea dx,tb1
int 21h
mov ah,1
int 21h
cmp al,'1'
jb over
cmp al,'5'
ja over

thoat:
int 20h
code ends
end start

Bài 12.
;bieu dien ma asci cua 1 ky tu o dang nhi phan va hecxa
; Copyright By : le xuan chien 47k-tin
code segment
assume cs:code
org 100h
;
start:jmp over
tb1 db 'Nhap 1 ky tu :$'
tb2 db 10,13,'Ma asci dang nhi phan la:$'
tb3 db 10,13,'Ma asci dang hecxa la:$'
over:
mov ah,9
lea dx,tb1
int 21h
;
mov ah,1
int 21h
mov bl,al;gan so vua nhap vao bl
;
mov ah,9
lea dx,tb2
int 21h
;
mov cx,8;so lan duyet

add dl,30h;neu nhu <=9 thi in chu so
jmp qua
chu_cai:
add dl,37h;Vi 37h chinh la 55.Nhu vay muon in ra
chu cai ta phai cong them 55 nua
qua:
int 21h
loop lap1
mov ah,2
mov dl,'h'
int 21h
;
thoat:
int 20h
code ends
end start

Bài 13.
Code Segment
Assume cs: Code
Org 100h
Start: jmp over
x1 db 'Nhap so nhi phan $'
x2 db 10, 13, 'Chu so co nghia la 1$'
over:
mov ah,9
lea dx,x1
int 21h
xor bx,bx;khoi tao 1 thanh ghi trong de chua so nhap vao
mov ah,1

int 20h
Code Ends
End Start

Bài 14. Nhập xâu chứa họ và tên đầy đủ của 1 người gồm :HO,
ten dem, ten. Hãy tách tên, họ, tên đệm người đó vào 1 xâu khác
và in ra xâu tách được.

include mylib.mac
code segment
assume cs:code
org 100h
;
start:jmp over
xau db 40 dup('?')
ten db 10 dup('$')
over:
@write'Nhap xau ho va ten : '
lea di,xau ;dua con tro DI vao xau
xor bx,bx ;khai bao bien dem do dai cua xau nhap vao
cld ;thiet lap CF=0
nhap:
mov ah,1
int 21h
cmp al,0dh ;so sanh voi enter
je tachten ;neu la enter thi nhay den nhan tachten
stosb ;nguoc lai se luu ky tu vua nhap vao xau
inc bx ;tang bien dem do dai xau len 1
jmp nhap ;quay tro lai nhap tiep
;

code ends
end start

Bài 15. Xâu đối xứng (được sử dụng thư viện).
include mylib.mac
code segment
assume cs:code
org 100h
;
start:jmp over
xau db 50 dup(?)
xaudao db 50 dup(?)
over:
@write'Nhap xau:$'
lea di,xau
cld
xor bx,bx
nhap:
mov ah,1
int 21h
cmp al,0dh
je thongbao
stosb
push ax;tuc la ta phai dua ky tu nhap vao stack
inc bx
jmp nhap
thongbao:
lea di,xaudao
mov cx,bx
lap:

over:
@write'Nhap xau :'
mov cx,0
lea di,xau
cld
nhap:
mov ah,1
int 21h
cmp al,0dh
je dem
stosb
inc cx
jmp nhap
dem:
mov al,' '
lea di,xau
lap:
repe scasb;bo dau cach trong
jcxz inkq
inc d
repne scasb;bo qua tu vua dem
cmp cx,0
jnz lap
inkq:
@xuong_dong
@write'so tu cua xau la:'
mov ax,d
call in_so
;
thoat:

cld
lap:
mov al,xau[bx]
cmp al,'A'
jb qua
cmp al,'Z'
ja qua
stosb
qua:
inc bx
loop lap
@xuong_dong
@write'Xau ban dau la :'
mov ah,9
lea dx,xau
int 21h
@xuong_dong
@write'xau chu hoa la:'
mov ah,9
lea dx,xauhoa
int 21h
;
thoat:
int 20h
include proc.asm
code ends
end start

Bài 18. Viết chương trình trong chế độ văn bản thực hiện: Xóa
màn hình, đặt con trỏ vào giữa màn hình, ần INSERT liên tục để


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status