欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 523|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

雙字節(jié)二進(jìn)制無符號數(shù)除法的疑問

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72088 發(fā)表于 2026-2-26 18:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
入口條件:被除數(shù)在R2、R3、R4、R5中,除數(shù)在R6、R7中。
出口信息:OV=0 時,雙字節(jié)商在R2、R3中,OV=1 時溢出。
影響資源:PSW、A、B、R1~R7 堆棧需求: 2字節(jié)

DIVD: CLR C ;比較被除數(shù)和除數(shù)
        MOV A,R3
        SUBB A,R7
        MOV A,R2
        SUBB A,R6
        JC DVD1
        SETB OV ;溢出
        RET
DVD1: MOV B,#10H ;計算雙字節(jié)商
DVD2: CLR C ;部分商和余數(shù)同時左移一位
        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 ;結(jié)果判斷
        JC DVD3
        MOV R2,A ;夠減,存放新的余數(shù)
        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 ;設(shè)立成功標(biāo)志
        RET
被除數(shù)這里是4位,為啥只比較R2/R3的值,和除數(shù)
4位被除數(shù)哪個是低位,如果只有兩位被除數(shù)咋辦,R4R5是低位嗎?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:72088 發(fā)表于 2026-2-26 21:01 | 只看該作者
最后采用單片機自帶的硬件除法器計算,只保留整數(shù)
;用硬件16位除法器計算16位/16位
        MOV  P_SW2,#80h
        MOV  A,#2fh;被除數(shù)裝入2f99H
        MOV  DPTR,#MD1
        MOVX @DPTR,A
        MOV  A,#99H;
        MOV  DPTR,#MD0
        MOVX @DPTR,A

        MOV  A,ADC_RES;除數(shù)裝入
        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轉(zhuǎn)移,查詢

        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


結(jié)果正確,那就這樣吧,該帖結(jié)束!

回復(fù)

使用道具 舉報

板凳
ID:883242 發(fā)表于 2026-2-27 07:41 | 只看該作者
比較被除數(shù)的高位和除數(shù)就行了,很明顯MSB是R2最高位,LSB是R5最低位。
回復(fù)

使用道具 舉報

地板
ID:1034262 發(fā)表于 2026-2-27 14:45 | 只看該作者
剛開始的數(shù)據(jù)比較是錯誤的。
應(yīng)該是先判斷除數(shù)非0,然后做移位減。
回復(fù)

使用道具 舉報

5#
ID:72088 發(fā)表于 2026-3-2 18:44 | 只看該作者
coody_sz 發(fā)表于 2026-2-27 14:45
剛開始的數(shù)據(jù)比較是錯誤的。
應(yīng)該是先判斷除數(shù)非0,然后做移位減。

我感覺也有問題,開始比較啥,只要不是0就行了唄,
假如被除數(shù)沒有除數(shù)大,結(jié)果都是余數(shù)不就行了
另外這程序比較被除數(shù)最高兩位,,明顯漏洞,如果被除數(shù)只有2字節(jié)呢
回復(fù)

使用道具 舉報

6#
ID:401564 發(fā)表于 2026-3-2 22:18 | 只看該作者
我2018年就來到這個論壇了,那時候我還是用了幾年的匯編,很慶幸,2020年開始放棄匯編轉(zhuǎn)C了,用了C才后悔沒有早點放棄匯編
個人感覺,匯編,特別是8051這種匯編,能看明白就行了,還得是C呀
回復(fù)

使用道具 舉報

7#
ID:384109 發(fā)表于 2026-3-3 08:38 | 只看該作者
代碼注釋已經(jīng)寫得很清楚了,R2、R3是被除數(shù),R4、R5是商,從比較被除數(shù)和除數(shù)大小也可以看出R2是高位
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表