欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
雙字節二進制無符號數除法的疑問
[打印本頁]
作者:
新鄉家電維修
時間:
2026-2-26 18:13
標題:
雙字節二進制無符號數除法的疑問
入口條件:被除數在R2、R3、R4、R5中,除數在R6、R7中。
出口信息:OV=0 時,雙字節商在R2、R3中,OV=1 時溢出。
影響資源:PSW、A、B、R1~R7 堆棧需求: 2字節
DIVD: CLR C ;比較被除數和除數
MOV A,R3
SUBB A,R7
MOV A,R2
SUBB A,R6
JC DVD1
SETB OV ;溢出
RET
DVD1: MOV B,#10H ;計算雙字節商
DVD2: CLR C ;部分商和余數同時左移一位
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C ;保存溢出位
CLR C
SUBB A,R7 ;計算(R2R3-R6R7)
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0 ;結果判斷
JC DVD3
MOV R2,A ;夠減,存放新的余數
MOV A,R1
MOV R3,A
INC R5 ;商的低位置一
DVD3: DJNZ B,DVD2 ;計算完十六位商(R4R5)
MOV A,R4 ;將商移到R2R3中
MOV R2,A
MOV A,R5
MOV R3,A
CLR OV ;設立成功標志
RET
被除數這里是4位,為啥只比較R2/R3的值,和除數
4位被除數哪個是低位,如果只有兩位被除數咋辦,R4R5是低位嗎?
作者:
新鄉家電維修
時間:
2026-2-26 21:01
最后采用單片機自帶的硬件除法器計算,只保留整數
;用硬件16位除法器計算16位/16位
MOV P_SW2,#80h
MOV A,#2fh;被除數裝入2f99H
MOV DPTR,#MD1
MOVX @DPTR,A
MOV A,#99H;
MOV DPTR,#MD0
MOVX @DPTR,A
MOV A,ADC_RES;除數裝入
MOV DPTR,#MD5
MOVX @DPTR,A
MOV A,ADC_RESL;
MOV DPTR,#MD4
MOVX @DPTR,A
MOV A,#10100000B;16/16模式
MOV DPTR,#ARCON
MOVX @DPTR,A
MOV A,#00000001B;開始計算
MOV DPTR,#OPCON
MOVX @DPTR,A
TTT:
MOV DPTR,#OPCON
MOVX A,@DPTR
ANL A,#01H
JNZ TTT ;不為0轉移,查詢
MOV DPTR,#MD1
MOVX A,@DPTR
MOV 35H,A
MOV DPTR,#MD0
MOVX A,@DPTR
MOV 34H,A
MOV P_SW2,#00h
MOV A,35H;解壓成BCD碼供顯示驗證
SWAP A
ANL A,#0FH
MOV 33H,A
MOV A,35H
ANL A,#0FH
MOV 32H,A
MOV A,34H
SWAP A
ANL A,#0FH
MOV 31H,A
MOV A,34H
ANL A,#0FH
MOV 30H,A
RET
結果正確,那就這樣吧,該帖結束!
作者:
Hephaestus
時間:
2026-2-27 07:41
比較被除數的高位和除數就行了,很明顯MSB是R2最高位,LSB是R5最低位。
作者:
coody_sz
時間:
2026-2-27 14:45
剛開始的數據比較是錯誤的。
應該是先判斷除數非0,然后做移位減。
作者:
新鄉家電維修
時間:
2026-3-2 18:44
coody_sz 發表于 2026-2-27 14:45
剛開始的數據比較是錯誤的。
應該是先判斷除數非0,然后做移位減。
我感覺也有問題,開始比較啥,只要不是0就行了唄,
假如被除數沒有除數大,結果都是余數不就行了
另外這程序比較被除數最高兩位,,明顯漏洞,如果被除數只有2字節呢
作者:
Y_G_G
時間:
2026-3-2 22:18
我2018年就來到這個論壇了,那時候我還是用了幾年的匯編,很慶幸,2020年開始放棄匯編轉C了,用了C才后悔沒有早點放棄匯編
個人感覺,匯編,特別是8051這種匯編,能看明白就行了,還得是C呀
作者:
人中狼
時間:
2026-3-3 08:38
代碼注釋已經寫得很清楚了,R2、R3是被除數,R4、R5是商,從比較被除數和除數大小也可以看出R2是高位
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1