鱼C论坛

 找回密码
 立即注册
查看: 2303|回复: 11

[已解决]求助:修改0号中断程序出错

[复制链接]
发表于 2017-10-24 22:17:08 | 显示全部楼层 |阅读模式

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

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

x
我的系统是win7 64位,用的dosbox v0.74,按照视频编写的修改0号中断程序,masm 程序时出错,如图(out of  memory)请问如何解决?
最佳答案
2017-10-24 22:31:19
代码18行,你写的逗号是中文吧?mov word ptr es:[0*4+2],0 就这句,逗号看一下
无标题.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-10-24 22:21:33 | 显示全部楼层
这是程序代码
assume cs:code

code segment
start:
                                mov ax,cs
                                mov ds,ax
                                mov si,offset do0   ;设置ds:di指向源地址
                                mov ax,0
                                mov es,ax
                                mov di,200h                     ;设置es:di指向目的地址
                                mov cx,offset do0end - offset do0                ;设置cx为传输长度
                                cld                                                                                        ;设置传输方向为正
                                rep movsb
                               
                                mov ax,0
                                mov es,ax
                                mov word ptr es:[0*4],200h
                                mov word ptr es:[0*4+2],0
                               
                                mov ax,4c00h
                                int 21h
                               
                do0:
                                jmp short do0start
                                db "welcome to liuyanhao's room!"
                               
do0start:
                                mov ax,cs
                                mov ds,ax
                                mov si,202h     ;设置ds:si指向字符串
                               
                                mov ax,0b800h
                                mov es,ax
                                mov di,12*160+36*2   ;设置es:di指向显存空间的中间位置
                               
                                mov cx,21        ;设置cx为字符串长度
                               
                        s:
                          mov al,[si]
                          mov es:[di],al
                          inc si
                          add di,1
                          mov al,02h    ;设置颜色
                          mov es:[di],al
                          add di,1
                          loop s
                          
                          mov ax,4c00h
                          int 21h
        do0end: nop
       
code ends
end start
                               
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 22:31:19 | 显示全部楼层    本楼为最佳答案   
代码18行,你写的逗号是中文吧?mov word ptr es:[0*4+2],0 就这句,逗号看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-25 09:19:40 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-24 22:31
代码18行,你写的逗号是中文吧?mov word ptr es:[0*4+2],0 就这句,逗号看一下

是的!O(∩_∩)O谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 10:54:48 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-24 22:31
代码18行,你写的逗号是中文吧?mov word ptr es:[0*4+2],0 就这句,逗号看一下

do0start里不是已经有设置颜色了,那为什么s循环里还要设置颜色
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 11:26:35 | 显示全部楼层
已然就位 发表于 2017-10-25 10:54
do0start里不是已经有设置颜色了,那为什么s循环里还要设置颜色

没有,那里面是设置的源地址和复制的地址。不过系统是自带白字的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 13:30:50 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-25 11:26
没有,那里面是设置的源地址和复制的地址。不过系统是自带白字的

我才发现这个dos还是不行,应该是一样的吧,为什么我会有错误
kui.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 13:45:46 | 显示全部楼层
已然就位 发表于 2017-10-25 13:30
我才发现这个dos还是不行,应该是一样的吧,为什么我会有错误

1. 你看你的代码上面文件名前面的保存图标是红色的,说明你没保存,
2. 你的指令为什么是逗号?masm shiyan.asm,注意,后缀是.asm不是,asm。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 13:55:07 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-25 13:45
1. 你看你的代码上面文件名前面的保存图标是红色的,说明你没保存,
2. 你的指令为什么是逗号?masm shi ...

这个大意了但还是一样,我改好了还是一样,和上面的图片没差
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 14:11:56 | 显示全部楼层
已然就位 发表于 2017-10-25 13:55
这个大意了但还是一样,我改好了还是一样,和上面的图片没差

你start后面的:有感觉不对吗?是不是中文的:空这么开?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 14:22:10 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-25 14:11
你start后面的:有感觉不对吗?是不是中文的:空这么开?

还是一样,这个define start  未定义是什么原因。不是XP系统难道真的不行吗
QQ图片20171025142038.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 14:43:48 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-25 14:11
你start后面的:有感觉不对吗?是不是中文的:空这么开?

不是dos的问题,好像是程序的问题。我用其他程序可以通过 。我再找找原因谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 22:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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