code ASM mẫu cho 8086 - Tính tổng các số từ 5 đến 185...
Thứ Bảy, 25 tháng 2, 2012
0
nhận xét
Chương trình sử dụng trình dịch emu8086.
Mã nguồn ASM:
;=====================================================
;Bai 1: TINH TONG 5->185
;TINH TONG BANG CACH; AX=AX+BX
;TRONG DO: BX: TANG TU 5->185
; AX: SE CHUA TONG CUA TOAN BO DAY SO
;VAN DE O CHO: TONG SO SE O DANG NHI PHAN,
;MUON IN RA MAN HINH TA PHAI CHUYEN TUNG CHU SO SANG MA ASCII
;=====================================================
.model small
.stack 100
.data
tong db 6 dup(0),'$'
tongs db 'tong= $'
.code
main proc
mov ax,@data ;tro A -> dia chi bat dau cua du lieu
mov ds,ax ;tro thanh ghi doan du lieu DS -> A
mov ax,0
mov bx,0
lea si,tong ;Tinh dia chi lech, nap dia chi -> chi so nguon SI.
add si,5 ;Tang dia chi lech len 4.
tinhtong:
add ax,bx
add bx,5
cmp bx,185
JNG tinhtong ;nhay neu <: neu = 190 thi dung.
;CHUYEN QUA MA ASCII
tach:
mov dx,0 ;muc dich de cho DXAX=AX
mov bx,10 ;chia cho 10 de tach hang don vi.
div bx ;BX la thanh 16B => DXAX/BX, thuong->AX,du->DX.
add dl,30h ;+30H se chuyen sang ma ASCII.
mov [si],dl ;chuyen vao ma ASCII ->dia chi lech cua tong.
;[si]: la dia chi cua 1 byte.
dec si ;si=si-1
cmp si,0
jg tach ;nhay neu si>0
;IN RA MAN HINH
mov ah,9 ;ham in ra chuoi ket thuc = $.
lea dx,tongs
int 21h
mov ah,9
lea dx,tong
int 21h
mov ah,4ch ;Ket thuc chuong trinh EXE.
int 21h
main endp
end main
0 nhận xét:
Đăng nhận xét