秋雪冬枫 发表于 2018-8-14 11:15:00

程序运行后如何显示在界面上

看小甲鱼的视频,程序运行后都会显示在界面上,不会一闪而过返回的,为什么我们运行都是一闪而过不显示在界面上面呢,比如实验9,如果单步执行都看得到的,如果直接在debug里面运行就会一闪而过,直接返回,请大神赐教。

TyCk 发表于 2018-8-14 11:17:54

如果你是C语言命令行窗口编程的话,可以在main函数返回前,加一句getchar(),要求用户再输入一个字符,这样不输入字符,程序就不会返回。
当然,不论什么语言,这种问题,大多是因为程序执行完了,所以执行窗口自然就关闭了,只要让程序卡在最后一步,就可以看到一个cmd窗口了。

种花家吾姓庄 发表于 2018-8-14 11:20:02

cin.ignore(100,'\n');
cout<<"输入任意字符结束程序"<<endl;
cin.get();

秋雪冬枫 发表于 2018-8-14 12:05:53

我学的是汇编语言,用的cmd,要怎么操作呢?

ba21 发表于 2018-8-14 12:41:44

一闪而过说明你代码有问题,没有可显示的内容。

秋雪冬枫 发表于 2018-8-14 14:54:51

本帖最后由 秋雪冬枫 于 2018-8-14 14:57 编辑

assume cs:code,ds:data

data segment
db 'welcome to masm!'
db '02h,24h,71h'
data ends

code segment
start: mov ax,data
       mov ds,ax
          
           mov ax,0b800h
           mov es,ax
          
           mov bx,05a0h
           mov si,0
           mov di,0
                     
                  mov cx,16
          s:mov ah,02h
              mov al,ds:
                  mov es:,ax
                  inc si
                  add di,2h
                  loop s
                  
                  add bx,0a0h
                  mov si,0
              mov di,0
                  mov cx,16
       s0:mov ah,24h
              mov al,ds:
                  mov es:,ax
                  inc si
                  add di,2h
                  loop s0
                  
                  add bx,0a0h
                  mov si,0
              mov di,0
                  mov cx,16
       s1:mov ah,71h
              mov al,ds:
                  mov es:,ax
                  inc si
                  add di,2h
                  loop s1
                  
                  
                  mov ax,4c00h
                  int 21h
                  
code ends
end start
          

如果debug单步执行的话,完全没有问题啊,都看得到。


页: [1]
查看完整版本: 程序运行后如何显示在界面上