int 7中断输出字母安装程序:
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,0h
mov es,ax
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset s1
mov ax,offset se
mov cx,offset se-offset s1 //这里是末尾减头 别反了会溢出
cld
rep movsb
mov word ptr es:[28],200h
mov word ptr es:[30],0
mov ax,4c00h
int 21h
s1:
push ax
push es
push dx
push di
push si
mov ax,0b800h
mov es,ax
mov ax,160
mul dh
mov dh,0
add dl,dl
mov di,dx
add di,ax
mov ax,0
mov si,0
show_rep:mov al,ds:[si]
mov cx,ax
jcxz show_ok
mov es:[di],al
mov es:[di].1,cl
inc si
add di,2
jmp show_rep
show_ok:
pop si
pop di
pop dx
pop es
pop ax
iret
se:nop
code ends
end start
- [wu136626] 回复mywill:看了 也做了一下 准备学c语言的时候再用王的方法学。 09/07 13:34
- [mywiil] 博主准备学谭的C语言了?不知道本书的综合研究看了没? 09/07 09:11
- [wu136626] 回复blackberry:调试了 没有出错啊! 08/31 16:53
- [wu136626] 回复blackbeny:是int 7h,我写错了 不过程序还是修改了ax的值,刚才参考tsembr 08/31 16:45
- [wu136626] 不怎么明白,书上不是只要求我们显示除法溢出吗? 08/31 16:25
- [wu136626] 谢谢blackberry! 08/31 16:19
- [blackberry] 生日快乐!(好像迟了一点,呵呵) 08/31 10:17
- [blackberry] 怎么用书中的那个循环显示!号的程序来测试你的程序,总是出错关闭呢? 08/31 09:18
- [blackberry] int 7?呵呵。我说呢。我试了半天int 7ch总不对。 不过用书上的程序试了一下,发现你的字符 08/31 09:04
- [blackberry] 程序实现没问题,不过,由于中断程序是iret而没有直接返回,所以,出现错误的时候,就没有响应了。 08/31 08:28
- [wu136626] 当幸福来敲门,要努力争取! 08/24 17:35
[ blackberry 发表于 2009-08-31 09:04 ]
int 7?呵呵。我说呢。我试了半天int 7ch总不对。
不过用书上的程序试了一下,发现你的字符串的显示的有点不对,没在一行。博主自己在试试看吧。
[ wu136626 发表于 2009-08-31 16:53 ]
回复blackberry:调试了 没有出错啊!