2016-10-24 67 views
0

我想在8086 Assembly中打印一個2D數組,並且我被卡在作業的最後幾個步驟中。在8086組件中打印的每個數字之間打印空格

例如,我需要我的輸出是:

1 2 3 4 5 
6 7 8 9 10 

,而不是

12345 
678910 

我已經有打印出數組窩循環,但我不知道如何打印數字之間的空格。謝謝!

+2

歡迎使用堆棧溢出。請稍後閱讀[**關於**](http://stackoverflow.com/tour)頁面,並訪問描述[**如何提出問題**]的鏈接(http://stackoverflow.com/questions/how-to-ask)和[**如何創建一個最小,完整和可驗證的示例**](http://stackoverflow.com/help/mcve)。提供必要的詳細信息,包括您的代碼以及相關的錯誤(如果有的話),將允許大家在這裏幫助您解決問題。 –

+0

而不是打印一個數字字符,以同樣的方式打印一個「'」字符。在asm中一切都只是ASCII字節(除非你編寫代碼來處理UTF-8 ...) –

+0

點擊你的問題下的「編輯」,粘貼你的代碼,保存問題。我們需要查看您的代碼才能進行必要的更改。 –

回答

1

讓我們假設你有一個循環,即打印編號1-10

mov ax,1 

L_again: 
    push ax 
    call printAX 

    pop ax 
    inc ax 
    cmp ax,10 
    jbe L_again 
ret 

那麼所有你需要的是增加一個「打印空間」打印AX

mov ax,1 

L_again: 
    push ax 
    call printAX 
    call printSpace 

    pop ax 
    inc ax 
    cmp ax,10 
    jbe L_again 
ret 

之後可能看起來像這樣(例如對於DOS)。對於這樣的小功能,你當然可以簡單地將幾條指令直接添加到循環本身中

printSpace: 
    mov dl, ' ' 
    mov ah, 2 
    int 21h 
    ret