;利用7ch中断,实现jmp near ptr s 功能
assume cs:code,ds:data
data segment
db 'manchengshiwodeguxianga',0
data ends
;参数:传递字符串的首地址
code segment
start: mov ax,cs
mov ds,ax
mov si,offset s
mov ax,0
mov es,ax
mov di,200h
mov cx,offset s1-offset s
cld
rep movsb
mov ax,0
mov ds,ax
mov word ptr ds:[7ch*4],200h
mov word ptr ds:[7ch*4+2],0h
mov ax,data
mov ds,ax
mov si,0
MOV ax,0b800h
mov es,ax
mov di,12*160
ps: mov cl,[si]
mov ch,0
jcxz p
and cl,11011111b
mov [si],cl
mov es:[di],cl
add di,2
inc si
int 7ch
p: nop
mov ax,4c00h
int 21h
s: push bp;将bp入栈保存,如果前面没有用到这个寄存器的话可以不保存
mov bx,offset ps-offset p
mov bp,sp;取得当前栈顶位置
add [bp+2],bx
pop bp
iret
s1: nop
code ends
end start
- [tinyparticle] 没有问题。 09/20 22:30
- [wsrf] 要求是在显示过程中只要按下ESC键,字母的颜色就要发生一次改变。 09/16 08:17
- [huibian2009] 多谢指点,是我太大意了。 09/14 16:29
- [tinyparticle] popf call dword ptr ds:[0] 所以此处只要将标志寄存器入栈就可以 09/11 20:10
- [huibian2009] 多谢您的提醒,使我对汇编又多了一些了解。这里的ASSUME不能省略。再次感谢! 09/11 11:28
- [lwbfq] 没有问题。 09/10 18:59
- [lwbfq] 正确。 09/10 18:59
- [lwbfq] 这个程序有点问题。博主运行一下看看结果就知道了。 09/10 18:58
- [lwbfq] 没问题,博主继续努力。 09/10 18:50
- [wsrf] 没有问题。 09/10 08:34
- [scuzg] 谢谢你的意见,我也希望和同学交流,以提高授课效率。我的QQ是28926141,有空聊聊。 11/12 11:09