1301664456 发表于 2011-2-26 18:35:03

实验9不知道哪错了,能编译,但不能显示彩色字

本帖最后由 china0008 于 2011-2-26 23:08 编辑


assume cs:code,ds:data,ss:stack

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

stack segment
         dw 3 dup(0)
stack ends

code segment
start:   mov ax,data
            mov ds,ax
            mov ax,stack
            mov ss,ax
            mov sp,6h               
            mov bx,10h    ;用bx来索引颜色
      xor si,si   ;用si来索引字母
      xor di,di
            mov di,0720h
            mov ax,0b800h
            mov es,ax
            mov cx,3      ;外循环次数为3
               
s0:      push cx
         push di
         mov cx,16
         
s1:   mov ah,
          mov al,    ;用si来索引字母
       push ax
          pop es:
          inc si
          add di,2h
          loop s1
               
         xor si,si
         pop di
         add di,0a0h   ;换行
      inc bx      ;换颜色属性
               
      pop cx
         loop s0
               
         mov ax,4c00h
         int 21h
               
code ends
end start

china0008 发表于 2011-2-26 23:17:18

看了你的源码,思路很清晰。没有任何错误。   请问你是在什么环境下运行的源码?如果是win7下显示不出来就对了。这与虚拟8086模式有关系。请安装虚拟机吧。

1301664456 发表于 2011-2-27 01:30:03

就是在windows XP的虚拟模式下运行的呀,之前写的一个草稿程序用来编译运行,还能看见第一排显示绿色的"welcome to masm!",但二三排都是杂乱的东西,然后我又把实验九的标答(校对过没抄错)抄下来编译,和上面的程序运行结果一样,都是全黑的什么也没有,显示不了彩色字

china0008 发表于 2011-2-27 10:35:33

win xp下 编译后有时也会显示不出来。我发现 你运行一下 debug 然后退出debug,再运行编译的好的程序就能正常工作了。 问题就处在虚拟8086.你的源码没有错误。我试验过了。

1301664456 发表于 2011-2-28 15:59:56

原来是这样啊,谢谢!

冷月无痕 发表于 2019-7-20 10:32:26

{:10_254:}等我试一试看看效果
页: [1]
查看完整版本: 实验9不知道哪错了,能编译,但不能显示彩色字