⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protect.lst

📁 一个类linux的dos下开发的操作系统.
💻 LST
📖 第 1 页 / 共 4 页
字号:
40000253:	83 c4 10             	add    $0x10,%esp
40000256:	83 f8 01             	cmp    $0x1,%eax
40000259:	75 eb                	jne    40000246 <_main+0x3e>
protect.c:39
			continue;
		printf("Key pressed was '%c'\n", key);
4000025b:	83 c4 f8             	add    $0xfffffff8,%esp
4000025e:	31 c0                	xor    %eax,%eax
40000260:	8a 45 ff             	mov    0xffffffff(%ebp),%al
40000263:	50                   	push   %eax
40000264:	68 9b 01 00 40       	push   $0x4000019b
40000269:	e8 e2 00 00 00       	call   40000350 <_printf>
protect.c:40
		switch(key)
4000026e:	83 c4 10             	add    $0x10,%esp
40000271:	31 c0                	xor    %eax,%eax
40000273:	8a 45 ff             	mov    0xffffffff(%ebp),%al
40000276:	83 c0 cf             	add    $0xffffffcf,%eax
40000279:	83 f8 06             	cmp    $0x6,%eax
4000027c:	0f 87 9e 00 00 00    	ja     40000320 <_main+0x118>
40000282:	ff 24 86             	jmp    *(%esi,%eax,4)
40000285:	a1 02 00 40 b0       	mov    0xb0400002,%eax
4000028a:	02 00                	add    (%eax),%al
4000028c:	40                   	inc    %eax
4000028d:	c0 02 00             	rolb   $0x0,(%edx)
40000290:	40                   	inc    %eax
40000291:	d2 02                	rolb   %cl,(%edx)
40000293:	00 40 e6             	add    %al,0xffffffe6(%eax)
40000296:	02 00                	add    (%eax),%al
40000298:	40                   	inc    %eax
40000299:	f0 02 00             	lock add (%eax),%al
4000029c:	40                   	inc    %eax
4000029d:	f7 02 00 40 a0 00    	testl  $0xa04000,(%edx)
protect.c:43
		{
			case '1':
				key = *(volatile unsigned char *)0xFFFF0000;
400002a3:	00 ff                	add    %bh,%bh
400002a5:	ff 88 45 ff e9 82    	decl   0x82e9ff45(%eax)
protect.c:44
				break;
400002ab:	00 00                	add    %al,(%eax)
400002ad:	00 89 f6 c6 05 00    	add    %cl,0x5c6f6(%ecx)
protect.c:46
			case '2':
				*(unsigned char *)0xFFFF0000 = 0;
400002b3:	00 ff                	add    %bh,%bh
400002b5:	ff 00                	incl   (%eax)
protect.c:47
				break;
400002b7:	eb 77                	jmp    40000330 <_main+0x128>
400002b9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,1),%esi
protect.c:49
			case '3':
				(void)inportb(0x80);
400002c0:	83 c4 f4             	add    $0xfffffff4,%esp
400002c3:	68 80 00 00 00       	push   $0x80
400002c8:	e8 e3 00 00 00       	call   400003b0 <_inportb>
protect.c:50
				break;
400002cd:	83 c4 10             	add    $0x10,%esp
400002d0:	eb 5e                	jmp    40000330 <_main+0x128>
protect.c:52
			case '4':
				outportb(0x80, 0);
400002d2:	83 c4 f8             	add    $0xfffffff8,%esp
400002d5:	6a 00                	push   $0x0
400002d7:	68 80 00 00 00       	push   $0x80
400002dc:	e8 df 00 00 00       	call   400003c0 <_outportb>
protect.c:53
				break;
400002e1:	83 c4 10             	add    $0x10,%esp
400002e4:	eb 4a                	jmp    40000330 <_main+0x128>
protect.c:55
			case '5':
				disable();
400002e6:	e8 e5 00 00 00       	call   400003d0 <_disable>
protect.c:56
				break;
400002eb:	eb 43                	jmp    40000330 <_main+0x128>
400002ed:	8d 76 00             	lea    0x0(%esi),%esi
protect.c:58
			case '6':
				recurse();
400002f0:	e8 0b fd ff ff       	call   40000000 <_code>
protect.c:59
				break;
400002f5:	eb 39                	jmp    40000330 <_main+0x128>
protect.c:61
			case '7':
				printf("%u\n", key / 0);
400002f7:	31 d2                	xor    %edx,%edx
400002f9:	8a 55 ff             	mov    0xffffffff(%ebp),%dl
400002fc:	b1 00                	mov    $0x0,%cl
400002fe:	89 d0                	mov    %edx,%eax
40000300:	f6 f1                	div    %cl,%al
40000302:	83 c4 f8             	add    $0xfffffff8,%esp
40000305:	88 c2                	mov    %al,%dl
40000307:	31 c0                	xor    %eax,%eax
40000309:	88 d0                	mov    %dl,%al
4000030b:	50                   	push   %eax
4000030c:	68 b1 01 00 40       	push   $0x400001b1
40000311:	e8 3a 00 00 00       	call   40000350 <_printf>
protect.c:62
				break;
