全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1283
推到 Plurk!
推到 Facebook!

多位元組除法...compiler沒問題....可以請大大們幫我看一下嗎???

答題得分者是:mymj
Bestkid
一般會員


發表:4
回覆:2
積分:1
註冊:2003-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-28 16:51:14 IP:61.64.xxx.xxx 未訂閱
不好意思可以請大大幫我DEBUG一下ㄇ 只有被除數<除數時ok.... 其他情形..查看memory值都錯誤>"< 我找ㄌ好久..都找不出來COMPILER都沒問題 被除數=>30H31H 除數=>32H 商=>33H34H 餘數=>35H36H (考慮被除數可能小於除數ㄉ情形) ORG 00H JMP START ORG 2FH START: MOV 30H,#33H ;設定初始值 MOV 31H,#56H MOV 32H,#11H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#00H MOV A,32H ;判斷除數是否等於0 JZ OVER ;若等於0程式結束 ; MOV A,#00H CJNE A,30H,LOOP ;被除數HIGH BYTE不=0 ; 則做除法 MOV A,31H ;被除數HIGH BYTE=0 CLR C SUBB A,32H JNC LOOP ;被除數>除數時做除法LOOP MOV 33H,#00H ;被除數<除數時 MOV 34H,#00H ;商=0 餘數=被除數 MOV 35H,30H MOV 36H,31H JMP OVER ;程式執行結束 ; LOOP: ;開始移位相減法 MOV A,#00H MOV R2,#16 D1: CLR C ;將被除數移一ㄍ位元到餘數 MOV A,31H ;包含CY RLC A MOV 31H,A MOV A,30H RLC A MOV 30H,A MOV A,36H RLC A MOV 36H,A ; MOV A,36H CLR C SUBB A,32H ;餘數減除數 MOV 32H,A JNC D2 ; MOV A,36H ;餘數<除數 ADD A,32H ;將餘數值還原 MOV 36H,A D2: ;餘數>除數 CPL C MOV A,34H RLC A MOV 34H,A MOV A,33H RLC A MOV 33,A DJNZ R2,D1 ;檢查loop count OVER: END 小弟感激不盡........ ^^
------
^^
mymj
版主


發表:132
回覆:486
積分:608
註冊:2002-10-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-29 19:38:21 IP:203.67.xxx.xxx 未訂閱
你可以以單步執行的方式來除錯或以中斷法來做 一個程式不難,但是要完成想要的功能,那就不一定了寫 除錯是耐心及體力的考驗 < >< >0,1的世界太寂寞,閒暇時候登登山,可以洗滌生硬的心靈
Bestkid
一般會員


發表:4
回覆:2
積分:1
註冊:2003-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-02 13:37:34 IP:61.64.xxx.xxx 未訂閱
引言: 你可以以單步執行的方式來除錯或以中斷法來做 一個程式不難,但是要完成想要的功能,那就不一定了寫 除錯是耐心及體力的考驗 < >< >0,1的世界太寂寞,閒暇時候登登山,可以洗滌生硬的心靈
感謝大大指教... 我debug成功嚕 ^^
------
^^
bum_bum
一般會員


發表:6
回覆:16
積分:4
註冊:2004-02-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-07 20:52:14 IP:218.164.xxx.xxx 未訂閱
引言: 不知道對不對請自己再try ok? ORG 00H JMP START ORG 2FH START: MOV 30H,#33H ;設定初始值 MOV 31H,#56H MOV 32H,#11H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#00H MOV A,32H ;判斷除數是否等於0 JZ OVER ;若等於0程式結束 ; MOV A,#00H CJNE A,30H,LOOP ;被除數HIGH BYTE不=0 ; 則做除法 MOV A,31H ;被除數HIGH BYTE=0 CLR C SUBB A,32H JNC LOOP ;被除數>除數時做除法LOOP MOV 33H,#00H ;被除數<除數時 MOV 34H,#00H ;商=0 餘數=被除數 MOV 35H,30H MOV 36H,31H JMP OVER ;程式執行結束 ; LOOP: ;開始移位相減法 MOV A,#00H MOV R2,#16 D1: CLR C ;將被除數移一ㄍ位元到餘數 MOV A,31H ;包含CY RLC A MOV 31H,A MOV A,30H RLC A MOV 30H,A MOV A,36H RLC A MOV 36H,A ; MOV A,36H CLR C SUBB A,32H ;餘數減除數 MOV 32H,A ;不知道是不是這行錯了32h是除數是不是該mov36h? JNC D2 ; MOV A,36H ;餘數<除數 ADD A,32H ;將餘數值還原 MOV 36H,A D2: ;餘數>除數 CPL C MOV A,34H RLC A MOV 34H,A MOV A,33H RLC A MOV 33,A DJNZ R2,D1 ;檢查loop count OVER: END 小弟感激不盡........ ^^
系統時間:2024-04-20 3:44:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!