大牛!我执行7ch中断,不能自动调用,为啥?
assume cs:codecode segment
start: mov ax,cs ;定义复制源
mov ds,ax
mov si,offset sub0
mov ax,0 ;定义复制目的地址
mov es,ax
mov di,200h
mov cx,offset ok - offset sub0
cld ;复制方向
rep movsb
mov ax,0 ;设置中断向量
mov es,ax
mov word ptr es:,200h
mov word ptr es:,0h
mov ax,4c00h
int 21h
sub0: jmp short s
db "Weclome to masm!",0
s: mov ax,0b800h
mov es,ax
mov di,12*160+36*2
mov ax,cs
mov ds,ax
mov si,202h
mov bl,02h
s0: mov ah,0
mov al,ds:
jcxz ok
mov byte ptr es:,al
mov byte ptr es:,bl
inc si
add di,2
jmp short s0
mov ax,4c00h
int 21h
ok: nop
iret
code ends
end start
大牛们,小菜在这先谢过。请帮忙看看这个段代码。我执行7ch中断,不能自动调用,为啥? lyoal 发表于 2012-12-18 13:11 static/image/common/back.gif
非常感谢你,朋友。这个的确是个很蠢的错误。我改过了,但是还是不能正常运行,不知道是什么原因。索兴我 ...
我把你的程序从47行后这么改了:
ok: iret
s0ret: nop
当然上面的cx也要相应改下:mov cx,offset s0ret-offset sub0 36行是不是应该这样写:
mov ch,0
mov cl,ds:
jcxz ok
mov byte ptr es:,cl
mov byte ptr es:,bl ycg 发表于 2012-12-18 10:27 static/image/common/back.gif
36行是不是应该这样写:
mov ch,0
mov cl,ds:
assume cs:code
code segment
start: mov ax,cs ;定义复制源
mov ds,ax
mov si,offset sub0
mov ax,0 ;定义复制目的地址
mov es,ax
mov di,200h
mov cx,offset ok - offset sub0
cld ;复制方向
rep movsb
mov ax,0 ;设置中断向量
mov es,ax
mov word ptr es:,200h
mov word ptr es:,0h
;测试一下
int 7ch
mov ax,4c00h
int 21h
sub0: jmp short s
db "Weclome to masm!",0
s: mov ax,0b800h
mov es,ax
mov di,12*160+36*2
mov ax,cs
mov ds,ax
mov si,202h
mov al,02h
s0: mov ch,0
mov cl,ds:
jcxz short ok
mov byte ptr es:,cl
mov byte ptr es:,al
inc si
add di,2
jmp short s0
mov ax,4c00h
int 21h
ok: nop
iret
code ends
end start非常感谢你,朋友。这个的确是个很蠢的错误。我改过了,但是还是不能正常运行,不知道是什么原因。索兴我就对照着鱼C的例子改,可还是不行。无论是WIN7还是XP下运行都会提示错误?请大牛指点。
你在编译的时候看看有没有错误,如果没有的话可能就是你的编译器的问题,如果有的话就是你程序的问题
页:
[1]