
Bài tập Lập trình hợp ngữ - Số 2
Bài tập 1:
; bai tap :
; 2) Nhap 1 gia tri N. Dem so bit 0 va bit 1 trong N. Ket qua
;
;
.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
tong db ?
n db ?
tb2 db 'Nhap ky tu N: $'
tb3 db 'Tong So bit 0:$'
tb4 db 'Tong so bit 1:$'
.code
; lay dia chi vung du lieu
mov ax, @data
mov ds, ax
lea dx, tb2
XuatThongBao
NhapKyTu n
XuongHang
; ket qua luu vao ah
mov al,n
call TongBitO
add ah,'0'

mov tong,ah
lea dx, tb3
XuatThongBao
XuatKyTu tong
xuonghang
; ket qua luu vao ah
mov al,n
call TongBit1
add ah,'0'
mov tong,ah
lea dx, tb4
XuatThongBao
XuatKyTu tong
XuongHang
;tro ve dos
mov ah, 4ch
int 21h
;==========================PROC=============
TongBitO PRoc
xor ah,ah
xor cx,cx

mov cx,8
Lap1:
rol al,1
jc Tiep1
inc ah
Tiep1:
Loop lap1
ret
TongBitO EndP
TongBit1 PRoc
xor ah,ah
xor cx,cx
mov cx,8
Lap2:
rol al,1
jnc Tiep2
inc ah
Tiep2:
Loop lap2
ret
TongBit1 EndP
End

Bài tập 2:
; bai tap :
; 3) Nhap N.
; Dem so bit 1 o tri chan ,
; Dem so bit 0 o vi tri le,
; xuat ket qua
.model small
NhapKyTu macro d1
mov ah, 1
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

