非壓縮BCD碼轉壓縮BCD碼組合語言

2021-07-24 15:41:19 字數 1792 閱讀 7158

datas segment

;此處輸入資料段**

buf dw 0302h,0908h,0705h,0102h

res db?

buf_size db?

res_size db?

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

;此處輸入**段**

;巨集 顯示乙個字元

dispchar macro char

mov ah,2

mov dl,char

int 21h

endm

;巨集定義完成

;巨集 顯示字串

dispmsg   macro message

mov ah,9

lea dx,message

int 21h

endm

;巨集定義完成

;巨集 顯示十六進製制數的四位

disphex   macro hexdata

local disphex1

push ax

push bx

push cx

push dx

mov bx,hexdata

mov cx,0404h

disphex1: rol bx,cl

mov al,bl

and al,0fh

call htoasc

dispchar al

dec ch

jnz disphex1

pop dx

pop cx

pop bx

pop ax

endm

;巨集定義完成

mov cx, lengthof buf

lea si,buf

lea di,res

again:

mov ax,word ptr [si]

;disphex ax

call bcd

mov byte ptr [di],al

inc si

inc si

inc di

loop again  

;顯示res

的內容lea si, res

;disphex [si+4]    

disphex [si+2]

disphex [si]

mov ah,4ch

int 21h

;子程式壓縮

bcd轉非壓縮

bcdbcd proc

push cx

mov cl,4

shl al,cl

shr ax,cl

pop cx

retbcd endp

;子程式十六進製制轉

ascii

htoasc proc

push bx

mov bx,offset ascii

and al,0fh

xlat ascii

pop bx

retascii db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h

db 41h,42h,43h,44h,45h,46h

htoasc  endp    

codes ends

endstart

組合語言實現非壓縮BCD碼整數除法

實驗1.3 多位元組非壓縮型bcd數除法 data segmentadb 8,6,8,7,5bdb5 c1db 5dup 0 nequ5 data ends code segment assumecs code,ds data,es data start movax,data movds,ax mo...

彙編 ASCII碼轉BCD碼並輸出

datas segment nums db 30h,31h,41h,38h,39h,32h,33h,36h,31h ascii碼 numo db 4 dup dlen nums datas ends codes segment assume cs codes,ds datas start mov a...

bcd碼是什麼意思 BCD碼是什麼

今天給大家穿插講一期常用的數字編碼形式 bcd碼。可能我們在學校經常使用二進位制和十六進製制的數字表達形式。然而大多數情況下我們都是需要和十進位制數進行轉化來進行數字的表達,因為我們社會普遍習慣使用十進位制。相對於一般的浮點式記數法,採用bcd碼,既可儲存數值的精確度,又可免去使計算機作浮點運算時所...