40000316:	83 c4 10             	add    $0x10,%esp
40000319:	eb 15                	jmp    40000330 <_main+0x128>
4000031b:	90                   	nop    
4000031c:	8d 74 26 00          	lea    0x0(%esi,1),%esi
protect.c:64
			default:
				printf("Invalid key, try again\n");
40000320:	83 c4 f4             	add    $0xfffffff4,%esp
40000323:	68 b5 01 00 40       	push   $0x400001b5
protect.c:65
				goto SKIP;
40000328:	eb 0e                	jmp    40000338 <_main+0x130>
4000032a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
protect.c:67
		}
		printf("Hey, it worked! Better fix the kernel\n");
40000330:	83 c4 f4             	add    $0xfffffff4,%esp
40000333:	68 e0 01 00 40       	push   $0x400001e0
40000338:	e8 13 00 00 00       	call   40000350 <_printf>
4000033d:	83 c4 10             	add    $0x10,%esp
protect.c:70
SKIP:
	}
	return 0;
40000340:	e9 01 ff ff ff       	jmp    40000246 <_main+0x3e>

40000345 <.ef>:
protect.c:71
}
40000345:	8d 74 26 00          	lea    0x0(%esi,1),%esi
40000349:	8d bc 27 00 00 00 00 	lea    0x0(%edi,1),%edi

40000350 <_printf>:
_printf():
printf.c:9
40000350:	55                   	push   %ebp
40000351:	89 e5                	mov    %esp,%ebp
40000353:	83 ec 08             	sub    $0x8,%esp
40000356:	8d 45 0c             	lea    0xc(%ebp),%eax
printf.c:10
40000359:	83 c4 f8             	add    $0xfffffff8,%esp
4000035c:	50                   	push   %eax
4000035d:	8b 45 08             	mov    0x8(%ebp),%eax
40000360:	50                   	push   %eax
40000361:	e8 9a 00 00 00       	call   40000400 <_vprintf>
printf.c:12
40000366:	89 ec                	mov    %ebp,%esp
40000368:	5d                   	pop    %ebp
40000369:	c3                   	ret    

4000036a <.ef>:
printf.c:13
4000036a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

40000370 <_ioctl>:
_ioctl():
ioctl.c:5
40000370:	55                   	push   %ebp
40000371:	89 e5                	mov    %esp,%ebp
40000373:	53                   	push   %ebx
ioctl.c:8
40000374:	b8 04 00 00 00       	mov    $0x4,%eax
ioctl.c:5
40000379:	8b 55 08             	mov    0x8(%ebp),%edx
4000037c:	8b 4d 10             	mov    0x10(%ebp),%ecx
4000037f:	8a 5d 0c             	mov    0xc(%ebp),%bl
ioctl.c:8
40000382:	cd 30                	int    $0x30
ioctl.c:11
40000384:	5b                   	pop    %ebx
40000385:	89 ec                	mov    %ebp,%esp
40000387:	5d                   	pop    %ebp
40000388:	c3                   	ret    

40000389 <.ef>:
ioctl.c:12
40000389:	8d b4 26 00 00 00 00 	lea    0x0(%esi,1),%esi

40000390 <_read>:
_read():
read.c:5
40000390:	55                   	push   %ebp
40000391:	89 e5                	mov    %esp,%ebp
40000393:	53                   	push   %ebx
read.c:8
40000394:	b8 03 00 00 00       	mov    $0x3,%eax
read.c:5
40000399:	8b 55 08             	mov    0x8(%ebp),%edx
4000039c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4000039f:	8b 4d 10             	mov    0x10(%ebp),%ecx
read.c:8
400003a2:	cd 30                	int    $0x30
read.c:11
400003a4:	5b                   	pop    %ebx
400003a5:	89 ec                	mov    %ebp,%esp
400003a7:	5d                   	pop    %ebp
400003a8:	c3                   	ret    

400003a9 <.ef>:
read.c:12
400003a9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,1),%esi

400003b0 <_inportb>:
_inportb():
inportb.c:2
400003b0:	55                   	push   %ebp
400003b1:	89 e5                	mov    %esp,%ebp
400003b3:	8b 55 08             	mov    0x8(%ebp),%edx
inportb.c:5
400003b6:	ec                   	in     (%dx),%al
inportb.c:8
400003b7:	25 ff 00 00 00       	and    $0xff,%eax
400003bc:	89 ec                	mov    %ebp,%esp
400003be:	5d                   	pop    %ebp
400003bf:	c3                   	ret    

