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

Các câu hỏi và đáp án môn vi xử lý

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

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 119 KB

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

Nội dung

đề ôn tập môn vi xử lý

Trang 1

1 Viết chương trình

hợp ngữ dạng .EXE

nhập vào từ bàn phím 2

số nguyên 0<=a, b<=9.

Tính tổng a+b và hiển

thị kết quả ra màn

hình Ví dụ: a=4, b=5,

tổng là: 9; a=6, b=7,

tổng là: 13.

.model small

.stack 100h

.data

x1 db 10,13, 'Nhap a=$'

x2 db 10,13, 'Nhap b=$'

x3 db 10,13, 'Tong a+b= $'

.code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,x1 int 21h

nhapa:

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

jb nhapa cmp al,'9'

ja nhapa mov bl,al

nhapb:

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

jb nhapb

cmp al,'9'

ja nhap add bl,al sub bl,30h mov ah,9 lea dx,x3 int 21h cmp bl,'9'

ja lonhon9 mov ah,2 mov dl,bl int 21h jmp kthuc

lonhon9:

mov ah,2 mov dl,'1' int 21h sub bl,10 mov dl,bl int 21h kthuc:

mov ah,4ch int 21h

main endp end main

2 Viết chương trình

hợp ngữ dạng .EXE

nhập vào từ bàn phím 2

số nguyên 0<=a, b<=9.

Tính hiệu a-b và hiển

thị kết quả ra màn

hình Ví dụ: a=8, b=5,

hiệu là: 3; a=4, b=7,

hiệu là: -3.

.model small

.stack 100h

.data

x1 db 10,13, 'Nhap a=$'

x2 db 10,13, 'Nhap b=$'

x3 db 10,13, 'Hieu a-b= $'

.code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,x1 int 21h

nhapa:

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

jb nhapa cmp al,'9'

ja nhapa mov bl,al

nhapb:

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

jb nhapb

cmp al,'9'

ja nhapb mov cl,al mov ah,9 lea dx,x3 int 21h cmp bl,cl jae lonhon mov ah,2 mov dl,'-' int 21h xchg bl,cl

lonhon:

sub bl,cl mov ah,2

mov dl,bl int 21h mov ah,4ch int 21h

main endp end main

.model tiny

.stack 100h

.data

tb1 db 'Nhap a=$'

tb2 db 10,13, 'Nhap

b=$'

tb3 db 10,13, 'Hieu 2 so

da nhap la: $'

.code main proc mov ah,9 lea dx,tb1 int 21h mov ah,1 int 21h mov bl,al

mov ah,9

lea dx,tb2 int 21h mov ah,1 int 21h mov cl,al

mov ah,9 lea dx,tb3 int 21h

cmp bl,cl jae thoat xchg bl,cl

mov ah,2 mov dl,'-' int 21h thoat:

sub bl,cl add bl,30h

mov ah,2 mov dl,bl int 21h mov ah,4ch int 21h main endp end main

3 Viết chương

trình hợp ngữ

dạng EXE nhập vào

từ bàn phím 1 chữ số

Hecxa từ A->F (chữ

in hoa), hãy in ra

màn hình số thập

phân tương ứng.

Nếu nhập sai : Yêu

cầu nhập lại Ví dụ :

Nhập vào A, số thập

phân tương ứng là 10.

.model tiny stack 100h data tb1 db 10, 13, 'Nhap chu so Hecxa (kt) = $'

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

.code main proc mov ax,@data mov ds,ax

nhap: Mov ah,9 lea dx,tb1 int 21h mov ah,1 int 21h

cmp al,'A'

jb nhap cmp al,'F'

ja nhap sub al,11h mov bl,al

mov ah,9 lea dx,tb2 int 21h

mov ah,2 mov dl,'1' int 21h mov dl,bl int 21h mov ah,4ch int 21h main endp end main

4 Viết chương

trình hợp ngữ

dạng .EXE nhập vào

từ bàn phím 1 chữ số

