Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Newline in 8086 assembly language: my text prints stair-stepped

I'm getting stair-step output like this enter image description here

My program works correctly, except that when I print a new line, and then print something in the current line, it shows on the next line but with some space before it.


The program is this: (print a table of multiple numbers from 0 to 9):

data_seg segment
    I DB 0D
    J DB 0D
    R DB ?
    DIVER DB 10D
    data_seg ends

stack_seg segment
    stack_seg ends

code_seg segment
    MAIN proc far
        assume cs:code_seg, ds:data_seg, ss:stack_seg
        MOV AX,data_seg
        MOV DS,AX

        FOR1:
            MOV J,0D
            FOR2:
            MOV AX,0H
            MOV AL,I
            MUL J
            DIV DIVER 
            MOV R,AH
            ADD AL,48D
            MOV AH,0EH
            INT 10H
            MOV AL,R
            ADD AX,48D
            MOV AH,0EH
            INT 10H

            MOV AX,32D
            MOV AH,0EH
            INT 10H
            INC J 
            MOV AX,0
            MOV AL,J
            SUB AX,10D
            JNZ FOR2
         INC I
         MOV AX,10D
         MOV AH,0EH
         INT 10H
         MOV AX,0
         MOV AL,I
         SUB AX,10D
         JNZ FOR1

        MOV AX,4CH
        INT 21H
        MAIN endp
    code_seg ends
end MAIN
like image 544
Moein Hosseini Avatar asked Dec 04 '11 07:12

Moein Hosseini


2 Answers

You need to print new line and carriage return.

like image 116
Anthony Blake Avatar answered Nov 09 '22 01:11

Anthony Blake


if your using emu80x86 this code should do it

mov dx,13
  mov ah,2
  int 21h  
  mov dx,10
  mov ah,2
  int 21h
like image 32
MRNakh Avatar answered Nov 09 '22 01:11

MRNakh