求助:修改0号中断程序出错
我的系统是win7 64位,用的dosbox v0.74,按照视频编写的修改0号中断程序,masm 程序时出错,如图(out ofmemory)请问如何解决?这是程序代码
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:,200h
mov word ptr es:,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,
mov es:,al
inc si
add di,1
mov al,02h ;设置颜色
mov es:,al
add di,1
loop s
mov ax,4c00h
int 21h
do0end: nop
code ends
end start
代码18行,你写的逗号是中文吧?mov word ptr es:,0 就这句,逗号看一下 丶忘却的年少o 发表于 2017-10-24 22:31
代码18行,你写的逗号是中文吧?mov word ptr es:,0 就这句,逗号看一下
是的!O(∩_∩)O谢谢 丶忘却的年少o 发表于 2017-10-24 22:31
代码18行,你写的逗号是中文吧?mov word ptr es:,0 就这句,逗号看一下
do0start里不是已经有设置颜色了,那为什么s循环里还要设置颜色 已然就位 发表于 2017-10-25 10:54
do0start里不是已经有设置颜色了,那为什么s循环里还要设置颜色
没有,那里面是设置的源地址和复制的地址。不过系统是自带白字的 丶忘却的年少o 发表于 2017-10-25 11:26
没有,那里面是设置的源地址和复制的地址。不过系统是自带白字的
我才发现这个dos还是不行,应该是一样的吧,为什么我会有错误 已然就位 发表于 2017-10-25 13:30
我才发现这个dos还是不行,应该是一样的吧,为什么我会有错误
1. 你看你的代码上面文件名前面的保存图标是红色的,说明你没保存,
2. 你的指令为什么是逗号?masm shiyan.asm,注意,后缀是.asm不是,asm。 丶忘却的年少o 发表于 2017-10-25 13:45
1. 你看你的代码上面文件名前面的保存图标是红色的,说明你没保存,
2. 你的指令为什么是逗号?masm shi ...
这个大意了但还是一样,我改好了还是一样,和上面的图片没差 已然就位 发表于 2017-10-25 13:55
这个大意了但还是一样,我改好了还是一样,和上面的图片没差
你start后面的:有感觉不对吗?是不是中文的:空这么开? 丶忘却的年少o 发表于 2017-10-25 14:11
你start后面的:有感觉不对吗?是不是中文的:空这么开?
还是一样,这个define start未定义是什么原因。不是XP系统难道真的不行吗 丶忘却的年少o 发表于 2017-10-25 14:11
你start后面的:有感觉不对吗?是不是中文的:空这么开?
不是dos的问题,好像是程序的问题。我用其他程序可以通过 。我再找找原因谢谢了
页:
[1]