Hecxa từ a->f (chữ thường), hãy in ra màn

hình số thập phân tương ứng Nếu nhập

sai : Yêu cầu nhập lại.

Ví dụ : Nhập vào a, số

Trang 2

thập phân tương ứng

là 10.

.model tiny

.stack 100h

.data

tb1 db 10, 13, 'Nhap

chu so Hecxa (kt) = $'

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

$' code main proc mov ax,@data mov ds,ax

nhap: Mov ah,9

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

jb nhap cmp al,'f'

ja nhap

sub al,11h mov bl,al

mov ah,9 lea dx,tb2 int 21h mov ah,2 mov dl,'1'

int 21h mov dl,bl int 21h mov ah,4ch int 21h main endp end main

5 Viết chương

trình hợp ngữ

dạng .EXE nhập vào

từ bàn phím 1 chữ số.

Nếu nhập sai yêu cầu

nhập lại Hãy xác định

đó là số chẵn hay số lẻ

và thông báo kết quả

ra màn hình ?

.model tiny

.stack 100h

.data

debai db 10,13, 'Kiem tra tinh chan le cua 1 ky

tu so$' tb1 db 10,13, 'Nhap

ky tu so can kiem tra (kt):$'

tb2 db 10,13, 'Do la

so chan$' tb3 db 10,13, 'Do la

so le$' tb4 db 10,13, 'Hay nhap lai voi

(0<=kt<=9)$'

.code main proc mov ah,9 lea dx,debai int 21h mov ah,9 lea dx,tb1 int 21h nhap:

mov ah,1 int 21h

cmp al,'0'

jb nhap cmp al,'9'

ja nhap and ax,000fh shr ax,1

jc le mov ah,9 lea dx,tb2 int 21h jmp kt

le:

mov ah,9 lea dx,tb3 int 21h kt:

mov ah,4ch int 21h main endp end main

6 Viết chương

trình hợp ngữ

dạng .EXE nhập vào

từ bàn phím 2 số a, b

(0<=a, b<=9) Hãy tính

trung bình cộng của

chúng Ví dụ : a=5,

b=4, TBC=4.5 ; a=5,

b=7, TBC=6.0.

.model tiny

.stack 100h

.data

x1 db 'Nhap a:$'

x2 db 'Nhap b:$' x3 db 'Trung binh cua

a va b la:$' x4 db '.5$' x5 db '.0$'

.code main proc

mov ah,9 lea dx,x1 int 21h

nhapa:

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

jb nhapa cmp al,'9'

ja nhapa sub al,30h mov bl,al mov ah,9 lea dx,x2 int 21h

nhapb:

mov ah,1 int 21h

cmp al,'0'

jb nhapb cmp al,'9'

ja nhapb sub al,30h add bl,al mov ah,9 lea dx,x3 int 21h mov cl,bl shr cl,1 mov ah,2 mov dl,cl add dl,30h int 21h mov dl,'.' int 21h shr bl,1

jc le mov ah,2 mov dl,'0' int 21h jmp kt

le:

mov ah,2 mov dl,'5' int 21h

kt:

mov ah,4ch int 21h

main endp end main

7 Cho AX chứa 1

số nguyên không dấu

nằm trong phạm vi 0 ÷

65535 Viết chương

trình hợp ngữ

dạng EXE in số đó ra

màn hình theo chiều

ngược lại Ví dụ :

AX=12345 In ngược lại

là : 54321.

.model tiny stack 100h data ;debai db 10,13, 'In day so 12345 nguoc lai la:$'

.code main proc ;mov ah,9 ;lea dx,debai ;int 21h ;mov ax,12345 mov bx,10 mov cx,0

lap:

xor dx,dx div bx push ax mov ah,2

or dl,30h int 21h pop ax

cmp ax,0

ja lap mov ah,4ch int 21h main endp end main

Trang 3

8 Cho AX chứa 1 số

nguyên không dấu nằm

trong phạm vi 0 ÷

65535 Viết chương

dạng .EXE kiểm tra

