检测点13.1
comment ;
1、转移地址在bx中,所以最大偏移位移是ffff
2、编写新的7ch中断
;
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
push cs
pop ds
mov si,offset begin
mov ax,0
mov es,ax
mov di,200h
mov cx,offset over-offset begin
cld
rep movsb
;修改中断向量表
mov ax,0
mov ds,ax
mov word ptr ds:[7ch*4],200h
mov word ptr ds:[7ch*4+2],0
;测试程序
mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,12*160
s:
cmp byte ptr [si],0
je ok
mov al,[si]
mov es:[di],al
inc si
add di,2
mov bx,offset s-offset ok
int 7ch
ok:
;暂停
mov ah,1
int 21h
;退出
mov ax,4c00h 7
int 21h
begin:
push bp
mov bp,sp
add [bp+2],bl
pop bp
iret
over: nop
code ends
end start
检测点13.2
(1)不对,因为ffff:0在cffff以后,参见课本12页(第二版)可知这里属于ROM地址空间是不能修改的
(2)不对,因为机子刚启动调用int 19h中断时操作系统还没起来,还没有加载操作系统相应的中断程序,所以不能由dos提供int 19h
- [cutebe] 相当牛,这个苦思冥想也值了。^_^ 11/30 00:00
- [parse] 如果忽略消息循环,那么操作系统加载的程序很快就执行完了,就像DOS程序一闪而过,所以CPU会空闲下来 06/30 09:04
- [游客] 楼主好厉害,挺一下! 01/19 08:43
- [游客] 很不错。 01/04 18:36
- [chinatree] 潜力贴留名,沙发。 11/08 12:58
- [youthangel] 恩,这次对了 10/30 18:56
- [fpamc] mov bx,18 在这条指令的上边是不是要加一条sub dx,dx? 10/30 10:03
- [fpamc] 对的 10/27 11:19
- [fpamc] 对的 10/27 09:00
- [fpamc] 哦,对不起,看错了。实验13也有一个7ch中断 10/27 08:52
- [游客] 现在急需一个汇编大作业。。。。。。可以么。。。。。如果今天之内看见留言 就加 1765496715 12/28 16:52
- [youthangel] 这算是对我学习的鼓励吗?谢谢!咱们这样交流就可以了 10/11 15:48
- [fpamc] 多日观察,你的学习积极性挺高的。可以来我们群了。群号:75916434 10/11 10:58
[ fpamc 发表于 2012-10-26 18:55 ]
7ch中断不符合题意。
[ youthangel 发表于 2012-10-27 08:22 ]
哪里不对了?我还真没看出来
[ fpamc 发表于 2012-10-27 08:52 ]
哦,对不起,看错了。实验13也有一个7ch中断