2011-12-04 24 views
6

Tôi muốn in bảng nhiều số từ 0 đến 9 trong khi lắp ráp. vì vậy tôi chương trình bên dưới mã:dòng mới trong lắp ráp 8086

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

Nó hoạt động một cách chính xác, nhưng với một vấn đề nhỏ, khi tôi muốn in dòng mới, và một cái gì đó in dòng hiện tại, nó sẽ đi đến dòng sản phẩm mới, nhưng với một số không gian trước dòng mới. enter image description here

Trả lời

9

Bạn cần in dòng mới vận chuyển trở lại.

-1

cố gắng để đưa làn đường trở lại

mov ax, 4c00h ; return to ms-dos 
int 21h 
3

AS anthony nói: Dựa vào lắp ráp của bạn, bạn cần phải làm một vận chuyển trở lại và thức ăn đường để đi đến dòng tiếp theo và đặt con trỏ tại beggining của hàng. Đối với MASM, bạn có thể sử dụng lệnh crlf hoặc giá trị in 0dh và 0ah tương ứng.

4

nếu bạn sử dụng emu80x86 mã này nên làm điều đó

mov dx,13 
    mov ah,2 
    int 21h 
    mov dx,10 
    mov ah,2 
    int 21h 
2

này sẽ in một dòng sản phẩm mới:

1) Thêm trong phân đoạn dữ liệu:

linefeed db 13, 10, "$" 

2) Và sau đó sử dụng địa chỉ này ở bất cứ nơi nào bạn cần một dòng mới:

; new line 
mov ah, 09 
mov dx, offset linefeed 
int 21h 
+0

điều này làm việc cho tôi .. nhưng những gì hiện linefeed db 13, 10, "$" chính xác làm gì? –

+1

Xem câu hỏi SO này http://stackoverflow.com/q/17266837/2348704 – oat