xem số trong AX có

phải là số đối xứng

không Ví dụ :

AX=12321 Hiển thị ra

màn hình là : Là số đối xứng.

.model small stack 100h data

X1 db 'la so doi xung$' X2 db 'la so khong doi xung$'

.code main proc

mov ax,@data

mov ds,ax mov es,ax push ax mov bx,0 mov cx,10

daoso:

push ax mov ax,10 mul bx mov bx,ax mov dx,0

pop ax div cx add bx,dx cmp ax,0 jne daoso push ax cmp ax,bx

je doixung mov ah ,9 lea dx,x2 int 21h

jmp kt

doixung:

mov ah ,9 lea dx,x1 int 21h

kt:

mov ah,4ch int 21h

main endp end main

9 Viết chương

trình hợp ngữ

dạng EXE nhập 1 ký tự

bất kỳ từ bàn phím.

Hãy in mã ASCII của

nó ở dạng nhị phân Ví

dụ : Ký tự là : A, Mã

ASCII dạng nhị phân

là : 01000001b

.model tiny

.stack 100h

.data

x1 db 10,13, 'Nhap mot ky tu:$'

x2 db 10,13, 'Ma ASII

o dang nhi phan la:$'

n db ? code main proc mov ah,9 lea dx,x1 int 21h mov ah,1 int 21h mov bl,al

mov ah,9 lea dx,x2 int 21h mov cx,8 mov n,0 lap:

shl bl,1 inc n

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

inso1:

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

cmp n,4

jb tiep mov ah,2 mov dl,20h int 21h mov n,0

tiep:

loop lap mov ah,2 mov dl,'b' int 21h mov ah,4ch int 21h main endp end main

10 Viết chương trình

hợp ngữ dạng .EXE

nhập 1 ký tự bất kỳ từ

bàn phím Hãy in mã

ASCII của nó ở dạng

Hecxa Ví dụ : Ký tự

là : A, Mã ASCII dạng

Hexa là : 41h (chú

thích : nhập vào

A<=kt<F đổi sang

ASCII dạng Hexa)

.model small stack 100h data x1 db 10,13, 'Nhap mot ky tu:$'

x2 db 10,13, 'Ma ASCII o dang Hexa la:$' code

main proc mov ah,9 lea dx,x1 int 21h

mov ah,1 int 21h mov bl,al

mov ah,9 lea dx,x2 int 21h mov al,bl mov cl,4 shr al,cl cmp al,9 jbe inra

add al,7 inra:

mov dl,al add dl,30h mov ah,2 int 21h and bl,0fh cmp bl,9 jbe inra1 add al,7 inra1:

mov dl,bl add dl,30h mov ah,2 int 21h

mov ah,2 mov dl,'h' int 21h mov ah,4ch int 21h main endp end main

11 Viết chương trình

hợp ngữ dạng .EXE

nhập 1 ký tự bất kỳ từ

bàn phím Hãy in mã

ASCII của nó ở dạng

thập phân Ví dụ : Ký

tự là : A, Mã ASCII

dạng thập phân là :

65d (In ra 13d … ???)

.model small

.stack 100h

.data

x1 db 13,10, 'Nhap mot ky tu bat ky:$' x2 db 13,10, 'Ma ascii cua ky tu vua nhap duoi dang thap phan:$' code

main proc mov ax,@data mov ds,ax nhaplai:

mov ah,9 lea dx,x1 int 21h

mov ah,1 int 21h mov ah,7 int 21h mov bl,al mov ah,9 lea dx,x2 int 21h mov cx,8 mov ax,0 mov dx,1 tp:

shr bl,1 jnc tiep add ax,dx

tiep:

shl dx,1 loop tp mov bx,10

chia:

xor dx,dx div bx push dx inc cx

cmp ax,0 jne chia mov ah,2 hthi:

pop dx add dx,30h int 21h loop hthi mov ah,2 mov dl,'d' int 21h mov ah,4ch int 21h

Trang 4

main endp end main

12 Cho BX chứa một số

