-
-
[旧帖] [求助]在编写与安装中断程序过程中遇到的问题 0.00雪花
-
发表于: 2010-4-5 23:58 802
-
各位大虾好,这是在下写的一个安装中断处理程序的程序
这个程序类型码为 7ch
功能在将小写字母转化为大写字母
程序比较简单,所以没加入太多的注释
我的问题是,当程序写入完毕,
执行完 int 7ch 时,下一条语句却并不是 mov ax,4c00h
而是DB 68
请问这是怎么回事呢?
assume cs:code
data segment
db 'i seek you',0
data ends
code segment
w:
mov ax,cs
mov ds,ax
mov si,offset change
mov ax,0
mov es,ax
mov di,200h
mov cx,offset changeend-offset change
rep movsb
mov word ptr es:[7ch],200h
mov word ptr es:[7ch+2],0
mov ax,data
mov ds,ax
int 7ch
mov ax,4c00h
int 21h
change:
push cx
push si
mov si,0
mov ch,0
s: mov al,[si]
mov bl,97
cmp al,bl
ja ok
jmp short s
ok:mov bl,122
cmp al,bl
je ok1
jmp short s
ok1: and al,1101111b ;大写字母转变为小写字母
inc si
mov cl,[si]
jcxz done
jmp short s
done:
pop si
pop cx
iret
changeend:
nop
code ends
end w
这个程序类型码为 7ch
功能在将小写字母转化为大写字母
程序比较简单,所以没加入太多的注释
我的问题是,当程序写入完毕,
执行完 int 7ch 时,下一条语句却并不是 mov ax,4c00h
而是DB 68
请问这是怎么回事呢?
assume cs:code
data segment
db 'i seek you',0
data ends
code segment
w:
mov ax,cs
mov ds,ax
mov si,offset change
mov ax,0
mov es,ax
mov di,200h
mov cx,offset changeend-offset change
rep movsb
mov word ptr es:[7ch],200h
mov word ptr es:[7ch+2],0
mov ax,data
mov ds,ax
int 7ch
mov ax,4c00h
int 21h
change:
push cx
push si
mov si,0
mov ch,0
s: mov al,[si]
mov bl,97
cmp al,bl
ja ok
jmp short s
ok:mov bl,122
cmp al,bl
je ok1
jmp short s
ok1: and al,1101111b ;大写字母转变为小写字母
inc si
mov cl,[si]
jcxz done
jmp short s
done:
pop si
pop cx
iret
changeend:
nop
code ends
end w
赞赏
他的文章
看原图
赞赏
雪币:
留言: