鱼C论坛

 找回密码
 立即注册
查看: 6625|回复: 17

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

[复制链接]
发表于 2011-5-4 20:49:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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
     mov  bx,0
     mov ah,01000010
   s:mov al,ds:[si]
     mov es:[bx],al
     mov es:[bx+1],ah
     inc si
     add bx,2
     loop s
     
     mov ax,4coo
     int 21

code ends
     end

点评

代码用[code] [/code] 扩起来,方便复制和阅读。  发表于 2011-5-5 08:45
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-4 23:05:59 | 显示全部楼层
大概看了下,三处较明显的错误
1.mov ah,01000010 MASM默认是10进制,2进制要带B
2.mov ax,4coo  16进制里有o吗?是4C00H,16进制还是不要忘记带单位
3.mov bx,0b800 同理,单位
如果不带单位,就会被当成10进制的来处理,程序虽然不会报错,但结果相差甚远,要多注意

评分

参与人数 1荣誉 +1 收起 理由
loop + 1 我很赞同

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-4 23:59:22 | 显示全部楼层
呃先解决能看到的 最后面程序结束吧没有了这个 end start  <--start 没有了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-5 00:02:45 | 显示全部楼层
还有啊 字符不是用双引号吧 而是单引号 ' xxxxxx'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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:[bx]  ;这里把字符放在AL中
      mov ah,ds:[11]  ;这里把字体属性放在AH中
  mov es:[si+680h],ax ;这里吧AX中的内容传送到显存中会在屏幕中间吧应该是
      inc bx 
      add si,2
loop s
     
      mov ax,4c00h
      int 21h

code ends
end start

点评

代码用[code] [/code] 括起来,方便复制和阅读。  发表于 2011-5-5 08:43

评分

参与人数 1荣誉 +2 收起 理由
loop + 2 我很赞同

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-5 20:01:07 | 显示全部楼层
回复 Y.H 的帖子

程序可以运行,但是没有显示字体,只是一闪而过,还该怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-6 17:18:13 | 显示全部楼层
你是在CMD里面运行他 还是双击运行的? 有可能需要你把CMD窗口放为全屏 我的是WINXP的 所以全不全屏都可以 而且只要 不CLS刷新 字体就一直在那里!保证我放的程序没问题!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-7 19:23:04 | 显示全部楼层
回复 Y.H 的帖子

为什么还得全屏才可以显示“hello world"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-8 01:24:15 | 显示全部楼层
这个和你的系统有关吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-8 02:00:02 | 显示全部楼层
用debug单步来看就可以。有或者装个虚拟机,再装个XP,就可以了。
我之前都是看不到的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-8 15:12:14 | 显示全部楼层
使用win7系统的朋友推荐安装虚拟机。然后装个win98来用。方便很多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-8 20:28:52 | 显示全部楼层
大家都详细说明一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-10 00:25:58 | 显示全部楼层
本帖最后由 loop 于 2011-5-10 00:28 编辑


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

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

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

虚拟机下载地址:
http://www.fishc.com/a/downloads/xitongzengqiang/.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-10 11:21:57 | 显示全部楼层
VirtualBox-2.2.0这个虚拟机能用吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-10 11:23:47 | 显示全部楼层
loop 发表于 2011-5-10 00:25
虚拟机安装包网站里有下,镜像文件到网上一搜一大堆。

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

一定用window98吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-11 06:57:34 | 显示全部楼层
moshushi 发表于 2011-5-10 11:23
一定用window98吗?

看你自己了,只要达到效果就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-11 11:30:05 | 显示全部楼层
你每次用g命令运行.....他自己会刷新..也就是你的行数最好写多点....其实他可以打印出来了...但是给刷新到屏幕上方了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-11 17:03:27 | 显示全部楼层
看不懂  继续努力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 20:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表