nhị phân 16bit (VD :

BX=1100 0011 1011

0110b) Viết chương

dạng .EXE in ra màn

hình nội dung trong

thanh ghi BX ra dạng

Hexa (Ví dụ : Dạng

hexa là : C3B6h)

.model small

.stack 100h

.data

x1 db 'Ma hecxa:$'

.code main proc mov ah,9 lea dx,x1 int 21h push bx mov cl,12 shr bx,cl call hien pop bx push bx mov cl,8 shr bx,cl

and bx,000fh call hien pop bx push bx mov cl,4 shr bx,cl and bx,000fh call hien pop bx and bx,000fh call hien mov ah,4ch int 21h

hien proc push ax push bx push dx cmp bx,9 jbe chuso add bx,7 chuso:

mov dx,bx mov ah,2 add dx,30h int 21h pop dx

pop ax pop ax ret hien endp end hien mov ah,4ch int 21h main endp end main

13 Cho BX chứa một số

nhị phân 16bit (VD :

BX=1100 0011 1011

0110b) Viết chương

dạng .EXE in ra màn

hình nội dung trong

thanh ghi BX ra dạng

thập phân (Ví dụ :

Dạng thập phân là : 50102d)

.model tiny stack 100h data x1 db 'Ma thap phan:$' .code

main proc mov ah,9 lea dx,x1

int 21h mov cx,16 mov ax,0 mov dx,1 tiep:

shr bx,1 jnc tinhmu add ax,dx tinhmu:

shl dx,1

jmp tiep mov bx,10 mov cx,0 chia:

xor dx,dx div bx push dx inc cx cmp ax,0 jne chia

mov ah,2 pop dx add dl,30h int 21h

kt:

mov ah,4ch int 21h main endp end main

14 Cho BX chứa 1 số

Hexa 4 chữ số (VD : BX

= A3B4h) Viết chương

trình hợp ngữ

dạng .EXE in BX ra

màn hình dạng nhị

phân, mỗi nhóm 4 bit

cách nhau 1 dấu trống.

Ví dụ : Dạng nhị phân

là : 1010 0011 1011

0100b.

.model tiny stack 100h data debai db 10,13, 'In a3b4h sang dang nhi phan:$'

n db ? code main proc mov ah,9 lea dx,debai int 21h

mov bx,0a3b4h mov cx,16 mov ah,2 mov n,0

lap:

shl bx,1 inc n

jc inso1 mov dl,'0' jmp inra

inso1:

mov dl,'1' inra:

int 21h cmp n,4

jb tiep mov ah,2 mov dl,20h int 21h mov n,0

tiep:

loop lap mov dl,'b' mov ah,2 int 21h mov ah,4ch int 21h main endp end main

15 Cho BX chứa 1 số

Hexa 4 chữ số (VD : BX

= A3B4h) Viết chương

trình hợp ngữ

dạng .EXE in BX ra

màn hình dạng thập

phân Ví dụ : Dạng thập

phân là : 41908d.

16 Cho AX chứa 1 số

nguyên có dấu nằm

trong phạm vi -32768 ÷

32767 Viết chương trình hợp ngữ dạng .EXE in AX ra màn hình ở dạng thập phân Ví dụ : AX =

1234, In ra AX =1234, AX= - 1234 In ra : AX=

-1234.

.model tiny stack 100h data

x1 db 10,30, 'Xau trong AX la:$' code

main proc mov ah,9 lea dx,x1 int 21h mov ax,-12345 ;hay ax=12345

or ax,ax jns duong push ax

mov ah,2 mov dl,'-' int 21h pop ax neg ax duong:

mov bx,10 xor cx,cx chiatiep:

xor dx,dx div bx push dx

inc cx cmp ax,0

ja chiatiep mov ah,2 inra:

pop dx

or dl,30h int 21h loop inra pop dx pop cx pop bx pop ax

Trang 5

mov ah,4ch

int 21h

main endp end main

17 Cho một xâu ký tự

S, viết chương trình

