Hưỡng dẫn code lời giải bài tập thiết kế emu8086 cho môn chuyên môn vi xử lý trường đoản cú a-z

Ngôn ngữ Assembly code bên trên ứng dụng emu8086 vẫn là một trong trong những ngôn ngữ lập trình gây ra các sự ức chế bởi vì nó cũng ko không giống gì các ngữ điệu xây dựng khác như C, C++, Visua Basic, C#… Chúng ta chỉ cần thiếu thốn một vết chấm tuyệt dấu phẩy thì chương trình cũng cần yếu chạy được.

Bạn đang xem: Bài tập vi xử lý 8086 có lời giải


*

Hầu không còn những bài bác tập Assemblycho môn kỹ thuật vi xử lýthường rất khó search vì phần lớn những người giải được hiếm khi share trên những trang mạng, họ rất cần phải tự khám phá với đưa ra phương pháp giải tốt tham khảo một trong những bài tập tương tự để hoàn toàn có thể tư duy thêm về phương thức viết chương trình:

Dưới trên đây Viết mã bug xin share các bài tập assembly có giải thuật cho các sinch viên ngành nghệ thuật nhất là phần đa sinh viên học tập ngành kỹ thuật điện , technology công bố :

Bài 1: Viết chương trình hiển thị câu “Hello Assembly 2021”

.MODEL small

.STACK 100h

.DATA

tb1 db ‘Hello Assembly 2021!$’

.CODE

main proc

Mov AX,
DATA

Mov DS,AX

Lea DX,tb1

Mov AH,9

Int 21h

Mov AH,4Ch

Int 21h

endp main

end main

Bài 2: Viết lịch trình hiện ra nhị câu “Chao mung ban den voi Assembly 2021” “Assembly 2021 that de!”. Mỗi câu trên một dòng.

.MODEL small

.STACK 100h

.DATA

tb1 db “Chao mung ban den voi Assembly 2021$”

tb2 db 0DH,0AH,”Assembly 2021 that de!$”

.CODE

main proc

Mov AX,
DATA

Mov DS,AX

;xuat thong bao 1

Lea DX,tb1

Mov AH,9

Int 21h

;xuat thong bao 2

Lea DX,tb2

Mov AH,9

Int 21h

Mov AH,4Ch

Int 21h

endp main

kết thúc main

Bài 3: Viết chương trình đòi hỏi nhập một ký kết trường đoản cú từ bỏ bàn phím với xuất ra screen ký từ bỏ vừa nhập.

.mã sản phẩm small

.stack

.data

tb1 db 13,10,“Hay nhap mot ky tu: $”

tb2 db 13,10,”Ky tu da nhap: $”

KyTu db ?

.code

main proc

Mov ax,
data

Mov ds,ax

; nhac nhap

Lea dx, tb1

Mov ah, 9

int 21h

; nhap 1 ky tu

Mov ah, 1

Int 21h

Mov KyTu, al

; thong bao ket qua

lea dx, tb2

mov ah, 9

int 21h

; hien thi ky tu domain authority nhap

Mov ah, 2

Mov dl, KyTu

Int 21h

; ve sầu dos

Mov ah, 4Ch

Int 21h

endp main

end main

Bài 4: Viết chương thơm nhập vào trong 1 ký kết trường đoản cú tự bàn phím. Chuyển ký từ bỏ đó sang trọng cam kết từ hoa.

.MODEL SMALL

.STACK 100h

.DATA

tb1 DB ‘Nhap vao ki tu thuong : $’

tb2 DB 13,10,’Chuyen sang ki tu hoa la : ‘

Char DB ?,’$’

.CODE

Main PROC

MOV AX,
DATA

MOV DS,AX

; In ra thong bao 1

LEA DX,tb1

MOV AH,9

INT 21h

; Nhap vao 1 ki tu thuong va doi tkhô cứng ki tu hoa

MOV AH,1

INT 21h ; Doc 1 ki tu thuong va luu vao AL

SUB AL,20h ; Doi thanh khô ki tu hoa

MOV Char,AL

; Hien len chu hoa

LEA DX,tb2

MOV AH,9

INT 21h

; Ket thuc chuong trinh

MOV AH,4Ch

INT 21h

endp main

kết thúc main

Bài 5: Viết chương trình chuyển đổi cam kết từ hoa thành cam kết từ bỏ thường xuyên trong môn chuyên môn vi xử lý.

.MODEL SMALL

.STACK 100h

