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

pdf10 trang | Chia sẻ: lylyngoc | Lượt xem: 2152 | Lượt tải: 1download
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