hợp ngữ dạng EXE tạo

ra xâu S1 là xâu đảo

ngược của xâu S và in

xâu S1 ra màn hình.

.model small

.stack 100h

.data

s db 80 dup(?) s1 db 80 dup(?) x1 db "Xau dao cua S la:$"

.code main proc mov ax, @data mov ds,ax mov es,ax mov cx,0 lea si,s

cld lap:

lodsb cmp al,'$'

je tiep inc cx jmp lap tiep:

sub si,2 lea di,s1

cld dao:

lodsb stosb sub si,2 loop dao mov al,'$' stosb mov ah,9 lea dx,x1 int 21h

lea dx,s1 int 21h mov ah, 4ch int 21h main endp end main

18 Cho 2 xâu ký tự S1,

S2, viết chương trình

hợp ngữ dạng .EXE

kiểm tra xem xâu S1 và

xâu S2 có bằng nhau

không? Hiển thị kết quả

ra màn hình

.model small

.stack 100h

.data

tb1 db 'Xau S1 bang

S2$'

tb2 db 'Xau S1khong bang S2$'

s1 db 'duch$' s2 db 'duch$' code

main proc mov ax,@data mov ds,ax mov es,ax

mov cx,0 lea si,s1 cld dems1:

lodsb cmp al,'$'

je tiep inc cx jmp dems1

tiep:

mov dx,0 lea si,s2 cld dems2:

lodsb cmp al,'$'

je ss1 inc dx jmp dems2 ss1:

cmp cx,dx jne kbang lea si,s1 lea di,s2 cld repe cmpsb cmp cx,0 jne kbang mov ah,9

lea dx,tb1 int 21h jmp kt kbang:

mov ah,9 lea dx,tb2 int 21h

kt:

mov ah,4ch int 21h main endp end main

19 Cho xâu ký tự S,

viết chương trình hợp

ngữ dạng .EXE kiểm

tra xem xâu S có phải là

xâu đối xứng hay

không? Hiển thị kết quả

ra màn hình.

.model small

.stack 100h

.data

s db 'AbbA$'

s1 db 80 dup(?)

x1 db 13,10, 'xau doi xung$'

x2 db 13,10, 'khong doi xung$'

code main proc mov ax,@data mov ds,ax mov es,ax mov cx,0 lea si,s cld cuoixau:

lodsb

cmp al,'$'

je daoxau inc cx jmp cuoixau

daoxau:

sub si,2 lea di,s1 push cx std ;cld xaudao:

lodsb;lay 1 ki tu trong xau ra AL stosb; nap vao s1

add di,2 loop xaudao lea si,s lea di,s1 cld pop cx ssdx:

cmpsb jne kdx loop ssdx mov ah,9 lea dx,x1 int 21h jmp ketthuc

kdx:

mov ah,9 lea dx,x2 int 21h ketthuc: mov ah,4ch int 21h main endp end main

Trang 6

20 Cho xâu ký tự S,

viết chương trình hợp

ngữ dạng EXE đếm số

ký tự là chữ số có trong

S Hiển thị kết quả ra

màn hình.

.model small

.stack 100h

.data

s db 'ha noi2013$'

x1 db 13,10, 'So ky tu

la chu so trong xau=$'

code main proc mov ax,@data mov ds,ax mov es,ax mov cx,0 lea si,s cld dem:

lodsb cmp al,'$'

je inra cmp al,'0'

jb dem cmp al,'9'

ja dem inc cx jmp dem inra:

lea dx,x1 mov ah,9 int 21h xor ax,ax mov ax,cx xor cx,cx

mov bx,10

;xor ax,ax ;mov ax,cx ;xor cx,cx ;xor bx,bx ;mov bx,10

chia:

xor dx,dx div bx push dx inc cx cmp ax,0

jne chia mov ah,2

hthi:

pop dx add dx,30h int 21h loop hthi

mov ah,4ch int 21h main endp end main

21 Cho xâu ký tự S,

viết chương trình hợp

