Kênh Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
Saturday, December 7, 2013


http://youtu.be/tW

code ASM mẫu cho 8086 - Đọc từ bàn phím một số nhị phân


Chương trình sử dụng trình dịch emu8086.


Mã nguồn ASM:


.model small
.stack 100
.data
    TBao DB 'Go vao 1 so he 2 (max 16 bit,'
         DB 'CR de thoi):$'
.code
MAIN Proc
    mov ax,@data
    mov ds,ax
 
    mov ah,9
    lea dx,TBao
    int 21h
 
    mov cx,16
    xor bx,bx   ;xoa bx=0
    mov ah,1    ;nhap 1 ky tu tu ban phim
TIEP:
    int 21h     ;Nhap vao thanh ghi AL.
    cmp al,13
    je THOIDOC  ;AL=enter thi THOIDOC
    sub al,30h  ;-30h chuyen qua he 2.
    rol bx,1    ;quay trai 1 bit de lay cho DOC tiep
    or bl,al    ;cong bit vua doc dc: al->bl
    LOOP TIEP
THOIDOC:
    mov ah,2
    mov dl,13   ;ve dau dong
    int 21h
    mov ah,2
    mov dl,10   ;enter
    int 21h
 
    mov cx,16   ;lap lai 16 lan in ra
    mov ah,2
HIEN:
    xor dl,dl   ;xoa dl=0
    rol bx,1    ;quay trai 1 bit, bit cao nhat dc dua vao CF

    adc dl,30h  ;cong co nho voi CF: dl=dl+30h+CF,chuyen qua ASCII
    int 21h
    LOOP HIEN
 
    mov ah,4ch
    int 21h
MAIN endp
end MAIN nfnt

code ASM mẫu cho 8086 - Tính tổng 2 số thập phân 4 chữ số


Chương trình sử dụng trình dịch emu8086.


Mã nguồn ASM:


;=================================================================
;Bai 2: TINH TONG 2 SO THAP PHAN CO 4 CHU SO
;VAN DE O CHO: PHAI NHAP VAO 2 SO O DANG MA ASCII TREN BAN PHIM,
;DE TINH TOAN DUOC TA PHAI CHUYEN SANG MA NHI PHAN.
;BANG CACH: DUNG 1CTC NHAPSO
;SAU KHI CO 2 SO DANG NHI PHAN THI OK. TUONG TU BAI 1.
;=================================================================
.model small
.stack 100
.data
    tong db 5 dup(0),'$' ;Chu y: tong o dau tien
    tb1 db 'nhap so thu nhat: $'
    tb2 db 13,10,'nhap so thu hai:  $'
    tb3 db 13,10,'tong hai so la: $'
    so1 dw 0
    so2 dw 0
.code
main proc
     mov ax,@data
     mov ds,ax
   
     mov ah,9
     lea dx,tb1
     int 21h        ;goi loi thong bao nhap
     call nhapso
     mov so1,bx
   
     mov ah,9
     lea dx,tb2
     int 21h
     call nhapso
     mov so2,bx
   
     mov ax,so1  
     add ax,so2     ;dung ax chua tong 2 so

     lea si,tong    ;si tro vao dia chi lech cua 'tong'
     add si,4
     mov cx,5       ;lap lai 5 lan chia,chuyen so sang chuoi: 'tong': tong 2 so 4 chu so co the la 5 chu so.
tach:
     mov dx,0       ;o lenh DIV BX: goc BX la 16bit=>DXAX/BX<=>AX/BX
     mov bx,10
     div bx         ;DXAX/BX: AX<-thuong , DX<-so du
     add dx,30h     ;doi ra ma ASCII
     mov [si],dl    ;dl -> thanh ghi tong
     dec si         ;si<- si-1
     loop tach
   
     mov ah,9       ;in ra thong bao va 'tong'
     lea dx,tb3
     int 21h
   
     lea dx,tong
     int 21h
         
     mov ah,4ch
     int 21h
main endp
;HAM NHAP**********************************
nhapso proc
       mov bx,0     ;chua so nhap vao
       mov cx,4     ;lap lai 4 lan luu 4 chu so
TIEP:
;nhap AX
       mov ah,1
       int 21h      ;doc 1 ky tu vao AL: (0->9)
       cmp al,13
       je thoat     ;neu = enter thi thoat.
;Cat AX->SP    
       sub al,30h   ;chuyen qua he 2
       push ax      ;cat ax -> {SP} ngan xep
;Nhan 10*BX      
       mov ax,bx    ;chuyen BX->AX de nhan 10 len
       mov si,10    ;nap 10 vao thanh ghi SI 16Bit
       mul si       ;AX*SI: DXAX<-tich. (KQ <=90 =>tich->AX)
;BX=AX+10*BX    
       mov bx,ax    ;AX=BX*10->BX
       pop ax       ;lay tu ngan xep {SP} ->ax
       mov ah,0     ;xoa ah=1 o tren
       add bx,ax    ;BX*10+AX->BX
       loop TIEP  
thoat:       ret          ;tro ve CTC tu ctc
nhapso endp
;*******************************************
end main

code ASM mẫu cho 8086 - Tính tổng các số từ 5 đến 185...


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 comments:

Post a Comment

domain, domain name, premium domain name for sales

Popular Posts