鱼C论坛

 找回密码
 立即注册
查看: 2433|回复: 7

汇编之小问题

[复制链接]
发表于 2012-3-11 10:35:33 | 显示全部楼层 |阅读模式

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

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

x
大家好,小弟这个看这里的视频,学汇编两个星期了,昨天学到那个第十章,自己可以写出来那个show_str和除法不溢出,但是写第三个的时候发现修改显存后B800段所对应位置的数据没有改变。不知其所以,因此又写了一个程序测试,发现依然没有改变。(我改写的是B800:100【即B800:64h]和B800:101[即B800:65h],查看的时候是用d指令在dos 中查看的)求各位大能指点一下啊。。测试的程序如下:
assume cs:code
code segment
start :      mov ax,0b800h;
             mov es,ax;
             mov byte ptr es:[100],32h
             mov byte ptr es:[101],2
            
             mov ax,4c00h;
             int 21h;
            
code ends
end start

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-11 10:39:56 | 显示全部楼层
PS:还有,那个显存地址B8f9f之后的是属于第二页的内容,我想问那个是不是第一页的内容被滚屏后第二页的内容就补上来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-11 11:00:49 | 显示全部楼层
0号显存页永远存放的是当前屏幕中字符的属性,也就是说你一写入他就显示;而你在debug中单步调试时,或在用d查看时,你注意到屏幕在不断滚动变化了吗?也就是说0号页的显存中数据在不断变化,所以你用d就查不到你刚写入的数据。
不用debug,先用cls清屏,然后直接运行你的*.exe程序,应该就能看见你程序的运行结果了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-11 11:04:22 | 显示全部楼层
学完都忘记了。。蛋疼。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-11 11:06:51 | 显示全部楼层

只是一闪而过,看到结果。而且我第一个show_str在调试的时候可以看到welcome to masm!停留在屏幕中。。   而且为什么我加上mov ax,01h,执行的时候就出错呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-11 11:07:07 | 显示全部楼层
Del 发表于 2012-3-11 11:06
只是一闪而过,看到结果。而且我第一个show_str在调试的时候可以看到welcome to masm!停留在屏幕中。。  ...

不好意思,是看不到结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-11 11:35:18 | 显示全部楼层
help03.bmp
先cls清屏,然后直接运行exe,正常显示绿色的“2”。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-11 11:48:42 | 显示全部楼层
f:\未命名.jpy:'(我就是这样做的,但是老是没有,不知道什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 13:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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