.DATA

tb1 DB ‘Nhap vao ki tu hoa : $’

tb22 DB 0Dh,0Ah,’Chuyen quý phái ki tu thuong la : ‘

Char DB ?,’$’

.CODE

Main PROC

MOV AX,
DATA

MOV DS,AX

; In ra thong bao 1

LEA DX,tb1

MOV AH,9

INT 21h

; Nhap vao 1 ki tu hoa va doi tkhô nóng ki tu thuong

MOV AH,1

INT 21h ; Doc 1 ki tu hoa va luu vao AL

Showroom AL,20h ; Doi tkhô giòn ki tu thuong

MOV Char,AL

; Hien len chu thuong

LEA DX,tb2

MOV AH,9

INT 21h

; Ket thuc chuong trinh

MOV AH,4Ch

INT 21h

endp main

over main

nhap chuoi

data segment

tb1 db “Hay nhap vao mot chuoi ky tu: $”

tb2 db 13, 10,”chuoi vua nhap la: $”

str db 200,?,200 dup(‘$’)

ends

stack segment

dw 128 dub(?)

ends

code segment

mov ax,data

mov ds,ax

lea dx,tb1

mov ah,09h

int 21h

mov ah,0Ah

lea dx,str

int 21h

lea DX,tb2

mov ah,09h

int 21h

lea bx,str

mov al,bx+01h

mov ah,00h

add bx,ax

;mov ,”$”

mov ah,09h

lea dx,str+2

int 21h

ends

Bài 6: Viết chương trình nhập vào một chuỗi. In ra màn hình hiển thị chuỗi thường xuyên, chuỗi in. Dùng chương bé.

.MODEL small

.STACK

.DATA

tb1 DB ‘Nhap vao 1 chuoi: $’

tb2 DB 10,13,’Doi thanh khô chu thuong: $’

tb3 DB 10,13,’Doi thanh chu hoa: $’

s DB 100,?,101 dup(‘$’)

.CODE

BEGIN:

MOV AX,
DATA

MOV DS,AX

;xuat chuoi tb1

MOV AH,09h

LEA DX,tb1

INT 21h

;nhap chuoi s

MOV AH,0AH

LEA DX,s

INT 21h

;xuat chuoi tb2

MOV AH,09h

LEA DX,tb2

INT 21h

; Goi chuong trinch con in chuoi thuong

CALL InChuoiThuong

; xuat chuoi tb3

MOV AH,09h

LEA DX,tb3

INT 21h

; Goi chuong trinh con in chuoi thuong

CALL InChuoiHoa

MOV AH,4ch

INT 21h

;**************************************

; Doi tkhô cứng chuoi ky tu thuong

InChuoiThuong PROC

LEA SI,s+1

XOR CX,CX

MOV CL,

INC SI

LapThuong:

MOV AH,02h

MOV DL,

CMP DL,’A’

JB LT1

CMP DL,’Z’

JA LT1

ADD DL,32

LT1: INC SI

INT 21h

LOOP.. LapThuong

RET

InChuoiThuong ENDP

; Doi thanh chuoi ky tu hoa

InChuoiHoa PROC

LEA SI,s+1

XOR CX,CX

MOV CL,

INC SI

LapHoa:

MOV AH,02h

MOV DL,

CMP.. DL,’a’

JB LH1

CMP DL,’z’

JA LH1

SUB DL,32

LH1: INC SI

INT 21h

LOOP LapHoa

RET

InChuoiHoa ENDP

END BEGIN

Bài 8: Viết chương trình nhập vào một trong những chuỗi. Đếm chiều lâu năm của chuỗi nhập vừa nhập trong môn chuyên môn vi cách xử trí.

.MODEL small

.STACK

.DATA

tb1 DB ‘Nhap vao 1 chuoi: $’

tb2 DB 10,13,’Tong chieu dẻo cua chuoi: $’

s DB 100,?,101 dup(‘$’)

.CODE

BEGIN:

MOV AX,
DATA

MOV DS,AX

;xuat chuoi tb1

MOV AH,09h

LEA DX,tb1

INT 21h

;nhap chuoi s

MOV AH,0AH

LEA DX,s

INT 21h

;xuat chuoi tb2

MOV AH,09h

LEA DX,tb2

INT 21h

;Tinch chieu dai chuoi

XOR AX,AX

MOV AL,s+1 ;Chuyen chieu dẻo chuoi vao ax

