几个问题
1、以下代码为什么不能实现重启
.model small
.data
.code
.stack
start:
INT 19H
MOV AH,4ch
INT 21h
END start
2、以下代码为什么不能屏蔽键盘.model small
.data
.code
.stack
start:
MOV AL,11111101B
OUT 21H,AL
MOV AH,4ch
INT 21h
END start
问题点数:100、回复次数:6Top
1 楼wyd95968(壮士)回复于 2002-06-17 21:11:25 得分 100
1、不能重启,估计是WINDOWS的保护模式不允许;
2、不能屏蔽是因为你的值刚好是反的。你是打开不是屏蔽。Top
2 楼wyd95968(壮士)回复于 2002-06-17 21:35:32 得分 0
;我当时使用 INT 19H 成功是16位DOS操作系统,而不是WINDOWS。
;现在,你可以在“开机-进入DOS”模式下,通过jmp ffff:0000来实现软件冷启动
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: DB 0EAH,00H,00H,0FFH,0FFH
CODE ENDS
END STARTTop
3 楼qdxby(足球小子)回复于 2002-06-18 07:23:53 得分 0
0EAH是JMP吗?前面加个DB干吗?Top
4 楼wyd95968(壮士)回复于 2002-06-18 09:05:24 得分 0
对,是JMP。
这已经是指令码了,而编译程序它只能由ASCII码命令得到指令码,加DB就是让编译程序不翻译,直接生成目标,待OS读到就成了 JMP FFFF:0000。雕虫小技而已。主要是求简练。如果用DEBUG的A命令来编写,那是最简练的,5字节!Top
5 楼qdxby(足球小子)回复于 2002-06-19 08:09:21 得分 0
你怎么知道0EAH代表JMP的?Top
6 楼Lesily(乐子)回复于 2002-06-19 09:59:48 得分 0
你反汇编看看就知道啦1Top
7 楼Lesily(乐子)回复于 2002-06-19 10:01:58 得分 0
你反汇编看看就知道啦1Top




