1樓:匿名使用者
如果直接用c程式寫,那就沒必要考慮除法的細節了,比如unsigned int a,b,c;
a=0x3456;
b=0x1040;
c=a/b;
如果你想用匯編搞定,那沒辦法,老老實實的寫或者網上(書上)找這樣的程式,肯定能找到的。不過我可以說一下演算法,那就是相減,被除數連續不斷的減去除數,直到差小於除數為止,這時減去的次數就是商,剩下的差就是餘數。
2樓:生活如歌
下面的例子是一個多位元組除法運算:
dodiv:
mov a,r0
mov r4, a
mov a, r1
mov r5, a
mov a, r3
mov r7, a
mov a, r0
add a, r3
mov r6,a
mov r1, a
lp0:
mov @r1,#00h
inc r1
djnz r3, lp0
mov a,r7
add a, r7
mov r2, a
mov b, #04h
mul ab
lp1:
push a
mov a, r2
mov r3, a
mov a, r4
mov r1, a
clr c
lp2:
mov a,@r1
rlc a
mov @r1, a
inc r1
djnz r3, lp2
next:
mov a, r6
mov r0, a
mov a, r5
mov r1, a
mov a, r7
mov r3, a
clr c
lp3:
mov a,@r0
subb a,@r1
push a
inc r0
inc r1
djnz r3, lp3
mov a, r7
mov r3, a
jc small
mov a, r4
mov r0, a
inc @r0
mov a, r6
add a, r7
dec a
mov r0, a
lp4:
pop a
mov @r0, a
dec r0
djnz r3, lp4
sjmp next
small:
pop a
djnz r3, small
pop a
dec a
jnz lp1
i504:
mov a,r6
add a, r7
dec a
mov r0, a
mov r2, a
mov a,@r0
jb e7h, add1
mov a, r6
mov r1, a
mov a, r7
mov r3, a
clr c
lp5:
mov a,@r1
rlc a
mov @r1, a
inc r1
djnz r3, lp5
mov a, r2
mov r0, a
mov a, r7
mov r3, a
add a, r5
dec a
mov r1, a
lp6:
clr c
mov a,@r0
subb a,@r1
jc return
jnz add1
dec r0
decdjnz r3, lp6
add1:
mov a,r4
mov r1, a
mov a, r7
mov r3, a
setb c
lp7l:
mov a,@r1
addc a, #00h
mov @r1, a
djnz r3, lp7
return:
mov a,r4
mov r0, a
mov a, r7
mov r3, aret
微控制器中c語言如何實現浮點除法運算
3樓:匿名使用者
直接du
除就可以了zhi
比如定義一個整形變數daoint x;專
另一個整形變數int y;
浮點型變數float z;
浮點數屬除法:
z = (float)x / (float)y
微控制器c語言中,微控制器C語言中 while a 是什麼意思 a為什麼要定義得那麼大 比如
金色潛鳥 我估計,那是用來作時間間隔控制。while a 是迴圈50000次,當a 變0時,while 結束。為何定得如此大,是因為空迴圈速度很快,只有迴圈很多次才能獲得足夠長的時間間隔。a 50000 while a 第2個 while a 似乎有問題,死迴圈。是不是前面漏了另乙個 a 50000...
微控制器C語言程式設計題,微控制器C語言程式設計題 20
爬行的山羊 這是兩個題啊。哈哈好做,第一個有c語言的冒泡法排序,第二個用中斷,讀,輸出就可以 include define led0 0 define led1 1 define led2 2 define ledport p2 sbit sw0 p1 0 sbit sw1 p1 1 sbit sw...
51微控制器組合語言做16位除法,51微控制器是否能夠完成16位的加減乘除運算
大別山的蝸牛 雙位元組無符號除法程式 r5r2r3r4 r6r7 r2 r3r4 餘數r6r7 入口 r5,r2,r3,r4,r6,r7 占用資源 acc,b,f0 堆疊需求 4位元組 出口 r2 r3,r4,r6,r7,ovndiv42 mov a,r1 push a mov b,00h ndv4...