- [springaccount] 请问下我虚拟机安装完毕后怎么还不行调试哦 能否请大虾给个完整的调试过程呢 谢拉 03/31 20:25
- [michael1947] 一个软盘怎么分的A和B,我知道0面为A,1面为B,可是怎么让DOS系统知道啊,我这里输入B:,就提示 03/05 17:13
- [游客] 我按照你说的帖子用bochs模拟了dos,然后就不知道该干什么了。。。。。。到底应该如何验证啊?怎么 12/24 15:36
- [游客] 花了8天60+小时,中间的曲折和艰辛实在是。。。不过还好我挺过来了,一直一直没有放弃,我坚信付出总会 07/14 13:39
- [游客] 因为nochar 就表示非ASCII键 即没有对应ASCII的键盘输入 所以我用扫描码来判断 06/30 14:19
- [游客] 我觉得你的程序没有什么逻辑上的问题啊。出现了你的错误提示,说明这个输入的字符ascii码小于20H, 06/30 11:53
- [游客] 嗯。我觉得,不能in 16H等待键盘输入,别的就不能运行了不是,所以,肯定应该开中断的。 06/23 15:32
- [zhenglxd] 回楼上的这个 out of range是我自己设计的,如果当ah>3 或者al>7 就会提示out 06/23 09:47
- [游客] 功能设计的不错。不过在运行过程中,设置完背景色后,就会出错退出。博主自己在检查一下。在command 06/20 12:05
- [游客] 苍天弄人,亦成人 支持博主 06/19 20:59
[2009-06-16 11:14] 试验十五完成的郁闷啊!
;pdf 295 试验15 安装int9中断效果为放开a键时满屏显示A
;TMD完成的郁闷!没抄书上独立完成的,本来代码写完就直接实现,谁知道把cld和std混淆了好好的心情就这么没了!
assume cs:code
code segment
start :
mov ax,0
mov es,ax
push es:[9*4]
pop es:[200H]
push es:[9*4+2]
pop es:[202H]
;复制原int9中断程序入口地址 到 0:200H dword单元
cli
mov word ptr es:[9*4],204H
mov word ptr es:[9*4+2],0
sti
;设置新int9中断程序入口地址为0:204H
mov cx,offset int9end- offset int9start
mov ax,cs
mov ds,ax
mov si,offset int9start
mov di,204H ;(es=0)
cld
rep movsb
;进行安装
mov ax,4c00h
int 21h
int9start:
pushf
call dword ptr cs:[200h]
;调用原int9中断例程
push ax
push cx
push es
push di
in al,60H
cmp al,1EH+80H
jne return
mov cx,2000
mov ax,0b800H
mov es,ax
mov di,0
show_A:mov byte ptr es:[di],'A'
add di,2
loop show_A
return:pop di
pop es
pop cx
pop ax
iret
int9end:nop
code ends
end start
;TMD完成的郁闷!没抄书上独立完成的,本来代码写完就直接实现,谁知道把cld和std混淆了好好的心情就这么没了!
assume cs:code
code segment
start :
mov ax,0
mov es,ax
push es:[9*4]
pop es:[200H]
push es:[9*4+2]
pop es:[202H]
;复制原int9中断程序入口地址 到 0:200H dword单元
cli
mov word ptr es:[9*4],204H
mov word ptr es:[9*4+2],0
sti
;设置新int9中断程序入口地址为0:204H
mov cx,offset int9end- offset int9start
mov ax,cs
mov ds,ax
mov si,offset int9start
mov di,204H ;(es=0)
cld
rep movsb
;进行安装
mov ax,4c00h
int 21h
int9start:
pushf
call dword ptr cs:[200h]
;调用原int9中断例程
push ax
push cx
push es
push di
in al,60H
cmp al,1EH+80H
jne return
mov cx,2000
mov ax,0b800H
mov es,ax
mov di,0
show_A:mov byte ptr es:[di],'A'
add di,2
loop show_A
return:pop di
pop es
pop cx
pop ax
iret
int9end:nop
code ends
end start
评论次数(2) |
浏览次数(1568) |
类型(汇编作业) |
收藏此文 |
[ 游客 发表于 2009-06-16 11:35 ]
没抄书上独立完成的
============
好,要的就是这个劲头!!
郁闷之后,想必收获颇丰吧。
顶博主!
[ 游客 发表于 2009-06-19 20:59 ]
苍天弄人,亦成人
支持博主