簡體   English   中英

在分支程序 Motorola 68K 中不顯示輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM