moshushi 发表于 2011-5-4 20:49:33

显示红底绿字的代码看看错在了哪里

本帖最后由 moshushi 于 2011-5-12 20:10 编辑

assume cs:code,ds:data

data segment
msg db "hello world"   
data ends


code segment
    start:
   mov ax,data
   mov ds,ax
   
   mov bx,0b800
   mov es,bx
   mov cx,11
   mov si,0
   movbx,0
   mov ah,01000010
   s:mov al,ds:
   mov es:,al
   mov es:,ah
   inc si
   add bx,2
   loop s
   
   mov ax,4coo
   int 21

code ends
   end

winddyj 发表于 2011-5-4 23:05:59

大概看了下,三处较明显的错误
1.mov ah,01000010 MASM默认是10进制,2进制要带B
2.mov ax,4coo16进制里有o吗?是4C00H,16进制还是不要忘记带单位
3.mov bx,0b800 同理,单位
如果不带单位,就会被当成10进制的来处理,程序虽然不会报错,但结果相差甚远,要多注意

Y.H 发表于 2011-5-4 23:59:22

呃先解决能看到的 最后面程序结束吧没有了这个 end start<--start 没有了!

Y.H 发表于 2011-5-5 00:02:45

还有啊 字符不是用双引号吧 而是单引号 ' xxxxxx'

Y.H 发表于 2011-5-5 00:14:37

本帖最后由 loop 于 2011-5-5 08:43 编辑

好了 我把程序改了一下 你自己看看程序然后在想想:assume cs:code

data segment
        db 'hello world'
        db 42h ;在这第十一个内存单元处存放字体属性
data ends


code segment
start:mov ax,data
      mov ds,ax;定义数据段
   
      mov ax,0b800h
      mov es,ax
      mov cx,11
      mov si,0
      mov bx,0
s:    mov al,ds:;这里把字符放在AL中
      mov ah,ds:;这里把字体属性放在AH中
mov es:,ax ;这里吧AX中的内容传送到显存中会在屏幕中间吧应该是
      inc bx
      add si,2
loop s
   
      mov ax,4c00h
      int 21h

code ends
end start

moshushi 发表于 2011-5-5 20:01:07

回复 Y.H 的帖子

程序可以运行,但是没有显示字体,只是一闪而过,还该怎么改

Y.H 发表于 2011-5-6 17:18:13

你是在CMD里面运行他 还是双击运行的? 有可能需要你把CMD窗口放为全屏 我的是WINXP的 所以全不全屏都可以 而且只要 不CLS刷新 字体就一直在那里!保证我放的程序没问题!

moshushi 发表于 2011-5-7 19:23:04

回复 Y.H 的帖子

为什么还得全屏才可以显示“hello world"

Y.H 发表于 2011-5-8 01:24:15

这个和你的系统有关吧!

fishz 发表于 2011-5-8 02:00:02

用debug单步来看就可以。有或者装个虚拟机,再装个XP,就可以了。
我之前都是看不到的。

china0008 发表于 2011-5-8 15:12:14

使用win7系统的朋友推荐安装虚拟机。然后装个win98来用。方便很多。

moshushi 发表于 2011-5-8 20:28:52

大家都详细说明一下

loop 发表于 2011-5-10 00:25:58

本帖最后由 loop 于 2011-5-10 00:28 编辑

moshushi 发表于 2011-5-8 20:28 static/image/common/back.gif
大家都详细说明一下

虚拟机安装包网站里有下,镜像文件到网上一搜一大堆。

安装完虚拟机后,加载镜像文件,剩下操作的和装系统没区别。

安装好系统,然后启用虚拟机,在虚拟机中调试你的程序就行了。

虚拟机下载地址:http://www.fishc.com/a/downloads/xitongzengqiang/.html

moshushi 发表于 2011-5-10 11:21:57

VirtualBox-2.2.0这个虚拟机能用吗?

moshushi 发表于 2011-5-10 11:23:47

loop 发表于 2011-5-10 00:25 static/image/common/back.gif
虚拟机安装包网站里有下,镜像文件到网上一搜一大堆。

安装完虚拟机后,加载镜像文件,剩下操作的和 ...

一定用window98吗?

loop 发表于 2011-5-11 06:57:34

moshushi 发表于 2011-5-10 11:23 static/image/common/back.gif
一定用window98吗?

看你自己了,只要达到效果就行。

daniel_c 发表于 2011-5-11 11:30:05

你每次用g命令运行.....他自己会刷新..也就是你的行数最好写多点....其实他可以打印出来了...但是给刷新到屏幕上方了...

xg08561 发表于 2011-5-11 17:03:27

看不懂继续努力
页: [1]
查看完整版本: 显示红底绿字的代码看看错在了哪里