400003c0 <_outportb>:
_outportb():
outportb.c:2
400003c0:	55                   	push   %ebp
400003c1:	89 e5                	mov    %esp,%ebp
400003c3:	8b 55 08             	mov    0x8(%ebp),%edx
400003c6:	8a 45 0c             	mov    0xc(%ebp),%al
outportb.c:3
400003c9:	ee                   	out    %al,(%dx)
400003ca:	89 ec                	mov    %ebp,%esp
400003cc:	5d                   	pop    %ebp
400003cd:	c3                   	ret    

400003ce <.ef>:
400003ce:	89 f6                	mov    %esi,%esi

400003d0 <_disable>:
_disable():
400003d0:	55                   	push   %ebp
400003d1:	89 e5                	mov    %esp,%ebp
400003d3:	fa                   	cli    
400003d4:	89 ec                	mov    %ebp,%esp
400003d6:	5d                   	pop    %ebp
400003d7:	c3                   	ret    

400003d8 <.ef>:
400003d8:	90                   	nop    
400003d9:	8d b4 26 00 00 00 00 	lea    0x0(%esi,1),%esi

400003e0 <_vprintf_help>:
_vprintf_help():
vprintf.c:8
400003e0:	55                   	push   %ebp
400003e1:	89 e5                	mov    %esp,%ebp
400003e3:	83 ec 08             	sub    $0x8,%esp
400003e6:	83 c4 f8             	add    $0xfffffff8,%esp
400003e9:	68 18 10 00 40       	push   $0x40001018
400003ee:	0f be 45 08          	movsbl 0x8(%ebp),%eax
400003f2:	50                   	push   %eax
400003f3:	e8 28 00 00 00       	call   40000420 <_fputc>
vprintf.c:9
400003f8:	31 c0                	xor    %eax,%eax
400003fa:	89 ec                	mov    %ebp,%esp
400003fc:	5d                   	pop    %ebp
400003fd:	c3                   	ret    

400003fe <.ef>:
400003fe:	89 f6                	mov    %esi,%esi

40000400 <_vprintf>:
_vprintf():
vprintf.c:14
40000400:	55                   	push   %ebp
40000401:	89 e5                	mov    %esp,%ebp
40000403:	83 ec 08             	sub    $0x8,%esp
40000406:	8b 55 08             	mov    0x8(%ebp),%edx
40000409:	8b 45 0c             	mov    0xc(%ebp),%eax
vprintf.c:15
4000040c:	6a 00                	push   $0x0
4000040e:	68 e0 03 00 40       	push   $0x400003e0
40000413:	50                   	push   %eax
40000414:	52                   	push   %edx
40000415:	e8 a6 00 00 00       	call   400004c0 <_do_printf>
4000041a:	89 ec                	mov    %ebp,%esp
4000041c:	5d                   	pop    %ebp
4000041d:	c3                   	ret    

4000041e <.ef>:
4000041e:	89 f6                	mov    %esi,%esi

40000420 <_fputc>:
_fputc():
fputc.c:6
40000420:	55                   	push   %ebp
40000421:	89 e5                	mov    %esp,%ebp
40000423:	83 ec 0c             	sub    $0xc,%esp
40000426:	57                   	push   %edi
40000427:	56                   	push   %esi
40000428:	53                   	push   %ebx
40000429:	8b 75 08             	mov    0x8(%ebp),%esi
4000042c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
fputc.c:10
4000042f:	89 f7                	mov    %esi,%edi
fputc.c:11
40000431:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
40000435:	74 06                	je     4000043d <_fputc+0x1d>
40000437:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
4000043b:	75 23                	jne    40000460 <_fputc+0x40>
fputc.c:13
4000043d:	89 f8                	mov    %edi,%eax
4000043f:	88 45 ff             	mov    %al,0xffffffff(%ebp)
fputc.c:14
40000442:	83 c4 fc             	add    $0xfffffffc,%esp
40000445:	6a 01                	push   $0x1
40000447:	8d 45 ff             	lea    0xffffffff(%ebp),%eax
4000044a:	50                   	push   %eax
4000044b:	8b 43 14             	mov    0x14(%ebx),%eax
4000044e:	50                   	push   %eax
4000044f:	e8 7c 04 00 00       	call   400008d0 <_write>
40000454:	83 f8 01             	cmp    $0x1,%eax
40000457:	74 51                	je     400004aa <_fputc+0x8a>
fputc.c:16
40000459:	eb 4a                	jmp    400004a5 <_fputc+0x85>
4000045b:	90                   	nop    
4000045c:	8d 74 26 00          	lea    0x0(%esi,1),%esi
fputc.c:19
40000460:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
40000464:	75 1a                	jne    40000480 <_fputc+0x60>
fputc.c:21
40000466:	83 c4 f4             	add    $0xfffffff4,%esp
40000469:	53                   	push   %ebx
4000046a:	e8 81 04 00 00       	call   400008f0 <_fflush>
4000046f:	83 c4 10             	add    $0x10,%esp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -