1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập ASM tổng hợp

34 615 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Bài tập ASM tổng hợp
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại Bài tập
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 147,75 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tổng hợp một số dạng bài tập lập trình ngôn ngữ ASM

Trang 2

@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

dec di ;giam di 1 mov al,' ' ;gan al= ' ' mov cx,bx ;so lan duyet toi da std ;thiet lap CF=1 de duyet lui trong xau.Tuc la

di tu dong giam di 1 sau moi cong lap

repe scasb ;duyet trong khi con = trong

Trang 3

repne scasb ;duyet trong khi con khac nhau.Neu nhu = nhau,tuc la gap dau cach thi se tang di len 2 de chi di tro vao chu cai dau tien cua xau

add di,1 ;cho DI tro vao ten mov si,di ;gan SI=DI lea di,ten ;dua con tro DI vao xau ten sub bx,cx ;lay do dai cua xau - cx.Tuc la con lai do dai cua phan ten.O day CX duox tru dan sau moi lan lap nen ta moi lay bx-cx

mov cx,bx ;cx=bx-cx.Tuc la gan so lan lap chuyen dulieu vao xau ten

cld ;thiet lap CF=0 de DI tu dong tang dan sau moi lan lap

rep movsb ;Lap chuyen du lieu vao xau ten

@xuong_dong

@write'Ten tach duoc la:' mov ah,9

lea dx,ten int 21h

Trang 4

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 dau cach trong

sub di,1;tuc la dua con tro di lui lai 1 vi tri de trung voi chu cai dau tien cua ho

mov si,di lea di,ho lap:

mov al,[si];dua [si] vao al cmp al,' ';so sanh voi ' '

je nhay ;neu nhu =' ' thi thoat/nguoc lai luu vao xau ho

movsb loop lap nhay:

@xuong_dong

@write'Xau ho la:' mov ah,9

lea dx,ho int 21h

; - thoat:

Trang 5

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

Trang 6

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 lap:

mov al,[si]

cmp al,' '

je nhay movsb loop lap nhay:

@xuong_dong

@write'Ten dem cua nguoi do la:' mov ah,9

lea dx,tendem int 21h

Trang 7

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 lea dx,tb3 int 21h add bl,30h mov ah,2 mov dl,bl int 21h

; -

thoat:

int 20h

code ends

Trang 8

tb1 db 10,13,'Nhap 1 chu so hecxa:$'

tb2 db 10,13,'So thap phan tuong ung la: 1$' over:

mov ah,9 lea dx,tb1 int 21h mov ah,1 int 21h mov bl,al cmp bl,'A'

jb over cmp bl,'F' 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

Trang 9

lea dx,tb2 int 21h sub bl,31h mov ah,2 mov dl,bl int 21h

Trang 11

mov bh,0 inra:

mov ah,2 mov dl,bl int 21h mov ah,9 lea dx,tb2 int 21h inc bl inc bh cmp bh,10

jb nhay

mov bh,0 mov ah,9 lea dx,tb3 int 21h nhay:

Trang 12

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

Trang 13

mov ah,1 int 21h mov bl,al sub bl,30h mov ah,9 lea dx,tb2 int 21h mov ah,1 int 21h mov cl,al sub cl,30h mov ah,9 lea dx,tb3 int 21h 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

Trang 15

int 21h

jmp thoat

nhay:

xchg bl,cl jmp inra

over:

mov ah,9 lea dx,tb1 int 21h mov ah,1 int 21h cmp al,'1'

jb over cmp al,'5'

ja over mov cl,1 sub al,30h tinh:

add tong,cl inc cl

cmp cl,al

ja qua1

Trang 16

jmp tinh qua1:

mov ah,9 lea dx,tb2 int 21h mov bl,tong cmp bl,9

ja qua

add bl,30h;doi thanh ky tu de in ra man hinh mov ah,2

mov dl,bl int 21h jmp thoat qua:

add bl,30h;doi thanh ky tu de in ra man hinh sub bl,10

mov ah,2 mov dl,'1' int 21h mov ah,2 mov dl,bl int 21h

;bieu dien ma asci cua 1 ky tu o dang nhi phan va hecxa

; Copyright By : le xuan chien 47k-tin

Trang 17

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 lap:

rol bl,1;lenh quay trai

jc in_1 mov ah,2 mov dl,'0' int 21h jmp nhay in_1:

mov ah,2 mov dl,'1' int 21h nhay:

loop lap mov ah,9

lea dx,tb3 int 21h

; - mov ah,2;chuc nang in 1 ky tu mov cx,2;so lan lap in 2 chu so hecxa lap1:

xor dx,dx;tuc la dh=0 va dl=0

Trang 18

day:

shl bl,1;dich trai 1 bit rcl dl,1;quay trai 1 bit inc dh;tang dh len 1 cmp dh,4;neu chua du 4 bit thi day tiep

jb day;neu du roi thi ra khoi vong lap DAY cmp dl,9;kiem tra xem 4 bit duoc day ra co gia tri =?

ja chu_cai;neu nhu >9 thi ta phai in chu cai.tuc la so hecxa

add dl,30h;neu nhu <=9 thi in chu so jmp qua

Trang 19

xor bx,bx;khoi tao 1 thanh ghi trong de chua so nhap vao mov ah,1

nhaptiep:

int 21h

cmp al,0dh

je thoat ;dung thi nhap xong

sub al,30h ;doi ra so

shl bx,1;day trai 1 bit de lay cho cho so vua nhap vao

or bl,al ;cong so moi nhap

; -

int 20h

Code Ends

End Start

Trang 20

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

@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

dec di ;giam di 1 mov al,' ' ;gan al= ' ' mov cx,bx ;so lan duyet toi da std ;thiet lap CF=1 de duyet lui trong xau.Tuc la

di tu dong giam di 1 sau moi cong lap

repe scasb ;duyet trong khi con = trong repne scasb ;duyet trong khi con khac nhau.Neu nhu = nhau,tuc la gap dau cach thi se tang di len 2 de chi di tro vao chu cai dau tien cua xau

Trang 21

add di,1 ;cho DI tro vao ten mov si,di ;gan SI=DI lea di,ten ;dua con tro DI vao xau ten sub bx,cx ;lay do dai cua xau - cx.Tuc la con lai do dai cua phan ten.O day CX duox tru dan sau moi lan lap nen ta moi lay bx-cx

mov cx,bx ;cx=bx-cx.Tuc la gan so lan lap chuyen dulieu vao xau ten

cld ;thiet lap CF=0 de DI tu dong tang dan sau moi lan lap

rep movsb ;Lap chuyen du lieu vao xau ten

@xuong_dong

@write'Ten tach duoc la:' mov ah,9

lea dx,ten int 21h

cld xor bx,bx nhap:

Trang 22

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:

pop ax;lay ky tu ra tu stack stosb

loop lap lea di,xaudao lea si,xau mov cx,bx repe cmpsb

Trang 23

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:

Trang 24

mov ah,1 int 21h cmp al,0dh

je nhay stosb inc cx jmp nhap nhay:

lea di,xauhoa cld

lap:

mov al,xau[bx]

cmp al,'A'

jb qua cmp al,'Z'

ja qua stosb qua:

Trang 25

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

mov ax,0003h;o day AH=0,AL=3 la che do 25*80,16 mau.Che

do van ban chuan

int 10h ;xoa man hinh mov ah,2 ;dat vi tri con tro mov bh,0;so trang bat dau tu 0.Mac dinh trang cua man hinh bat dau tu trang 0

mov dh,000ch ;toa do dong mov dl,0028h ;toa do cot

Trang 26

int 10h ;dat vi tri con tro lap:

mov ah,0 int 16h cmp ah,1 ;bat phim ESC thoat

je thoat mov ah,0 ;bat phim int 16h ;bat phim duoc bam cmp ah,81 ;phim INSERT

je qua mov ah,1 mov cx,0C0Dh;tra con tro ve kich thuoc ban dau int 10h

qua:

mov ah,0 int 16h cmp ah,1 ;bat phim ESC thoat

je thoat mov ah,0 ;bat phim int 16h ;bat phim duoc bam cmp ah,81

je lap mov ah,1 mov cx,000Dh;dat con tro ve kich thuoc cuc dai int 10h

Trang 27

Bài 19 Lập chương trình trong chế độ văn bản thực hiện: Xóa màn hình, đặt trỏ vào giữa, phóng to con trỏ Sử dụng phím mũi tên để di chuyển con trỏ lên/xuống Khi con trỏ chạm mép màn hình thì không di chuyển nữa

; - mov ah,1;thiet lap do lon cho con tro mov cx,000Dh;do lon cuc dai cua con tro int 10h

; - lap:

mov ah,0;bat phim int 16h;ngat 16h cmp ah,1;so sanh voi ESC.Bat phim ESC