ngữ dạng EXE nhập từ

bàn phím một ký tự ch

và kiểm tra xem ch có

trong xâu S hay không?

Nếu ký tự ch có trong

xâu S thì hiển thị ra

màn hình vị trí đầu tiên

xuất hiện ký tự trong

xâu S.

.model small

.stack 100h

.data

s db 'tran duc hanh';db

100 dup(0)

x1 db 10,13, 'Nhap ch:

$' x2 db 'Khong xuat hien$'

x3 db 10,13, 'Xuat hien$'

x4 db 10,13, 'Vi tri xuat hien dau tien trong xau:$'

code main proc mov ax,@data mov ds,ax mov es,ax

lea dx,x1 mov ah,9

int 21h mov ah,1 int 21h mov bl,al lea si,s cld lap:

lodsb cmp al,bl

je kq1 cmp al,'$'

je kq2 jmp lap kq1:

lea dx,x3 mov ah,9

int 21h lea dx,x4 mov ah,9 int 21h mov ax,si mov bx,10 mov cx,0

chia:

xor dx,dx div bx push dx inc cx cmp ax,0 jne chia mov ah,2

lap1:

pop dx add dx,30h int 21h loop lap1 jmp thoat

kq2:

lea dx,x2 mov ah,9 int 21h

thoat:

mov ah,4ch int 21h main endp end main

22 Cho xâu ký tự S,

viết chương trình hợp

ngữ dạng EXE đếm số

lượng các chữ cái

thường có trong xâu S.

Hiển thị kết quả ra màn

hình.

.model small

.stack 100h

.data

s db 'ha noi2013$'

x1 db 13,10, 'So ky tu

la chu so trong xau=$'

code main proc mov ax,@data mov ds,ax mov es,ax mov cx,0 lea si,s cld dem:

lodsb cmp al,'$'

je inra cmp al,'a'

jb dem cmp al,'z'

ja dem inc cx jmp dem inra:

lea dx,x1 mov ah,9 int 21h xor ax,ax mov ax,cx xor cx,cx

mov bx,10

;xor ax,ax ;mov ax,cx ;xor cx,cx ;xor bx,bx ;mov bx,10

chia:

xor dx,dx div bx push dx inc cx cmp ax,0

jne chia mov ah,2

hthi:

pop dx add dx,30h int 21h loop hthi

mov ah,4ch int 21h main endp end main

Trang 7

23 Cho xâu ký tự S, viết

chương trình hợp ngữ

dạng EXE tính tổng của

các ký tự số có trong xâu

S và lưu kết quả vào

thanh ghi BX.

.model small

.stack 100h

.data

s db 'ha noi2013&'

x1 db 13,10, 'So ky tu la

chu so trong xau=$'

code main proc mov ax,@data mov ds,ax mov es,ax mov cx,0 mov bx,0 lea si,s cld dem:

lodsb cmp al,'$'

je inra

cmp al,'0'

jb dem cmp al,'9'

ja dem and al,0fh add bx,ax

inc cx jmp dem inra:

lea dx,x1 mov ah,9 int 21h

mov ax,bx mov bx,10 mov cx,0

chia:

xor dx,dx div bx push dx inc cx cmp ax,0 jne chia mov ah,2

hthi:

pop dx add dx,30h int 21h loop hthi

mov ah,4ch int 21h main endp end main

24 Cho 2 xâu ký tự S1

và S2, viết chương

trình hợp ngữ

dạng EXE so sánh hai

xâu S1 và S2 Hiển thị

kết quả so sánh ra màn

hình.

.model small

.stack 100h

.data

x3 db 'S1=S2$'

x4 db 'S1>S2$'

x5 db 'S1<S2$'

l1 dw ?

l2 dw ?

s1 db ‘abc$'

s2 db 'abc$'

.code

main proc

mov ax,@data

mov ds,ax mov es,ax mov cx,0 lea si,s1 cld dems1:

lodsb cmp al,'$'

je dems2 inc cx jmp dems1 mov l1,cx dems2:

