定點數運算程式

2021-10-12 09:57:49 字數 731 閱讀 2158

51c 彙編範例

1.雙位元組數取補碼

功能:(r4 r5)取補碼—>(r4 r5)

例:start: mov a , r5 ;低4位取值 r5—>a()

cpl a ;低4位取反

add a , #01h ;a反碼加1(若溢位cy=1,否則cy=0)

mov r5, a ;存放低4位補碼 a()—>r5

mov a , r4 ;高4位取值 r4—>a()

cpl a ;高4位取反

addc a , #0 ;a反碼加cy(若溢位cy=1,否則cy=0)

mov r4, a ;存放高4位補碼 a()—>r4

end ;結束

2.帶符號數移位

功能:雙位元組原碼(r2 r3)左移1位—>(r4 r5)

數的左(或右)移相當於乘(或除)以基數2

例:start: mov a , r3 ;低4位取值 r3—>a()

clr c ;溢位位cy清0

rlc a ;a帶位左移1位,cy=0移進acc.0,acc.7移進cy

mov r3 , a ;存放低4位 a()—>r3

mov a , r2 ;高4位取值 r2—>a()

rlc a ;a帶位左移1位,cy移進acc.0,acc.7符號位移進cy

mov a.7 , c ;恢復符號位 cy—>acc.7

mov r2 , a ;存放高4位 a()—>r2

end ;結束

定點數乘法

原碼乘法 原碼的手動乘法 就和小學學過的豎式乘法寫法一致,從右到左,乘數每一位分別與被乘數相乘。x 1101 原碼的一位乘法 具體計算 符號位最後單獨處理,絕對值參加乘法運算。該演算法因為每次根據乘出的一位來計算位積,所以稱為原碼一位乘法。步驟 初始部分積為0,yi為1 若yi為0,部分積加 x 累...

浮點數 定點數

浮點數是表示小數的一種方法.所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定.整數可以看做是一種特殊的定點數,即小數點在末尾.8086 8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算.一般的浮點數有點象科學計數法,包括符號位 指數部分和尾...

定點數和浮點數 定點數和浮點數計算

這個東西其實不是很難,但是確實足夠繞的,因為從十進位制的加減乘除轉換到二進位制的加減乘除就已經很麻煩了,然後為了選拔人才,不給你二進位制,直接給你十六進製制,當然最麻煩的還是補碼和移碼,確實足夠 但是給予足夠的練習還是可以比較熟練的,公式稍後會整理到置頂的公式大全中。可以看完了以後去嘗試一下相關計算...