空陌 发表于 2013-5-30 21:16:00

王爽《汇编语言》第九章实验9

第9章实验9我自己编的程序可以运行,但是没有向屏幕输出;我将习题答案的代码复制、编译之后也是屏幕没有输出,这是怎么回事啊?会不会是dos设置的原因??

熊文杰 发表于 2013-5-30 22:10:55


assume cs:code

data segment
      db 'Welcome to masm!',0
data ends
;(dh) = 行号 (dl) = 列号 (cl) = 颜色 ds:si指向字符串地址
;在屏幕的8行3列显示绿色的打data段中的数据

stack segment
      dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:
      mov dh,8;
      mov dl,3;
      mov cl,2;
      mov ax,data;
      mov ds,ax;
      mov si,0;
      mov ax,stack;
      mov ss,ax;
      mov sp,16;
      call show_str
      
      mov ax,4c00h;
      int 21h;
show_str:
      ;首先把该压栈保存的压栈保存 ,
      push dx
      push ax
      push si
      push cx
      
      ;计算出dh行dl列的数据缓冲地址
      ;计算行数所用的字节数
      mov ax,160
      mul dh
      mov cx,ax;
      
      ;计算列数字节数
      mov ax,2
      mul dl
      
      ;计算要填充数据的缓冲区地址偏移
      add ax,cx;
      
      
      ;填充缓冲区
      mov si,0;
      mov di,ax;
      mov ax,0b800h;
      mov es,ax;
      mov ch,0;
      
      pop ax;
      s:
                mov cl,ds:;
                jcxz funcend;cx为0就填充颜色
                mov es:,cl;
               
                mov es:,al;颜色属性
                add di,2
                inc si;
                jmp s;

               
      ;函数结束前把该出栈的全部出栈
      funcend :
                pop si
                pop ax
                pop dx
               
                ret
code ends

end start这段代码你跑一下看看,这段代码我验证过可以在屏幕显示文字。如果能显示,就表示是程序的问题。如果不能显示就再来分析其他原因

空陌 发表于 2013-5-31 13:50:55

熊文杰 发表于 2013-5-30 22:10 static/image/common/back.gif
这段代码你跑一下看看,这段代码我验证过可以在屏幕显示文字。如果能显示,就表示是程序的问题。如果不能显 ...

还是没法显示哦,也是程序运行没有显示错误,但是没有输出:'(,会不会跟dos的设置有关?

熊文杰 发表于 2013-5-31 14:06:56

空陌 发表于 2013-5-31 13:50 static/image/common/back.gif
还是没法显示哦,也是程序运行没有显示错误,但是没有输出,会不会跟dos的设置有关?

那你下一个dosbox把,虚拟dos,是64位win7,就是在dos box上跑的

空陌 发表于 2013-5-31 14:55:13

熊文杰 发表于 2013-5-31 14:06 static/image/common/back.gif
那你下一个dosbox把,虚拟dos,是64位win7,就是在dos box上跑的

我的机子是32位win7的,用64位的可以么??

2548827329 发表于 2013-5-31 15:33:34

你重启电脑后再运行那个文件试一下

熊文杰 发表于 2013-5-31 15:42:41

空陌 发表于 2013-5-31 14:55 static/image/common/back.gif
我的机子是32位win7的,用64位的可以么??

我是64位win7 dosbox下是没什么问题的

空陌 发表于 2013-5-31 16:23:44

2548827329 发表于 2013-5-31 15:33 static/image/common/back.gif
你重启电脑后再运行那个文件试一下

还是没看到输出,好像屏幕一闪,就没有了:(

asyz8573 发表于 2013-5-31 16:26:47

我也是这样额求解...

一站幸福 发表于 2013-5-31 16:43:28

真是难得给力的帖子啊。

2548827329 发表于 2013-5-31 17:52:47

本帖最后由 2548827329 于 2013-5-31 17:53 编辑

空陌 发表于 2013-5-31 16:23 static/image/common/back.gif
还是没看到输出,好像屏幕一闪,就没有了
试一试这段代码,你刚开电脑就编译执行这段代码试一下
assume cs:code
data segment
   db"Beginner's All-purpose Symbolic Instruction Code.",0
data ends
code segment
begin:
   mov ax,data

         mov ds,ax
         mov si,0
         call letterc
         
         mov ax,0b800h
         mov es,ax
         mov di,720h
      
s0:
   mov ch,0
         mov cl,
         jcxz s1   
         mov es:,cl
         mov ah,01000010b
         mov es:,ah
         inc si
         inc cx
         add di,2
         loop s0
s1:         
         mov ax,4c00h
         int 21h
letterc:   
   push ax
         push si
s:
   mov ch,0
         mov cl,
         jcxz s4
   cmp cl,61h
         jb s3
         cmp cl,7ah
         ja s3
         sub cl,20h
         mov ,cl
s3:         inc si
   inc cx
   loop s
s4:         
   pop si
         pop ax
         ret
code ends
end begin

空陌 发表于 2013-5-31 19:21:17

2548827329 发表于 2013-5-31 17:52 static/image/common/back.gif
试一试这段代码,你刚开电脑就编译执行这段代码试一下

结果还是一样哦,闪频之后就没有反应了

2548827329 发表于 2013-5-31 21:13:51

空陌 发表于 2013-5-31 19:21 static/image/common/back.gif
结果还是一样哦,闪频之后就没有反应了

那就是电脑的问题吧,不过不要纠结这个问题了,继续向下学习吧

bafengao 发表于 2013-6-1 06:28:41

无回帖,不论坛,这才是人道。

熊文杰 发表于 2013-6-2 13:47:21

debug下单步是有显示的 是把?
在mov ax,4c00h前面加
mov ah,01h
int 21h
相当于getchar()

空陌 发表于 2013-6-3 08:07:59

熊文杰 发表于 2013-6-2 13:47 static/image/common/back.gif
debug下单步是有显示的 是把?
在mov ax,4c00h前面加
mov ah,01h


终于有显示了,3Q3Q……

熊文杰 发表于 2013-6-3 11:57:10

空陌 发表于 2013-6-3 08:07 static/image/common/back.gif
终于有显示了,3Q3Q……

有显示就好{:1_1:}

双鱼淚 发表于 2014-11-18 17:14:18

本帖最后由 双鱼淚 于 2014-11-18 17:17 编辑

为何但不调试能够显示   直接运行却不行呢
已经加了mov ah ,01h
                int 21h
页: [1]
查看完整版本: 王爽《汇编语言》第九章实验9