1. 程式人生 > >實訓組合語言設計——將bcd碼轉化為二進位制數

實訓組合語言設計——將bcd碼轉化為二進位制數

將bcd碼轉化為二進位制數

data segment
bcd db 1,2,3,4,5    ;bcd碼
a   dw ?              ; 用於存放bcd碼轉化後的十六進位制數
data ends
stack segment para stack'stack'
 stapn dw 50 dup(?)
stack ends
 
code segment
 main proc far
 assume ds:data,cs:code,ss:stack
start: 
 ;set up stack to retuan
   
   
    ;set DS register to current segment
    mov ax,data
    mov ds,ax
    mov ax,stack
    mov ss,ax
   
    ;maim part of the code goes here
   call convert            ;呼叫子程式
   mov a,bx
   ret
   main endp
  
  
   convert proc near
    push si
    push cx
    push ax
    mov si,4
  l1:mov al,bcd[si]
    cbw
    ;digit is now in ax
    ;multiply number in bx by 10 decimal
    xchg ax, bx
    mov cx,10d
    mul cx
    xchg ax,bx
    ;Add digit in ax to number in bx
    add bx,ax
    dec si
    jnz l1
    pop ax
    pop cx
    pop si
exit:mov ah,4ch
     int 21h
convert endp
 
  
 code ends
 
    end start