Bài tp lp trình hp ng - S 4
Bài tp 1:
; Nhap so nhi phan va chua vao BX.
; Chuong trinh co kiem tra ky tu nhap phai hop le.
; viec nhap ket thuc khi nhan Enter hay da du 16 Bit.
; xuat so nhi phan .
.model small
NhapKyTu macro d1
mov ah, 8
int 21h
mov d1, al
EndM
XuatKyTu macro d1
mov ah, 2
mov dl,d1
int 21h
EndM
XuatThongBao macro
mov ah, 9
int 21h
endM
XuongHang macro
mov ah, 2
mov dl, 10
int 21h
endM
.stack 100h
.data
i db ?
tb1 db 'Nhap so nhi phan: $'
.code
; lay dia chi vung du lieu
mov ax, @data
mov ds, ax
lea dx, tb1
XuatThongBao
call Nhapsonhiphan
XuongHang
call XuatSoNhiPhan
xuonghang
;tro ve dos
mov ah, 4ch
int 21h
;==============================================
NhapSoNhiPhan 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 la '0' hay '1' khong
; neu ko thi nhay toi b2
; nguoc lai toi b5
; b5: xuat ky tu vua nhap
; b6: doi ky tu thanh 0 hay 1
; b7: dich trai bx
; b8: dua tri da doi ( o buoc 6 ) vao bit LSB cua bx
; b9: toi b2 ( cho toi khi du 16)
; b10: ket thuc
xor cx,cx ; gan cx =0
xor bx,bx ; gan bx=0
mov cx,16
NhapLai:
NhapKyTu i
cmp al,13 ; neu la enter thi ket thuc
je KetThuc
cmp al,'0'
jb NhapLai
cmp al,'1'
ja NhapLai
XuatKyTu i
and al,0fh ; doi '1'/ '0' thanh 1/0
shl bx,1 ; dich sang trai bx di mot bit
or bl,al ; dua bit vua nhap vao al
Loop NhapLai
ketThuc:
ret
NhapSoNhiphan endp
XuatSoNhiPhan proc
; GIAI THUAT
; quay trai bx de lay bit cuc trai
; neu cf=1 thi xuat '1'
; nguoc lai xuat '0'
jmp tieptuc
tam db ?
tieptuc:
xor cx,cx ; gan cx =0
mov cx,16
NhapLai1:
rol bx,1 ; quay tri bx de lay bit cuc trai
jc xuat1 ; neu la CF = 1
XuatO:
mov tam,'0'
jmp xuat
Xuat1:
mov tam,'1'
xuat:
xuatkytu tam ; xuat '0'
Loop NhapLai1
ketThuc1:
ret
XuatSoNhiphan endp
end
Bài tp 2:
; bai tap :
; 1). Nhap vao 1 so i [0..7], va 1 gia tri N bat ky( so, ky tu).
; kiem tra bit thu i trong N co la bit 1 hay ko?
; ( trong qua trinh nhap :
; Neu : i <0 khong xuat i ra man hinh
; Va : i>7 khong xuat i ra man hinh
; chi xuat i khi thoa dieu kien)
.model small
NhapKyTu macro d1
mov ah, 8