mov cx,0 lea si,s2 cld dem:

lodsb cmp al,'$'

je ss1 inc cx

jmp dem mov l2,cx ss1:

cmp cx,l1

je bangnhau

jb tiep ; mov cx,l1 tiep:

lea si,s1 lea di,s2 cld repe cmpsb

mov cx,0

je kq1 sub si,1 lodsb mov bl,al sub si,1

mov ax,si lea si,s2 add si,ax lodsb cmp bl,al

ja s1lh lea dx, x5 mov ah,9 int 21h jmp kt s1lh:

lea dx, x4 mov ah,9 int 21h jmp kt kq1:

mov cx,l1 cmp cx,l2

ja xaulons1 lea dx, x5 mov ah,9

int 21h jmp kt xaulons1:

lea dx, x4 mov ah,9 int 21h jmp kt bangnhau:

lea dx, x3 mov ah,9 int 21h kt:

mov ah,4ch int 21h main endp end main

25 Cho 2 xâu ký tự S1

và S2, viết chương

trình hợp ngữ

dạng EXE nối xâu S2

vào sau xâu S1.Hiển

thị xâu S1 ra màn

hình.

.model small

.stack 100h

.data

x1 db 'Xau so khi noi la:$'

s1 db 'abc$' s2 db 'abc$' code

main proc mov ax,@data mov ds,ax mov es,ax mov cx,0 lea si,s1

cld tim:

lodsb cmp ah,'$' jne tim mov di,si sub di,1 lea si,s2 cld noixau:

lodsb cmp al,'$'

je inxau stosb jmp noixau

inxau:

stosb mov ah,9 lea dx,x1 int 21h

lea dx,s1 int 21h mov ah,4ch int 21h main endp end main

26 Cho xâu ký tự S, viết

chương trình hợp ngữ

dạng .EXE chèn ký tự

ch vào trong xâu S tại vị trí k với ký tự ch và số nguyên k được nhập vào

(1<k<length(ch)).

.model small

.stack 100h data

l dw ?

k dw ? x1 db 10,13,' nhap ch:

$'

Trang 8

x2 db 10,13,' nhap k:$'

x3 db 10,13,' ky tu sau

khi da chen la:$'

s1 db 'duc hanh$'

s db ?

code

main proc

nhapk proc

push ax

push dx

nhaplai:

mov bx,0

_nhap:

mov ah,1

int 21h

cmp al,0dh

je _nhap ;je _ktnhap

and ax,000fh

push ax

mov ax,10 mul bx cmp dx,0 jne nhaplai cmp ax,cx

ja nhaplai pop bx add bx,ax

jc nhaplai cmp bx,cx

ja nhaplai jmp _nhap cmp bx,1 jbe nhaplai pop dx pop ax ret nhapk endp end nhapk

mov ax,@data mov ds,ax mov es,ax

mov cx,0 lea si,s1 cld dem:

lodsb cmp al,'$'

je nhap inc cx jmp dem mov l,cx mov ah,9 lea dx,x2 int 21h

nhap:

mov ah,1 int 21h cmp al,1 jbe nhap cmp ax,cx

ja nhap call nhapk mov k,bx mov ah,9 lea dx,x1 int 21h mov ah,1 int 21h mov bl,al sub cx,1 mov di,l mov si,l

std daykytu: lodsb stosb cmp si,k jae daykytu mov al,bl stosb mov ah,9 lea dx,x3 int 21h lea dx,s int 21h mov ah,4ch int 21h main endp end main

Ngày đăng: 17/04/2014, 17:54

HÌNH ẢNH LIÊN QUAN

Hình   số   thập   phân tương   ứng.   Nếu   nhập - Các câu hỏi và đáp án môn vi xử lý
nh số thập phân tương ứng. Nếu nhập (Trang 1)
Hình   nội   dung   trong - Các câu hỏi và đáp án môn vi xử lý
nh nội dung trong (Trang 4)

TỪ KHÓA LIÊN QUAN

w