编一程序,在显示器上显示256个ASCII代码,要求显示格式为每行显示16个字符,且中间有空格

data segmentbuf1 DB 256 DUP(?)count equ 256data endscode segmentassume cs:code,ds:datastart:xor al,al xor bl,bl mov cx, count sk: mov bl,10h next1: mov dl,al call disp loop next jmp donenext: mov dl,20h call disp inc al dec bl jnz next1 mov dl,0AH call disp mov dl,0dh call disp jmp skdone: mov ah,4ch int 21hdisp proc near mov ah,02 int 21h retdisp endpcode ends end start这是我的程序,可是结果总是只显示感叹号,也不明白为什么
2026年09月26日 12:35
有1个网友回答
网友(1):

有些符号,是属于控制符,是不能正常观看的。

DATA SEGMENT

    DB    ?

DATA ENDS

;---------------------------

CODE SEGMENT

    ASSUME CS:CODE,DS:DATA

START:

    MOV  AX, DATA

    MOV  DS, AX

    MOV  CX, 256

    MOV  DH, 0

LOP:

    TEST DH, 00001111B

    JNZ  NEXT

    MOV  DL,  13

    CALL DISP

    MOV  DL,  10

    CALL DISP

NEXT:    

    MOV  DL,  DH

    CALL DISP

    MOV  DL,  ' '

    CALL DISP

    INC  DH

    LOOP LOP

;---------------------------

DONE:

    MOV AH,4CH

    INT 21H

;---------------------------

DISP PROC NEAR

    PUSH AX

    MOV  AH, 2

    INT  21H

    POP  AX

    RET

;---------------------------

DISP ENDP

CODE ENDS 

    END START 

上述程序运行后的显示画面如下图。

从图中可见,当显示ASCII的0D、0A等控制符时,使得图中的其它字符,有些错位。