[英]Not displaying output in branching program Motorola 68K
在經過循環后,我無法將任何輸出顯示到我的答案緩沖區,即使我輸入 2 它也沒有將其顯示為輸出。 我確定我的問題出在 for、if 或 factor 塊中,但我已經查看了一段時間的代碼,但沒有任何幫助。 任何幫助表示贊賞!
for:
cmp.l D0,D3 *D3-D0
bne if *!= 0
move.l D3,(A2)+
bra done
if:
move.l D0,D7
divu D3,D7
clr.w D7
swap D7
move.w D7,D6
tst.w D6
beq factor
addq #1,D3
bra for
factor:
move.b #'*',(A2)+
move.b D3,(A2)+
bra done
divu D3,D0
swap D0
clr.w D0
swap D0
subq #1,D3
bra for
這里:
move.l D3,(A2)+
bra done
寫入值本身並且只要不顯示任何內容,因為它從零開始,而且您必須添加#'0'
:
move.b D3,(A2)
add.b #'0',(A2)+
bra done
同樣在這里:
factor:
move.b #' * ',(A2)+
move.b D3,(A2)+
第一行是可疑的並且可能依賴於匯編程序,因為您將一個 3 字節的字符串存儲在一個字節中......
第二行沒有添加 0 ascii 代碼。 我會改寫為:
factor:
move.b #' ',(A2)+
move.b #'*',(A2)+
move.b #' ',(A2)+
move.b D3,(A2)
add.b #'0',(A2)+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.