MOV CX,0 ;Khoi tao bien dem

MOV BX,10

LapDem1:

MOV DX,0

DIV BX

PUSH DX

INC CX

CMP AX,0

JNZ LapDem1

;xuat chieu dẻo chuoi

MOV AH,2

LapDem2:

POPhường. DX

OR DL,’0′ ;chuyen chu so -> so

INT 21H

LOOP LapDem2

MOV AH,4ch

INT 21h

END BEGIN

Bài 9: Viết công tác nhtràn vào 2 số đẳng cấp byte, in ra màn hình hiển thị tích 2 số vừa nhập trong môn kỹ thuật vi giải pháp xử lý.

.model tiny

.staông chồng 100h

.data

tb1 db ‘nhap a=$’

tb2 13,10,’nhap b=$’

tb3 13,10,’tich 2 so la:$’

so1 db 0

so2 db 0

.code

main proc

Mov ax,
Data

Mov ds,ax

Mov ah,9

;in thong bao nhap so thu 1

Lea dx,tb1

int 21h

nhap1:

mov ah,1

int 21h

cmp al,13 ;so sinh al voi 13

je nhap2 ;neu bang thi ntốt den nhap 2

sub al,30h ; chuyen ky tu thanh hao so

mov dl,al ;cát al vao dl

mov al,so1 ; dua so vua nhap ve sầu kieu byte

mov bl,10 ;gan bl =10

mul bl ;nhan al voi 10

add al,dl ;lay ket qua vua nhan cong voi so vua nhap

mov s01,al ;cát ket qua sau thời điểm doi vao bien so1

jmp nhap1 ;ngiỏi den nhan nhap 1

nhap2:

lea dx,tb2; in thong bao nhap so thu 2

mov ah,9

int 21h

nhap: mov ah,1

int 21h

cmp al,13 ; so sanh so vua nhap voi enter

je tinhtich ;neu bang thi tinch tich

sub al,30h ; chuyen xau vua nhap tkhô nóng so

mov dl,al ;cat so vua nhap vao dl

mov al,so2 ;dua so vua nhap ve kieu byte

mov bl,10 ;gan bl=10

mul bl ; lay so ban dau nhan voi 10

add al,dl ;lay ket qua vua nhan cong voi so vua nhap

mov s02,al ;mèo ket qua sau khi doi vao bien so2

jmp nhap

tinhtich:

mov al,so1 ;dua so vua nhap ra tkhô giòn ghi al

mul so2 ;nhan voi so 2

mov bx,ax ;lay ket qua vua tinh chuyen vao thanh hao ghi bx

jmp tinhtich

;in tich

mov ah,9 ;hien thong bao in tich

lea dx,tb3

int 21h

mov ax,bx ;chuyen ket qua ra tkhô cứng ghi ax

mov bx,10 ;gan bx=10

xor cx,cx ;khoi tao bien dem

chia: xor dx,dx ;xoa bit cao

div bx ;lay ket qua phân chia đến 10 du dat dx,thuong dat ax

push dx ;day du trong dx vao ngan xep

inch cx ;tang bien dem

cmp ax,0 ;so sanh thuong voi 0

ja phân tách ;neu lon hon thi chia

mov ah,2 ;lay chuc nang in ky tu ra man hinh

lay: pop dx ;lay du vào stasck khoi dx

add dl,30h ;chuyen so vua nhap sang dang ky tu

int 21h ;thuc hien in ky tu phái mạnh trong dl ra man hinh

loop lay

ra: mov ah,4ch

int 21h

Main endp

End main

Bài 10 : Viết chương trình nhập vào 2 số dạng hình word, in ra screen tổng 2 số vừa nhập trong môn chuyên môn vi xử lý.

.Model tiny

.stachồng 100h

.data

tb1 db ‘nhap so thu 1:$’

tb2 db 13,10 ,’nhap so thu 2:$’

tb3 db 13,10,’tong 2 so$’

so1 dw 0

so2 dw 0

tong dw 0

.code

main proc

mov ax,
data

mov ds,ax

;in thong bao nhap so thu nhat

lea dx,tb1

mov ah,9

int 21h

nhap1:

mov ah,1

int 21h

cmp al,13 ;so sinh ky tu vua nhap voi 13

je nhap2 ;neu bang nhap so thu 2

sub al,30h ;doi ky tu sang so

mov ah,0 ;xoa bit cao

mov cx,ax ;cat so vua nhap vào cx

mov ax,so1 ;đua bien sô 1 vê kiêu byte de chuan bi nhann vói 10

mov bx,10 ;gan bx =10

mul bx ; nhân ax voi 10

add ax,cx ;công ket qua vua nhan voi so vua nhap ket qua cât vào ax

mov so1,ax ; mèo kêt qua vao bién sô1

jmp nhap1

nhap2:

lea dx,tb2 ;hiên thông báo nhâp sô thu 2

mov ah,9

int 21h

nhap: mov ah,1 ;nhap sô thu 2

int 21h

cmp al,13 ;đối chiếu cam kết tu vua nhâp voi 13

je tinhtong ;nêu băng thì tính tông

sub al,30h ;siêng ký tu lịch sự dang sô

mov ah,0 ;xoá đậy cao

mov cx,ax ;cât kêt qua vua nhap vào cx

mov ax,so2 ;đua biên sô 2 vê kiêu byte

mov bx,10 ;gan bx=10

mul bx ;nhân kêt qua vua nhap voi 10

add ax,cx ;công kêt qua vua nhân vói sô vua nhâp

mov so2,ax ;cât kêt qua vào biên sô 2

jmp nhap

tinhtong:

mov dx,tong

mov ax,so1 ;đua biên sô 1 ra tkhô giòn ghi ax

mov bx,so2 ;đua biên só 2 ra thanh khô ghi bx

add ax,bx ;công ax voi bx kêt qua mèo vao ax

mov tong,ax ;dua kêt qua tu ax vào biên tông

inso: mov ah,9 ;hiên thông tin in tông

lea dx,tb3

int 21h

mov ax,tong ;đua kêt qua trongv bien tông ra tkhô hanh ghi ax

mov dx,0 ;xoa bit cao dx

mov bx,10 ;gán bx=10

mov cx,0 ;khoi tao biên đêm

chia: div bx ;lây kêt qua chia mang lại 10

push dx ;du o dx đây vao ngăn xêp

inh cx ;tăng biên đêm

cmp ax,0 ;so sinh thuong voi 0

je hienkq ;neu băng thì hiên kêt qua

xor dx,dx ;xoa bit cao trong dx

jmp chia

hienkq: pop dx ;lây du trong ngăn uống xêp ra khoi dx

add dl,30h ;chăm sô thành dang ký tu

mov ah,2 ;in tông

int 21h

loop hienkq

ra: mov ah,4ch

int 21h

Main endp

End main

Bài 11 : Cho một mảng M gồm 20 bộ phận vẻ bên ngoài Word cực hiếm tuỳ ý (chưa hẳn nhập cực hiếm các phần tử).Tính tổng vốn những bộ phận có giá trị phân chia hết mang đến 7 trong môn chuyên môn vi cách xử lý.

.mã sản phẩm tiny

.staông chồng 100h

.data

st1 db 13,10,’tong cac phan tu phân tách het cho 7:$’

st2 db 13,10,’$’

m db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

a db 0

.code

main proc

mov ax,
data

mov ds,ax

;in thông tin nhập số thứ 1

lea dx,st1

mov ah,9

int 21h

mov cx,20 ;gán cx=20

lea tê mê,m ;mê mệt trỏ mang đến ngnạp năng lượng lưu giữ trước tiên của mảng M

mov a,0 ; khởi tạo ra a=0

duyet:

mov al, ; gửi những quý hiếm trong mảng vày tê mê trỏ đến vào al

mov bl,7 ;gán bl=7

mov ah,0 ;xoá che cao

div bl ;phân chia al đến 7

cmp ah,0 ;so sánh thương với 0

je tong ;nếu bởi thì tính tổng

jmp tiep

tong:

mov al, ; đưa các cực hiếm trong mảng vì say mê trỏ đến vào al

mov bl,a ; đ ưa số a vào bl

add al,bl ;c ộng al v ơí bl tác dụng bỏ vào al

mov a,al ;chuyển kết quae vào vươn lên là a

tiep:

inh mê say ;tăng chỉ số mảng

inch dl ;tăng dl

loop duyet

mov al,a ;dịch số trở về thanh ghi al

mov bl,10 ;gán bl =10

mov cx,0 ;khởi tạo nên biến đổi đếm

chia:

mov ah,0 ;xoá đậy cao

div bl ;rước công dụng chia cho 10

mov dl,ah ;gửi dư vào dl

add dl,30h ;nhảy số quý phái dạng cam kết tự

