Bài tập nhập mảng:
;Nhap vao n (n tu 0 den 9)
; Nhap vao 1 mang n so tu 0 den 9
; in ra so lon nhat
;tinh tong
; sap xep mang tang dan
.model small
max2so macro d1,d2
local thoi
mov al, d1
cmp al, d2
ja thoi
mov al,d2
thoi:
endm
10 trang |
Chia sẻ: lylyngoc | Lượt xem: 2172 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Bài tập lập trình hợp ngữ - Nhập mảng và chuỗi các ký tự, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bài tập lập trình hợp ngữ - Nhập mảng
và chuỗi các ký tự
Bài tập nhập mảng:
;Nhap vao n (n tu 0 den 9)
; Nhap vao 1 mang n so tu 0 den 9
; in ra so lon nhat
;tinh tong
; sap xep mang tang dan
.model small
max2so macro d1,d2
local thoi
mov al, d1
cmp al, d2
ja thoi
mov al,d2
thoi:
endm
min2so macro d1,d2
local thoi
mov al, d1
cmp al, d2
jb thoi
mov al,d2
thoi:
endm
hoanvi macro d1,d2
push ax ; luu lai ax
mov al, d1
mov ah, d2
mov d1, ah
mov d2,al
pop ax
endm
XuongHang macro
mov ah,2h
mov dl,10
int 21h
endm
NhapKyTu macro
mov ah, 1h
int 21h
endm
XuatKyTu macro d1
mov ah, 2h
mov dl, d1
int 21h
endm
.stack 100h
.data
n db ?
max db ?
min db ?
tb db 'Nhap vao so n: $'
tb1 db 'Nhap a[] :$'
tb2 db 'Max:$'
tb3 db 'Min:$'
arr db 9 dup('0')
.code
;lay dia chi vung du lieu
mov ax, @data
mov ds, ax
; xuat thong bao 1
lea dx, tb
call XuatMess
; Nhap vao n
NhapKyTu
mov n, al
; xuat thong bao 2
XuongHang
lea dx, tb1
call XuatMess
;nhap mang
call NhapMang
; xuat thong bao 3
XuongHang
lea dx, tb2
call XuatMess
call TimMax
XuatKyTu max
XuongHang
lea dx, tb3
call XuatMess
XuatKyTu min
XuongHang
;====================================
;tro ve dos
mov ah, 4ch
int 21h
XuatMess proc
mov ah, 9
int 21h
ret
XuatMess endp
NhapMang proc
mov cl, n
mov ch, 0
sub cl,'0'
mov si,0
Lap:
NhapKyTu
mov arr[si],al
inc si
loop Lap
ret
NhapMang endp
TimMax proc
mov cl,n
mov ch,0
sub cl,'0'
mov si,0
mov ch, arr[si]
mov max,ch
mov min,ch
mov ch,0
inc si
dec cx
lap1:
max2so max,arr[si]
mov max, al
min2so min,arr[si]
mov min,al
inc si
loop lap1
ret
TimMax endp
;====================================
End
Bài tập nhập chuỗi:
;Nhap 1 chuoi
; xuat 1 chuoi
.model small
.stack 100h
.data
tb1 db 'Nhap 1 chuoi(dung Nhan): $'
tb2 db 'Nhap 1 chuoi(dung Loop): $'
tb3 db 'xuat chuoi nguoc: $'
tb4 db 10,'Nhap Mang $'
tb5 db 10,'Phan tu thu :$'
.code
; ket thuc
; Lay dia chi vung du lieu
mov ax, @data
mov ds, ax
; xuat thong bao 1
lea dx, tb1
call XuatTB
call NhapChuoi1
; xuat thong bao 2
lea dx, tb2
call XuatTB
call NhapChuoi2
; xuat tb3
lea dx, tb3
call xuattb
call XuatChuoiNguoc
; tro ve dos
mov ah, 4ch
int 21h
;===============================================
;-----------------nhap chuoi binh thuong-----------------
NhapChuoi1 PRoc
; luu dia chi quay ve
Nhap1:
mov ah, 1h
int 21h
cmp al, 13
je thoat1
jmp Nhap1
thoat1:
call xuonghang
ret
NhapChuoi1 endp
;-----------nhap chuoi luu vao ngan xep------------------
NhapChuoi2 PRoc
pop bx ; luu dia chi quay ve
xor cx,cx ; xoa bien dem
mov ah, 1h
Nhap2:
int 21h
cmp al, 13
je thoat2
inc cx
push ax
jmp Nhap2
thoat2:
push bx
call xuonghang
ret
NhapChuoi2 endp
;-------------xuat chuoi nguoc--------------------
XuatChuoiNguoc PRoc
; luu dia chi quay ve
pop bx
cmp cx, 1
jl thoat
xuat:
pop ax
mov dl, al
mov ah, 2h
int 21h
loop xuat
thoat:
mov ah, 2h
mov dl,10
int 21h
push bx
ret
XuatChuoiNguoc endp
;-------------------------------------------------------
XuatTB PROC
mov ah, 9h
int 21h
ret
XuatTB Endp
;-------xuat ky tu cuong hang
xuonghang proc
mov ah, 2h
mov dl,10
int 21h
ret
xuonghang endp
end