鱼C论坛

 找回密码
 立即注册
查看: 2687|回复: 4

[汇编作业] 得不到想要的图片效果

[复制链接]
发表于 2014-9-12 21:19:22 | 显示全部楼层 |阅读模式
100鱼币
这个是小甲鱼老师在讲汇编实验九时,讲的颜色变化的实验,我将答案中程序在cmd中搞了一下,没有显示出想要的效果图,具体图片如下,
我就想问,是不是我啥地方操作错了,但是我对着视屏搞了 ,好几遍,还是那样子,源代码在下面,那位大神给运行后,能达到效果图的,请指导我一下,谢了

实验9 显示三行welcome to masm(三个程序)
编程:在屏幕中间分别显示绿色,绿底红色,白色蓝底的字符串’welcome to masm!’
效果图
程序一:最保守的方法先实现实验要求(三个循环)
assume cs:code,ds:data,es:table
data segment
     db 'welcome to masm!'
data ends
table segment
     dw 4000 dup (0)
table ends
code segment
start:   mov ax,data
     mov ds,ax
     mov ax,0b800h
     mov es,ax
     mov bx,0
     mov si,0
     mov cx,16
s0:  mov ax,[bx]
     mov es:[bx+720h][si],ax
     mov al,2
     mov es:[bx+721h][si],al
     inc bx
     inc si
    loop s0
     mov bx,0
     mov cx,16
     mov si,160
s1:  mov ax,[bx]
     mov es:[bx+720h][si],ax
     mov al,36
     mov es:[bx+721h][si],al
     inc bx
     inc si
     loop s1
     mov bx,0
     mov cx,16
     mov si,320
s2:  mov ax,[bx]
     mov es:[bx+720h][si],ax
     mov al,113
     mov es:[bx+721h][si],al
     inc bx
     inc si
     loop s2
     mov ax,4c00h
     int 21h
code ends
end start


效果图.PNG
1.PNG
2.PNG
有的数字就变成问号了.PNG

最佳答案

查看完整内容

不知道你到底想实现什么效果,毕竟颜色你已经显示出来了。如果是闪缩效果,必须在实模式下才能看出来,你可以用bochs来查看,我试过,可以成功,CMD已经处于保护模式下了,肯定无法显示了,不知道你要问的是不是这个!

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
拈花小仙 + 5 + 5 高质量提问,支持~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-12 21:19:23 | 显示全部楼层
不知道你到底想实现什么效果,毕竟颜色你已经显示出来了。如果是闪缩效果,必须在实模式下才能看出来,你可以用bochs来查看,我试过,可以成功,CMD已经处于保护模式下了,肯定无法显示了,不知道你要问的是不是这个!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-14 21:20:59 | 显示全部楼层
本帖最后由 漩涡鸣人 于 2014-9-14 21:32 编辑

您这样的话用debug一步一步过就能显示,貌似ml.exe无参数编译出来的程序不支持直接命令行执行,会被直接覆盖掉
用masm+link编译出来就没这问题了

评分

参与人数 1荣誉 +5 收起 理由
逆流杀 + 5 你是版主,不缺钱,我就不给你了啊,,给另.

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-9-14 21:47:41 | 显示全部楼层
漩涡鸣人 发表于 2014-9-14 21:20
您这样的话用debug一步一步过就能显示,貌似ml.exe无参数编译出来的程序不支持直接命令行执行,会被直接覆 ...

试了 好行也不行,我找了很汇编论坛,很幸运找到了同样问题,有人是这样解释 的,【】【】大部分人都是在cmd 中运行程序.一般来说没什么.但是在操作显存的时候十之八九不太会如意(显示不出)
错就错在进入了cmd.exe运行的这个程序, 正确的应该是从开始-运行-Command.com进入Command.com运行, 则不会有问题。
command.com是ms-dos的应用程序,(严格地说,是内部命令处理程序)是所有内部命令的集合,调入内存后可以接受键入的内部命令,并按照dos的规定的功能执行命令,cmd.exe是基于windows系统运行的程序,只是为习惯dos操作提供的一个命令提示符窗口。
另外:cmd下会恢复一些用户已经更改的中断向量。Command.com下不恢复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-9-14 21:48:50 | 显示全部楼层
1236 发表于 2014-9-14 21:07
不知道你到底想实现什么效果,毕竟颜色你已经显示出来了。如果是闪缩效果,必须在实模式下才能看出来,你可 ...

谢了,有资料解释是大部分人都是在cmd 中运行程序.一般来说没什么.但是在操作显存的时候十之八九不太会如意(显示不出)
错就错在进入了cmd.exe运行的这个程序, 正确的应该是从开始-运行-Command.com进入Command.com运行, 则不会有问题。
command.com是ms-dos的应用程序,(严格地说,是内部命令处理程序)是所有内部命令的集合,调入内存后可以接受键入的内部命令,并按照dos的规定的功能执行命令,cmd.exe是基于windows系统运行的程序,只是为习惯dos操作提供的一个命令提示符窗口。
另外:cmd下会恢复一些用户已经更改的中断向量。Command.com下不恢复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-7 02:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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