Bài tập lập trình hợp ngữ - Số 5 Bài 1:Nhap so thap luc( toi da 4 ky tu) BX. Chuong trinh co kiem tra ky tu nhap phai hop le. viec nhap ket thuc khi nhan Enter hay da du 4 ky tu. xuat so thap luc small macro d1 ah, 8 21h d1,...
Nội dung trích xuất từ tài liệu:
Bài tập lập trình hợp ngữ - Số 5 Bài tập lập trình hợp ngữ - Số 5Bài 1:; Nhap so thap luc( toi da 4 ky tu) BX.; Chuong trinh co kiem tra ky tu nhap phai hop le.; viec nhap ket thuc khi nhan Enter hay da du 4 ky tu.; xuat so thap luc.model smallNhapKyTu macro d1 mov ah, 8 int 21h mov d1, al EndMXuatKyTu macro d1 mov ah, 2 mov dl,d1 int 21h EndMXuatThongBao macro mov ah, 9 int 21h endMXuongHang macro mov ah, 2 mov dl, 10 int 21h endM.stack 100h.data i db ? tb1 db Nhap so thap luc phan: $ tb2 db So vua nhap:$.code; lay dia chi vung du lieumov ax, @datamov ds, axlea dx, tb1XuatThongBaocall NhapsoThapLucXuongHangcall XuatSoThapLucxuonghang;tro ve dosmov ah, 4chint 21h;==============================================NhapSoThapLuc proc ; GIAI THUAT ; b1: xoa bx ; b2: Nhap 1 ky tu ; b3: neu ky tu la enter thi ket thuc ; b4: kiem tra ky tu vua nhap co phai tu 0 hay F khong ; neu ko thi nhay toi b2 ; nguoc lai toi b5 ; b5: xuat ky tu vua nhap ; b6: doi ky tu thanh HEX tuong ung ; b7: dich trai bx 4 bit ; b8: dua tri da doi ( o buoc 6 ) vao 4 bit thap cua bx ; b9: toi b2 ( cho toi khi du 4) ; b10: ket thuc xor cx,cx ; gan cx =0 xor bx,bx ; gan bx=0 mov cl,4 mov si, 4 NhapLai: NhapKyTu i cmp al,13 ; neu la enter thi ket thuc je KetThuc cmp al,0 jb NhapLai cmp al,9 ja Tiep jmp LaSoTiep: cmp al,A ; kiem tra la chu HOA jB NhapLai cmp al,F ; kiem tra la chu HOA jA TiepNua jmp LaChuHoaTiepNua: cmp al,a ; kiem tra la chu THUONG jB NhapLai cmp al,f ; kiem tra la chu THUONG jA NhapLai jmp LaChuThuongLaSo: SUB al,0 ; doi sang so tuong ung jmp dichBXLaChuHoa: sub al,37h jmp dichBXLaChuThuong: sub al,57h jmp dichBX dichBX: shl bx,cl ; dich sang trai bx di CL bit or bl,al ; dua bit vua nhap vao al dec si XuatKyTu i jnz NhapLai ketThuc: retNhapSoThapLuc endpXuatSoThapLuc proc ; GIAI THUAT ; chep bh vao dl ; dich phai dl 4 bit ; neu dl< 10 doi 0..9 tuong ung ; neu khong doi thanh A..F tuong ung ; xuat ky tu trong dl ; quay trai bx 4 bit jmp tieptuc tam db ? tieptuc: xor cx,cx ; gan cx =0 mov cx,4 mov si, 4 NhapLai1: mov dl, bh ; chep bh vao dl shr dl,cl ; dich phai dl cmp dl, 10 ; dl< 10, doi thanh so jb LaSo2 add dl, 37h ; la chu jmp xuat LaSo2: ADD dl,30h xuat: xuatkytu dl ; xuat 0 rol bx, cl dec si jnz NhapLai1 retXuatSoThapLuc endpEndBài 2:; Viet Chuong trinh nhap 1 ky tu va hien thi Ma ASCII theo; dang nhi phan va thap luc phan.; vi du:; nhap ky tu : A; Ma ASCII: 41h; dang nhi phan: 01000001b.model smallNhapKyTu macro d1 mov ah, 8 int 21h mov d1, al EndMXuatKyTu macro d1 mov ah, 2 mov dl,d1 int 21h EndMXuatThongBao macro mov ah, 9 int 21h endMXuongHang macro mov ah, 2 mov dl, 10 int 21h endM.stack 100h.data i db ? tb1 db Nhap ky tu : $ tb2 db Ma ASCII : $ tb3 db Dang Nhi Phan: $.code; lay dia chi vung du lieumov ax, @datamo ...