push dx ;dẩy dư vào ngăn xếp

inc cx ;tăng đổi thay đếm

cmp al,0 ;đối chiếu thương cùng với 0

je inso ;ví như bởi thì in số

jmp chia

inso:

pop dx

mov ah,2

int 21h

loop inso

ra:

mov ah,4ch

int 21h

main endp

kết thúc main

Bài 12 : Viết công tác nhập lệ một số hình trạng word in ra screen mã nhị phân tương xứng của số kia trong môn kỹ thuật vi cách xử lý.

.Model tiny

.stack 100h

.data

st1 db ‘Nhap so kieu WORD :$’

st2 db 13,10,’Ma nhi phan tuong ung:$’

so dw 0

.code

main proc

mov ax,
data

mov ds,ax

lea dx,st1

mov ah,9

int 21h ;In xau st1

nhap:

mov ah,1

int 21h

cmp al,13

je nhiphan

sub al,30h

mov ah,0

mov cx,ax

mov bx,10

mov ax,so

mul bx

add ax,cx

mov so,ax

jmp nhap

nhiphan:

lea dx,st2

mov ah,9

int 21h

mov cx,0

mov bx,2

mov ax,so

chia:

mov dx,0

div bx

add dx,30h

push dx

inh cx

cmp ax,0

je inso

jmp chia

inso:

pop dx

mov ah,2

int 21h

loop inso

ra:

mov ah,4ch

int 21h

main endp

over main

Bài 13 : Viết lịch trình nhập lệ một số ít kiểu dáng word in ra screen mã Hexa khớp ứng của số kia trong môn chuyên môn vi xử lý.

.model tiny

.staông chồng 100h

.data

st1 db ‘nhap so kieu word:$’

st2 db 13,10,’so vì chưng duoi dang hecxa:$’

a dw 0

.code

main proc

;

mov ax,
data

mov ds,ax

;

lea dx,st1

mov ah,9

int 21h

nhap:

mov ah,1

int 21h

cmp al,13

je inso

mov ah,0

sub al,30h

mov cx,ax

mov ax,a

mov bx,10

mul bx

add ax,cx

mov a,ax

jmp nhap

inso:

;

lea dx,st2

mov ah,9

int 21h

mov bx,16

mov ax,a

mov cx,0

chia:

mov dx,0

div bx

cmp dx,10

jae doi

add dx,30h

jmp cat

doi: add dx,37h

cat:

push dx

inc cx

cmp ax,0

je hien

jmp chia

hien:

pop dx

mov ah,2

int 21h

loop hien

ra:

mov ah,4ch

int 21h

main endp

kết thúc main

Bài 14 : Viết công tác nhập vào 1 mảng 15 bộ phận thứ hạng word in ra screen mã Hexa tương xứng của số đóvào môn chuyên môn vi cách xử lý.

.model tiny

.staông chồng 100h

.data

tb1 db ‘Nhap mang 15 phan tu kieu word: $’

tb2 db 10,13,’Nhap phan tu : $’

tb3 db 10,13,’Phan tu co gia tri lon nhat la: $’

a dw 20 dup(0)

.code

main proc

mov ax,
data

mov ds,ax

;-------------

lea dx,tb1

mov ah,9

int 21h

mov cx,15 ;Nhap 15 phan tu kieu word

xor mê say,si

nhapmang:

mov ah,9

lea dx,tb2

int 21h

push cx

nhapso:

mov ah,1

int 21h

cmp al,13

je catkq

sub al,30h

mov cl,al

xor ch,ch

mov bx,10

mov ax,a

mul bx

add ax,cx

mov a,ax

jmp nhapso

catkq:

add si mê,2

pop cx

loop nhapmang

lea dx,tb3

mov ah,9

int 21h

xor mê mẩn,si

mov ax,a

mov cx,15 ; mov cx,14 add say mê,2

duyet:

cmp a,ax

jbe qua

mov ax,a

qua:

add mê man,2

loop duyet

;mov ax,a<0>

xor cx,cx

mov bx,10

chia:

xor dx,dx

div bx

push dx

inch cx

cmp ax,0

jne chia

mov ah,2

hienso:

pop dx

add dl,30h

int 21h

loop hienso

;—————–

mov ah,4ch

int 21h

main endp

over main

Bài 15 : Tính tổng 2 số:

Code Segment

Assume cs: Code

Org 100h

Start: jmp over

tb1 db ‘Nhap a = $’

