|
主题 : : 关于15章程序的测试问题 [待解决] |
回复[ 8次 ]
点击[ 531次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-10-09 21:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
安装int 9中断的程序.
在XP的CMDLINE下,先运行安装程序,然后再按F1或是Esc测试,结果崩溃.
是不是只有在实模式DOS下才能得到预期结果? | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-10-09 21:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26 |
|
|
|
|
|
[第2楼]
[ 回复时间:2009-10-09 21:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
收到
谢谢
顺便问一声,ID的荣誉值和信誉值从何而来 | | |
|
|
|
|
[第3楼]
[ 回复时间:2009-10-09 21:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26 |
|
|
|
|
|
[第4楼]
[ 回复时间:2009-10-09 23:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
Thank YOU!
今天晚上有点晕.
安装了个虚拟机VirtualPC2007,在虚拟机里装了MS-DOS7.1.
课本里15.5那个程序,按F1改变满屏颜色的,测试通过.但15.4那个老出问题,好像一执行到call delay那一句时,CPU就报错.
不知道怎么回事. | | |
|
|
|
|
[第5楼]
[ 回复时间:2009-10-10 00:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
CPU error: incorrect opcode. killing process | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-10-10 20:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:188
信誉值:4
注册日期:2009-07-05 19:26 |
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
;依次显示'a'~'z'
mov ax,0b800h
mov es,ax
mov ah,'a'
s: mov es:[160*12+40*2],ah ;第12行第40列
call delay
inc ah
cmp ah,'z'
jna s
;结束
mov ax,4c00h
int 21h
;循环延时,循环100000h次
delay: push ax
push dx
mov dx,1000h
mov ax,0
delay1: sub ax,1
sbb dx,0 ;(dx)=(dx)-0-CF
cmp ax,0
jne delay1
cmp dx,0
jne delay1
pop dx
pop ax
ret
code ends
end start
是这个吗?我试过了,可以正常运行,都没有用虚拟机的 | | |
|
|
|
|
[第7楼]
[ 回复时间:2009-10-11 16:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
不。是这个程序再加上一个按Esc屏幕颜色的int 9中断。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2011-03-22 12:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-12-21 13:48 |
回复:[第7楼]
------------------
我的也是一样,可以显示字符,但是按下ESC的时候不会改变颜色,一按就...........报错 | | |