2016-10-24 6 views
0

8086 어셈블리에서 2D 배열을 인쇄하려고하는데 마지막으로 할당 단계를 진행했습니다.8086 어셈블리에서 인쇄 된 모든 숫자 사이에 공백을 인쇄합니다.

예를 들어, 내가 할 내 출력을 필요

1 2 3 4 5 
6 7 8 9 10 

대신

12345 
678910 

의 이미 배열을 인쇄하기위한 중첩 루프를 가지고 있지만 인쇄하는 방법을 모른다 숫자 사이의 공백 감사!

+2

스택 오버플로에 오신 것을 환영합니다. 곧 [** About **] (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