Contents
- 1 Bài 1: Viết chương trình hiện ra câu “Xin chào Assembly!”
- 2 Bài 2: Viết chương trình hiện ra hai câu “Chào mừng bạn đến với Assembly” và “Lập trình thật dễ!” mỗi câu trên một dòng
- 3 Bài 3: Viết chương trình yêu cầu nhập một ký tự và xuất ra màn hình ký tự vừa nhập
- 4 Bài 4: Viết chương trình nhập vào một ký tự Xuất ra màn hình ký tự đứng trước và ký tự đứng sau
- 5 Bài 5: Viết chương nhập vào một ký tự Chuyển ký tự đó sang ký tự hoa
- 6 Bài 6: Chuyển đổi ký tự hoa thành ký tự thường
- 7 Bài 7: Viết chương trình nhập vào một chuỗi In ra màn hình chuỗi thường, chuỗi in hoa. Dùng chương trình con
- 8 Bài 8: Viết chương trình nhập vào một chuỗi Đếm chiều dài của chuỗi nhập vào
- 9 Bài 9: Viết chương trình nhập vào một chuỗi In ra màn hình chuỗi thường, chuỗi in hoa. Dùng chương trình con.
- 10 Bài 10: Viết chương trình nhập vào một chuỗi Đếm số lượng phần tử trong chuỗi
- 11 Bài 1: Viết chương trình hiện ra câu “Xin chào Assembly!”
- 12 Bài 2: Viết chương trình hiện ra hai câu “Chào mừng bạn đến với Assembly” và “Lập trình thật dễ!” mỗi câu trên một dòng
- 13 Bài 3: Viết chương trình yêu cầu nhập một ký tự và xuất ra màn hình ký tự vừa nhập
- 14 Bài 4: Viết chương trình nhập vào một ký tự Xuất ra màn hình ký tự đứng trước và ký tự đứng sau
- 15 Bài 5: Viết chương nhập vào một ký tự Chuyển ký tự đó sang ký tự hoa
- 16 Bài 6: Chuyển đổi ký tự hoa thành ký tự thường
- 17 Bài 7: Viết chương trình nhập vào một chuỗi In ra màn hình chuỗi thường, chuỗi in hoa. Dùng chương trình con.
- 18 Bài 8: Viết chương trình nhập vào một chuỗi Đếm chiều dài của chuỗi nhập vào
Bài 1: Viết chương trình hiện ra câu “Xin chào Assembly!”
.MODEL small
.STACK 100h
.DATA
Message db 'Xin chào Assembly!', 0
.CODE
ProgramStart:
Mov AX, @DATA
Mov DS, AX
Mov DX, OFFSET Message
Mov AH, 9
Int 21h
Mov AH, 4Ch
Int 21h
END ProgramStart
Bài 2: Viết chương trình hiện ra hai câu “Chào mừng bạn đến với Assembly” và “Lập trình thật dễ!” mỗi câu trên một dòng
.MODEL small
.STACK 100h
.DATA
Tbao1 db "Chào mừng bạn đến với Assembly$"
Tbao2 db 0DH, 0AH, "Lập trình thật dễ!$"
.CODE
ProgramStart:
Mov AX, @DATA
Mov DS, AX
; Xuất thông báo 1
Mov AH, 9
Lea DX, Tbao1
Int 21h
; Xuất thông báo 2
Mov AH, 9
Lea DX, Tbao2
Int 21h
Mov AH, 4Ch
Int 21h
END ProgramStart
Bài 3: Viết chương trình yêu cầu nhập một ký tự và xuất ra màn hình ký tự vừa nhập
.model small stack
.data
TBao1 db "Hãy nhập một ký tự: $"
TBao2 db 0DH, 0AH, "Ký tự đã nhập: $"
KyTu db ?
.code
ProgramStart:
Mov ax, @data
Mov ds, ax
; Nhắc nhập
Lea dx, TBao1
Mov ah, 9
Int 21h
; Nhập 1 ký tự
Mov ah, 1
Int 21h
Mov KyTu, al
; Xuất ký tự đã nhập
Lea dx, TBao2
Mov ah, 9
Int 21h
; Hiển thị ký tự
Mov ah, 2
Mov dl, KyTu
Int 21h
; Kết thúc chương trình
Mov ah, 4Ch
Int 21h
end ProgramStart
Bài 4: Viết chương trình nhập vào một ký tự Xuất ra màn hình ký tự đứng trước và ký tự đứng sau
.model small stack
.code
ProgramStart:
Mov ax, @data
Mov ds, ax
; Nhắc nhập
Lea dx, TBao1
Mov ah, 9
Int 21h
; Nhập 1 ký tự
Mov ah, 1
Int 21h
Mov KyTu, al
; Xuất thông báo ký tự đã nhập
lea dx, TBao2
mov ah, 9
int 21h
; Xuất ký tự trước ký tự đã nhập
mov ah, 2
mov dl, KyTu
dec dl
int 21h
; Xuất ký tự sau ký tự đã nhập
lea dx, TBao3
mov ah, 9
int 21h
mov ah, 2
mov dl, KyTu
inc dl
int 21h
mov ah, 4Ch
int 21h
end ProgramStart
Bài 5: Viết chương nhập vào một ký tự Chuyển ký tự đó sang ký tự hoa
.MODEL SMALL STACK 100h DATA
Msg1 DB 'Nhập vào ký tự thường: $'
Msg2 DB 0Dh, 0Ah, 'Chuyển sang ký tự hoa là: ' Char DB ?,'$'
.CODE
Main PROC
MOV AX, @DATA
MOV DS, AX
; In ra thông báo 1
LEA DX, Msg1
MOV AH, 9
INT 21h
; Nhập vào 1 ký tự thường và đổi thành ký tự hoa
MOV AH, 1
INT 21h
; Đọc 1 ký tự thường và lưu vào AL
SUB AL, 20h
; Đổi thành ký tự hoa
MOV Char, AL
; Hiển thị ký tự hoa
LEA DX, Msg2
MOV AH, 9
INT 21h
; Kết thúc chương trình
MOV AH, 4Ch
INT 21h
Main ENDP
Bài 6: Chuyển đổi ký tự hoa thành ký tự thường
.MODEL SMALL STACK 100h DATA
Msg1 DB 'Nhập vào ký tự hoa: $'
Msg2 DB 0Dh, 0Ah, 'Chuyển sang ký tự thường là: ' Char DB ?,'$'
.CODE
Main PROC
MOV AX, @DATA
MOV DS, AX
; In ra thông báo 1
LEA DX, Msg1
MOV AH, 9
INT 21h
; Nhập vào 1 ký tự hoa và đổi thành ký tự thường
MOV AH, 1
INT 21h
; Đọc 1 ký tự hoa và lưu vào AL
ADD AL, 20h
; Đổi thành ký tự thường
MOV Char, AL
; Hiển thị ký tự thường
LEA DX, Msg2
MOV AH, 9
INT 21h
; Kết thúc chương trình
MOV AH, 4Ch
INT 21h
Main ENDP
Bài 7: Viết chương trình nhập vào một chuỗi In ra màn hình chuỗi thường, chuỗi in hoa. Dùng chương trình con
.MODEL small STACK
.DATA
tb1 DB 'Nhập vào một chuỗi: $'
tb2 DB 10,13,'Đổi thành chuỗi thường: $'
tb3 DB 10,13,'Đổi thành chuỗi hoa: $'
s DB 100,?,101 dup('$')
.CODE
BEGIN:
MOV AX, @DATA
MOV DS, AX
; Xuất chuỗi tb1
MOV AH, 9
LEA DX, tb1
INT 21h
; Nhập chuỗi s
MOV AH, 0Ah
LEA DX, s
INT 21h
; Xuất chuỗi tb2
MOV AH, 9
LEA DX, tb2
INT 21h
; Gọi chương trình con in chuỗi thường
CALL InChuoiThuong
; Xuất chuỗi tb3
MOV AH, 9
LEA DX, tb3
INT 21h
; Gọi chương trình con in chuỗi hoa
CALL InChuoiHoa
MOV AH, 4Ch
INT 21h
BEGIN ENDP
;**************************************
; Doi thanh chuoi ky tu thuong
InChuoiThuong PROC
LEA SI, s+1
XOR CX, CX
MOV CL, [SI]
INC SI
LapThuong:
MOV AH, 02h
MOV DL, [SI]
CMP DL, 'A'
JB LT1
CMP DL, 'Z'
JA LT1
ADD DL, 32
LT1:
INC SI
LOOP LapThuong
RET
InChuoiThuong ENDP
; Doi thanh chuoi ky tu hoa
InChuoiHoa PROC
LEA SI, s+1
XOR CX, CX
MOV CL, [SI]
INC SI
LapHoa:
MOV AH, 02h
MOV DL, [SI]
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 chuỗi Đếm chiều dài của chuỗi nhập vào
.MODEL tiny STACK
.CODE
BEGIN:
MOV AX, @DATA
MOV DS,AX
; Xuất chuỗi tb1
MOV AH, 9
LEA DX, tb1
INT 21h
; Nhập chuỗi s
MOV AH, 0Ah
LEA DX, s
INT 21h
; Xuất chuỗi tb2
MOV AH, 9
LEA DX, tb2
INT 21h
; Tính chiều dài chuỗi
XOR AX, AX
MOV AL, s+1 ; Chuyển chiều dài chuỗi vào ax
MOV CX, 0 ; Khởi tạo biến đếm
MOV BX, 10
LapDem1:
MOV DX, 0
DIV BX
PUSH DX
INC CX
CMP AX, 0
MOV AH, 2
LapDem2:
POP DX
OR DL, '0' ; Chuyển chữ số -> số
INT 21H
LOOP LapDem2
MOV AH, 4Ch
INT 21H
END BEGIN
Bài 9: Viết chương trình nhập vào một chuỗi In ra màn hình chuỗi thường, chuỗi in hoa. Dùng chương trình con.
.MODEL small STACK
.CODE
BEGIN:
MOV AX, @DATA
MOV DS, AX
; Xuất chuỗi tb1
MOV AH, 9
LEA DX, tb1
INT 21h
; Nhập chuỗi s
MOV AH, 0Ah
LEA DX, s
INT 21h
; Xuất chuỗi tb2
MOV AH, 9
LEA DX, tb2
INT 21h
; Gọi chương trình con in chuỗi thường
CALL InChuoiThuong
; Xuất chuỗi tb3
MOV AH, 9
LEA DX, tb3
INT 21h
; Gọi chương trình con in chuỗi hoa
CALL InChuoiHoa
MOV AH, 4Ch
INT 21h
BEGIN ENDP
;**************************************
; Doi thanh chuoi ky tu thuong
InChuoiThuong PROC
LEA SI, s+1
XOR CX, CX
MOV CL, [SI]
INC SI
LapThuong:
MOV AH, 02h
MOV DL, [SI]
CMP DL, 'A'
JB LT1
CMP DL, 'Z'
JA LT1
ADD DL, 32
LT1:
INC SI
LOOP LapThuong
RET
InChuoiThuong ENDP
; Doi thanh chuoi ky tu hoa
InChuoiHoa PROC
LEA SI, s+1
XOR CX, CX
MOV CL, [SI]
INC SI
LapHoa:
MOV AH, 02h
MOV DL, [SI]
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 10: Viết chương trình nhập vào một chuỗi Đếm số lượng phần tử trong chuỗi
.MODEL small STACK
.DATA
tb2 DB 10, 13, 'Tổng chiều dài của chuỗi: $'
s DB 100 DUP('$')
.CODE
BEGIN:
MOV AX, @DATA
MOV DS, AX
; Xuất chuỗi tb1
MOV AH, 9
LEA DX, tb1
INT 21h
; Nhập chuỗi s
MOV AH, 0Ah
LEA DX, s
INT 21h
; Xuất chuỗi tb2
MOV AH, 9
LEA DX, tb2
INT 21h
; Tính chiều dài của chuỗi
XOR AX, AX
MOV AL, s+1 ; Chuyển chiều dài của chuỗi vào ax
LEA DX, s+2 ; Chuyển địa chỉ offset của chuỗi vào dx
INC AX
INC AX
MOV CX, 0 ; Khởi tạo biến đếm
LapDem:
MOV AH, 9
MOV DL, [DX]
INT 21h
INC DX
LOOP LapDem
MOV AH, 4Ch
INT 21H
END BEGIN
Bài 1: Viết chương trình hiện ra câu “Xin chào Assembly!”
.MODEL small
.STACK 100h
.DATA
Message db 'Xin chào Assembly!', 0
.CODE
ProgramStart:
Mov AX, @DATA
Mov DS, AX
Mov DX, OFFSET Message
Mov AH, 9
Int 21h
Mov AH, 4Ch
Int 21h
END ProgramStart
Bài 2: Viết chương trình hiện ra hai câu “Chào mừng bạn đến với Assembly” và “Lập trình thật dễ!” mỗi câu trên một dòng
.MODEL small
.STACK 100h
.DATA
Message1 db 'Chào mừng bạn đến với Assembly!', 0
Message2 db 'Lập trình thật dễ!', 0
.CODE
ProgramStart:
Mov AX, @DATA
Mov DS, AX
; Xuất thông báo 1
Mov AH, 9
Mov DX, OFFSET Message1
Int 21h
; Xuất thông báo 2
Mov AH, 9
Mov DX, OFFSET Message2
Int 21h
Mov AH, 4Ch
Int 21h
END ProgramStart
Bài 3: Viết chương trình yêu cầu nhập một ký tự và xuất ra màn hình ký tự vừa nhập
.model small stack
.data
TBao1 db "Nhập một ký tự: $"
TBao2 db "Ký tự đã nhập: $"
KyTu db ?
.code
ProgramStart:
Mov ax, @data
Mov ds, ax
; Nhắc nhập
Lea dx, TBao1
Mov ah, 9
Int 21h
; Nhập ký tự
Mov ah, 1
Int 21h
Mov KyTu, al
; Xuất ký tự
Lea dx, TBao2
Mov ah, 9
Int 21h
; Hiển thị ký tự đã nhập
Mov ah, 2
Mov dl, KyTu
Int 21h
; Kết thúc chương trình
Mov ah, 4Ch
Int 21h
end ProgramStart
Bài 4: Viết chương trình nhập vào một ký tự Xuất ra màn hình ký tự đứng trước và ký tự đứng sau
.model small stack
.code
ProgramStart:
Mov ax,@data
Mov ds,ax
; xuất thông báo
Lea dx,TBao1
Mov ah,9
Int 21h
; nhập ký tự
Mov ah,1
Int 21h
Mov bl,al
; xuất thông báo
Lea dx,TBao2
Mov ah,9
Int 21h
; xuất ký tự đứng trước
Mov ah,2
Mov dl,bl
Dec dl
Int 21h
; xuất ký tự đứng sau
Lea dx,TBao3
Mov ah,9
Int 21h
; xuất ký tự đứng sau
Mov ah,2
Mov dl,bl
Inc dl
Int 21h
; kết thúc chương trình
Mov ah,4Ch
Int 21h
end ProgramStart
Bài 5: Viết chương nhập vào một ký tự Chuyển ký tự đó sang ký tự hoa
.MODEL SMALL STACK 100h DATA
Msg1 DB 'Nhập ký tự thường: $'
Msg2 DB 0Dh,0Ah,'Chuyển sang ký tự hoa là: ' Char DB ?,'$'
.CODE Main PROC
MOV AX,@DATA MOV DS,AX
; In ra thông báo
LEA DX,Msg1 MOV AH,9 INT 21h
; Nhập ký tự
MOV AH,1 INT 21h
; Đọc ký tự và lưu vào AL
SUB AL,32 ; Chuyển ký tự sang ký tự hoa
MOV Char,AL ; Lưu ký tự đã chuyển sang biến Char
; In ra ký tự hoa
LEA DX,Msg2 MOV AH,9 INT 21h
MOV AH,2 MOV DL,Char INT 21h
; Kết thúc chương trình
MOV AH,4Ch INT 21h Main ENDP End Main
Bài 6: Chuyển đổi ký tự hoa thành ký tự thường
.MODEL SMALL STACK 100h DATA
Msg1 DB 'Nhập ký tự hoa: $'
Msg2 DB 0Dh,0Ah,'Chuyển sang ký tự thường là: ' Char DB ?,'$'
.CODE Main PROC
MOV AX,@DATA MOV DS,AX
; In ra thông báo
LEA DX,Msg1 MOV AH,9 INT 21h
; Nhập ký tự
MOV AH,1 INT 21h
; Đọc ký tự và lưu vào AL
ADD AL,32 ; Chuyển ký tự sang ký tự thường
MOV Char,AL ; Lưu ký tự đã chuyển sang biến Char
; In ra ký tự thường
LEA DX,Msg2 MOV AH,9 INT 21h
MOV AH,2 MOV DL,Char INT 21h
; Kết thúc chương trình
MOV AH,4Ch INT 21h Main ENDP End Main
Bài 7: Viết chương trình nhập vào một chuỗi In ra màn hình chuỗi thường, chuỗi in hoa. Dùng chương trình con.
.MODEL small STACK 100h DATA
.DATA
tb1 DB 'Nhập vào một chuỗi: $'
tb2 DB 10,13,'Đổi thành chuỗi thường: $'
tb3 DB 10,13,'Đổi thành chuỗi hoa: $'
s DB 100,?,101 dup('$')
.CODE
BEGIN:
MOV AX, @DATA
MOV DS, AX
; Xuất chuỗi tb1
MOV AH, 9
LEA DX, tb1
INT 21h
; Nhập chuỗi s
MOV AH, 0Ah
LEA DX, s
INT 21h
; Xuất chuỗi tb2
MOV AH, 9
LEA DX, tb2
INT 21h
; Gọi chương trình con in chuỗi thường
CALL InChuoiThuong
; Xuất chuỗi tb3
MOV AH, 9
LEA DX, tb3
INT 21h
; Gọi chương trình con in chuỗi hoa
CALL InChuoiHoa
MOV AH, 4Ch
INT 21h
END BEGIN
;**************************************
; Doi thanh chuoi ky tu thuong
InChuoiThuong PROC
LEA SI, s+1
XOR CX, CX
MOV CL, [SI]
INC SI
LapThuong:
MOV AH, 02h
MOV DL, [SI]
CMP DL, 'A'
JB LT1
CMP DL, 'Z'
JA LT1
ADD DL, 32
LT1:
INC SI
LOOP LapThuong
RET
InChuoiThuong ENDP
; Doi thanh chuoi ky tu hoa
InChuoiHoa PROC
LEA SI, s+1
XOR CX, CX
MOV CL, [SI]
INC SI
LapHoa:
MOV AH, 02h
MOV DL, [SI]
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
READ MORE:
Bài 8: Viết chương trình nhập vào một chuỗi Đếm chiều dài của chuỗi nhập vào
.MODEL small STACK 100h
.DATA
tb1 DB 'Nhập vào một chuỗi: $'
tb2 DB 10,13,'Chiều dài của chuỗi là: $'
s DB 100 DUP('$')
.CODE
BEGIN:
MOV AX, @DATA
MOV DS, AX
; Xuất chuỗi tb1
MOV AH, 9
LEA DX, tb1
INT 21h
; Nhập chuỗi s
MOV AH, 0Ah
LEA DX, s
INT 21h
; Xuất chuỗi tb2
MOV AH, 9
LEA DX, tb2
INT 21h
; Tính chiều dài chuỗi
XOR AX, AX
MOV AL, s+1
SUB AX, 2
MOV CX, AX
; Xuất chiều dài chuỗi
MOV AH, 2
MOV DL, '0'
ADD DL, CH
INT 21h
MOV AH, 4Ch
INT 21h
END BEGIN
Có thể bạn quan tâm
Nguồn: https://ispacedanang.edu.vn
Danh mục: Học tập