je thoat;neu da nhan ESC thi thoat ve DOS.nguoc lai se cmp ah,72;so sanh voi UP

jne down ;neu nhu khac UP thi mov ah,3;doc toa do cua con tro mov bh,0;trang 0

int 10h dec dh;giam dong cua con tro cmp dh,1

jb nhay1

Trang 28

; - mov ah,2;thiet lap vi tri con tro int 10h

nhay1:

mov dh,0 jmp lap

down:

cmp ah,80 jne lap mov ah,3;doc toa do cua con tro mov bh,0;so trang

int 10h inc dh;tang dong cua con tro cmp dh,24

ja nhay

; - mov ah,2;thiet lap vi tri cua con tro int 10h

nhay:

mov dh,25 jmp lap

; - thoat:

int 20h

code ends

end start

Trang 29

Bài 20 Lập chương trình trong chế độ văn bản thực hiện: Xóa màn hình, đặt trỏ vào giữa, phóng to con trỏ Sử dụng phím mũi tên để di chuyển con trỏ lên/xuống Khi con trỏ chạm mép màn hình thì không di chuyển nữa Thoát bằng phím Esc

; - mov ah,1;thiet lap do lon cho con tro mov cx,000Dh;do lon cuc dai cua con tro int 10h

; - lap:

mov ah,0;bat phim int 16h;ngat 16h cmp ah,1;so sanh voi ESC.Bat phim ESC

je thoat;neu da nhan ESC thi thoat ve DOS.nguoc lai se cmp ah,75;so sanh voi left

jne right ;neu nhu khac left thi mov ah,3;doc toa do cua con tro mov bh,0;trang 0

int 10h dec dl;giam dong cua con tro cmp dl,1

jb nhay1

Trang 30

; - mov ah,2;thiet lap vi tri con tro int 10h

nhay1:

mov dl,0 jmp lap

right:

cmp ah,77 jne lap mov ah,3;doc toa do cua con tro mov bh,0;so trang

int 10h inc dl;tang dong cua con tro cmp dl,79

ja nhay

; - mov ah,2;thiet lap vi tri cua con tro int 10h

nhay:

mov dl,80 jmp lap

Bài 21 Viết chương trình sử dụng chức năng cuộn màn hình để

in 8 dải màu nền trong chế độ văn bản 16 màu

Trang 31

int 10h;goi ngat 10h

; -goi chuc nang cuon man hinh mov ah,6 ;chuc nang cuon man hinh len tren

mov al,0;so dong bi cuon.O day la cuon ca cua so mov bh,0000h;thuoc tinh mau ban dau

int 10h;goi ngat 10h

; -toa do ban dau mov ch,0000h;toa do y1

mov cl,0000h;toa do x1 mov dh,0019h;toa do y2.Tuc la dong thu 25 mov dl,000Ah;toa do x2

; - lap:

add cl,10;thay doi toa do cot add dl,10;thay doi toa do dong add bh,10h;thay doi mau cua tung cua so cmp cl,70;so sanh voi chieu rong cua man hinh jbe lap ;neu nhu nho hon thi quay lai lap tiep

mov ah,0;chuc nang goi lenh bat phim

int 16h;goi ngat 16h

Trang 32

mov ax,0b800h ;bo nho man hinh o che do van ban bat dau

Trang 33

over:

mov ax,0013h;dat che do do hoa 256 mau int 10h

; - mov cx,0;toa do cot

mov dx,100;toa do dong mov al,0;mau ban dau cua diem thu nhat lap:

mov ah,0ch;hien thi 1 pixel int 10h;goi ngat 10h

inc cx inc al cmp cx,256;so diem anh duoc ve jbe lap

; - mov ah,0;bat phim duoc bam int 16h

; - mov ax,3h;tro lai che do van ban int 10h

tb1 db 'nhap 1 day ky tu:$'

tb2 db 10,13,'Cac chu cai in hoa va dau cach trong la: $' over:

mov ah,9 lea dx,tb1

Trang 34

int 21h nhap:

mov ah,8 int 21h cmp al,27

je thoat cmp al,32

je nhay cmp al,65

jb nhap cmp al,90

ja nhap nhay:

mov ah,2 mov dl,al int 21h jmp nhap

mov ah,9 lea dx,tb2 int 21h

Ngày đăng: 30/04/2014, 00:19

TỪ KHÓA LIÊN QUAN

w