回 帖 发 新 帖 刷新版面

主题:程序出错了?

STACK  SEGMENT PARA STACK 'STACK'
       DB 50 DUP (0)
STACK  ENDS

DATA   SEGMENT
STRING DB "WELCOME TO UES ASSMNLER!"
       DB 0DH,0AH,'$'
DATA   ENDS

CODE   SEGMENT
       ASSUME CS:CODE,DS:DATA,SS:STACK
START  PROC FAR 
       PUSH DS
       MOV AX,0
       PUSH AX
       MOV AX,DATA
       MOV DS,AX
       MOV AH,9
       MOV DX,OFFSET STRING
       INT 21H
       LEA BX,STRING
LOOP1: CMP BYTE PTR [BX],'$'
       JE LOOP2
       MOV AH,2
       MOV DL,[BX]
       INT 21H
       INC BX
       JMP LOOP1
LOOP2: RET
START  ENDP
CODE   ENDS
       END START

主要是在屏幕上显示一个字符串。

编译和链接都没有出现问题 但是在运行时却不能显示字符串 哪位能告诉一下是程序出错了还是怎么了(程序是按照书上敲的)

回复列表 (共2个回复)

沙发

在命令行下运行,
我试了没问题

板凳

在命令行下,
16位dos程序运行时看不到显示的结果!
如果程序本身没问题,

解决方法1:可以在全屏模式下开启命令行,然后运行即可
           命令行快捷方式的 属性-》选项-》显示选项-全屏
解决方法2:加入暂停的代码,如下
    
    .......
        mov ah,1;暂停,任意键关闭
    int 21h
    mov ah,4ch     ;结束,可以修改al设置返回码
    int 21h

我来回复

您尚未登录,请登录后再回复。点此登录或注册