tb2 db 10, 13, ‘Nhap b = $’

tb3 db 10, 13, ‘Tong 2 so

domain authority nhap la $’

over:

Tính hiệu nhị số:

Code Segment

Assume cs: Code

Org 100h

Start: jmp over

tb1 db ‘Nhap a = $’

tb2 db 10, 13, ‘Nhap b = $’

tb3 db 10, 13, ‘Hieu 2 so da

nhap la $’

over:

Bài 16 : Viết công tác nhập 1 kí tự tạo ra số bao gồm mã Hexa tương ứngvào môn nghệ thuật vi xử lý.

Code Segment

Assume cs: Code

Org 100h

Start: jmp over

tb1 db 10, 13, ‘Nhap ki tu

kt = $’

tb2 db 10, 13, ‘So thap

phan tuong ung la 1$’

Trang 3

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

add bl,al

mov ah,9

lea dx,tb3

int 21h

sub bl,30h

cmp bl,39h

jbe thoat

sub bl,10

mov ah,2

mov dl,’1′

int 21h

thoat:

mov dl,bl

mov ah,2

int 21h

int 20h

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

tb3 db 10, 13, ‘Hay nhap

lai voi ( A

kt

over:

nhap: Mov ah,9

lea dx,tb1

int 21h

mov ah,1

int 21h

mov bl,al

cmp bl,’A’

jae ss1

jmp loi

ss1: cmp bl,’F’

jbe thoat1

cmp bl,’a’

jae ss2

jmp loi

ss2: cmp bl,’f’

jbe thoat2

loi: Mov ah,9

lea dx,tb3

int 21h

jmp nhap

thoat1:

sub bl,11h

jmp thoat3

thoat2:

Trang 4

Code Ends

End Start

Bài 17 : Viết lịch trình bình chọn tính chẵn lẻ của một chữ sốvào môn kỹ thuật vi cách xử lý.

Xem thêm: Hàng Lỗi Tiếng Anh Là Gì - Hàng Hóa Lỗi Thời Tiếng Anh Là Gì

Code Segment

Assume cs: Code

Org 100h

Start: jmp over

tb1 db 10, 13, ‘Nhap ki tu

so 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

over:

nhap: Mov ah,9

lea dx,tb1

int 21h

mov ah,1

int 21h

mov bl,al

cmp bl,30h

jae sosanh

jmp loi

sosanh:

cmp bl,39h

jbe inra

int 20h

Code Ends

End Start

Câu 18: Viết lịch trình in theo máy từ bảng chữ cáivào môn kỹ thuật vi cách xử lý.

Code Segment

Assume cs: Code

Org 100h

Start: jmp over

tb1 db ‘Nhap ki tu thu 1 : $’

tb2 db 10, 13, ‘Nhap ki tu

thu 2 : $’

tb3 db 10, 13, ‘Thu tu bang

ma la : $’

over:

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

sub bl,31h

thoat3:

Mov ah,9

lea dx,tb2

int 21h

mov ah,2

mov dl,bl

int 21h

int 20h

Code Ends

End Start

Bài 17 : Viết chương trình tính thương thơm – dư với xuất ra màn hìnhvào môn chuyên môn vi xử trí.

Code Segment

Assume cs: Code

Org 100h

Start: jmp over

tb1 db ‘Nhap mot so bat ky

a = $’

tb2 db 10, 13, ‘Thuong cua

BL : $’

tb3 db 10, 13, ‘Du cua BL :

$’

over:

Mov bl,19

Mov ah,9

lea dx,tb1

int 21h

mov cl,0

mov ah,1

loi: mov ah,9

lea dx,tb4

int 21h

jmp nhap

inra: Test bl,1

jne sole

mov ah,9

lea dx,tb2

jmp thoat

sole: mov ah,9

lea dx,tb3

thoat: int 21h

int 20h

Code Ends

End Start

Bài 18 : Viết công tác kiểm soát số ngulặng tốvào môn chuyên môn vi giải pháp xử lý.

include mylib.mac

Code Segment

Assume cs: Code

Org 100h

Start:


write ‘So domain authority nhap la so

chinh phuong’

thoat:

int 20h

include proc.asm

Code Ends

End Start

Bài 19 : Viết công tác tính tổng các phần tử lẻtrong môn kỹ thuật vi cách xử lý.

Include Mylib.mac

Code Segment

Trang 12

chia: xor dx,dx

div bx

push dx

inc cx

cmp ax,0

ja chia

mov ah,2

inra: pop dx

or dx,30h

int 21h

loop inra

int 20h

Code Ends

End Start

Bài 20: Kiểm tra số trả thiện

Include Mylib.mac

Code Segment

Assume cs : code

Org 100h

Start : jmp over

n dw ?

over:


Write ‘Nhap n = ‘

Hotline Nhap_so

mov n,ax

mov bx,2

xor cx,cx

lap:

Include Mylib.mac

Code Segment

Assume Cs : Code

Org 100h

Start : jmp over

n dw ?

over:


Write ‘Nhap x = ‘

Gọi nhap_so

cmp ax,2

jbe ngt

mov n,ax

shr ax,1

mov cx,ax

mov bx,2

chia:

xor dx,dx

mov ax,n

div bx

inc bx

cmp dx,0 ; tốt or dx,dx

je hopso

loop chia

ngt:


write ‘Nhap 1 phan tu: ‘

hotline nhap_so

mov a,ax

add bx,2

loop nhap

mov cx,n

xor bx,bx

xor ax,ax

lap:

xor dx,dx

mov dx,a

Test dx,1

je tiep

add ax,a

tiep:

add bx,2

loop lap

xor dx,dx

div bx

cmp dx,0

jne tiep

add cx,ax

tiep:

inch bx

mov ax,n

cmp bx,ax

jbe lap

cmp cx,n

jne khong


write ‘So da mang đến ko hoan

thien’

thoat:

int 20h

Include Proc.asm

Code Ends

End Start

Bài 21: Viết lịch trình tính tích 2 sốvào môn kỹ thuật vi cách xử trí.

include mylib.mac

code segment

assume cs:code

org 100h

start:

thoat:

int 20h

Include Proc.asm

Code ends

End Start

Bài 22: Viết lịch trình tính số Fibonacy thiết bị nvào môn kỹ thuật vi xử trí.

Include mylib.mac

Code Segment

Assume cs: Code

Org 100h

Start:jmp over

n dw ?

over:


xuongdong

cmp ax,2

jbe thoat

mov n,ax

mov ax,1

mov bx,1

mov cx,2 ;tinch tu n>2

tinh: add bx,ax

sub ax,bx

neg ax

inc cx

cmp n,cx

je thoat1


write ‘tong la : ‘

hotline in_so

int 20h

Include Proc.asm

Code Ends

End Start

Câu 23: Tìm Min-Max của mảng:

Include Mylib.mac

Max Macro w1,w2

local thoat

mov ax,w1

cmp ax,w2

ja thoat

mov ax,w2

thoat:

EndM

Min Macro w1,w2

local thoat

mov ax,w1

cmp ax,w2

jbe thoat

mov ax,w2

thoat:

EndM

Code Segment

Assume Cs : Code

Org 100h

Start : jmp over


write ‘tich cua a*b la:’

mov ax,cx

điện thoại tư vấn in_so

int 20h

include proc.asm

code ends

end start

Bài 24 : Viết công tác thu xếp các bộ phận tăng dầntrong môn chuyên môn vi cách xử lý.

include mylib.mac

code segment

assume cs: code

jmp tinh

thoat:

mov bx,1

thoat1:


write ‘So Fibonaci thu n

la ‘

Mov ax,bx

điện thoại tư vấn in_so

int 20h

include proc.asm

Code Ends

End Start

Bài 25 : Viết chương trình nhập xâu kí trường đoản cú từ bỏ bàn phím đưa kí trường đoản cú đó thành chữ hoa quý phái xâu không giống cùng in ra màn hìnhtrong môn chuyên môn vi xử trí.

Include Mylib.mac

Code Segment

Assume CS : Code

Org 100h

Start : Jmp over

x1 db 80 dup(?)

x2 db 80 dup(?)

over:


write ‘Nhap xau : ‘

lea di,x1

xor bx,bx

cld

nhap:

mov ah,1

int 21h

cmp al,0dh

je chuyen

stosb

inc bx

cmp ax,a

jle qua_

xchg ax,a

mov a,ax

qua_:

add bx,2

cmp bx,dx

jb lap_

loop for_


write ‘ ‘

loop forin_

int 20h

include proc.asm

code ends

kết thúc start

Câu 26 : Viết chương trình nhập xâu kí trường đoản cú trường đoản cú keyboard đưa kí trường đoản cú vừa nhập thành chữ thường sang trọng xâu không giống cùng in ran màn hìnhvào môn chuyên môn vi xử lý.

Include Mylib.mac

Code Segment

Assume CS : Code

Org 100h

Start : Jmp over

x1 db 80 dup(?)

x2 db 80 dup(?)

over:


write ‘Nhap xau : ‘

lea di,x1

xor bx,bx

cld

nhap:

mov ah,1

int 21h

cmp al,0dh

je chuyen

stosb

inh bx

jmp nhap

chuyen:

mov byte ptr,’$’

inc bx

lea mê man,x1


xuongdong

lea di,x2

mov cx,bx

lap:

mov al,

cmp al,’A’

jb nhay

cmp al,’Z’

ja nhay

stosb

nhay: inch si

loop lap

mov byte ptr,’$’

lea si,x2


xuongdong

mov ah,9

lea dx,x2

int 21h

int 20h

Code Ends

Bài 27 : Viết công tác nhập họ thương hiệu cùng tách tên kia hiển thị ra màn hìnhvào môn nghệ thuật vi giải pháp xử lý.


write ‘Nhap ho & ten:‘

lea di,hten

cld

nhap:

mov ah,1

int 21h

cmp al,0dh

je chuyen

stosb

jmp nhap

chuyen:

mov byte ptr,’$’


write ‘Ho ten la : ‘

mov ah,9

lea dx,hten

int 21h

dec di

std

mov al,’ ‘

repe scasb

inc cx

inh di

mov bx,cx

repne scasb

inc cx

add di,2

sub bx,cx

mov cx,bx

lap:

mov al,

cmp al,’a’

jb nhay

cmp al,’z’

ja nhay

stosb

nhay: inch si

loop lap

mov byte ptr,’$’

lea mê say,x2


xuongdong

mov ah,9

lea dx,x2

int 21h

int 20h

Code Ends

End Start

Bài 28 : Viết chương trình soát sổ tính đối xứng của xâuvào môn chuyên môn vi cách xử trí.

include mylib.mac

code segment

assume cs:code

org 100h

start:jmp over

xau db 80 dup (‘$’)

End Start

Bài 29 : Đếm tự trong xâu

include mylib.mac

code segment

assume cs:code

org 100h

start:jmp over

xau db 80 dup (‘$’)

over:


write ‘nhap xau: ‘

xor cx,cx

xor bx,bx

lea di,xau

cld

mov ah,1

nhap:

int 21h

cmp al,13

je tiep

inch cx

stosb

jmp nhap

tiep:

jcxz inra

dec di

std

mov al,’ ‘

lap:

repe scasb

or cx,cx

je inra

inch cx

Trang 18

mov cx,bx

mov đam mê,di

lea di,ten

cld

rep movsb

mov byte ptr,’$’


write ‘Ten la:’

lea dx,ten

mov ah,9

int 21h

int 20h

Code Ends

End Start

Bài 30 : Viết lịch trình kiểm tra chữ hoatrong môn chuyên môn vi cách xử trí.

code segment

assume cs:code

org 100h

start:jmp over

tb1 db ‘nhap mot ki tu:$’

tb2 db 10,13,’la chu hoa$’

tb3 db 10,13,’khong$’

over:

mov ah,9

lea dx,tb1

int 21h

mov ah,1

int 21h

cmp al,’A’

jb ko

cmp al,’Z’

ja ko

mov ah,9

lea dx,tb2

int 21h

jmp het

over:


xuongdong

lea di,xau

xor cx,cx

cld

mov ah,1

nhap:

int 21h

cmp al,13

je tiep

inh cx

stosb

jmp nhap

tiep:

dec di

shr cx,1

lea ham mê,xau

lap:

cmpsb

jne kdxung

sub di,2

loop lap


write ‘Xau khong doi

xung’

thoat:

int 20h

include proc.asm

inch di

inc bx

repne scasb

inc cx

inc di

jmp lap

inra:


write ‘So tu trong xau la:’

mov ax,bx

Điện thoại tư vấn in_so

int 20h

include proc.asm

code ends

over start

Đó là tổng hợp 30 bài tập Assembly đến môn kỹ thuật vi cách xử lý có lời giải mang lại đông đảo ai bao hàm sinc viên phải, phải lưu giữ chúng ta chỉ cần copy paste là chạy thôi nhé.

Xem thêm: Cách Sử Dụng " Not At All Là Gì ? Cách Sử Dụng At All Cách Sử Dụng At All

Chúc chúng ta học tốt môn này.