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

📄 pm12.lst

📁 《自己动手写操作系统》一书的光盘配套代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
CAUTION: disassembly is not accurate until do_pm

pm12.cof:     file format coff-go32

Disassembly of section .text:

00000100 <_start>:
     100:	66 31 db       	xorw   %bx,%bx
     103:	8c cb          	movw   %cs,%bx
     105:	66 c1 e3 04    	shlw   $0x4,%bx
     109:	66 67 8d 03    	addr16 leaw (bp+di),%ax
     10d:	a3 77 04 a3 7f 	movl   %eax,0x7fa30477
     112:	04 a3          	addb   $0xa3,%al
     114:	87 04 a3       	xchgl  %eax,(%ebx,4)
     117:	8f 04 66       	popl   (%esi,2)
     11a:	c1 e8 10       	shrl   $0x10,%eax
     11d:	a2 79 04 a2 81 	movb   %al,0x81a20479
     122:	04 a2          	addb   $0xa2,%al
     124:	89 04 a2       	movl   %eax,(%edx,4)
     127:	91             	xchgl  %eax,%ecx
     128:	04 88          	addb   $0x88,%al
     12a:	26 7c 04       	jl     131 <_start+31>
     12d:	88 26          	movb   %ah,(%esi)
     12f:	84 04 88       	testb  %al,(%eax,%ecx,4)
     132:	26 8c 04 88    	movw   %es,%es:(%eax,%ecx,4)
     136:	26 94          	xchgl  %eax,%esp
     138:	04 66          	addb   $0x66,%al
     13a:	67 8d 83 25 06 	addr16 leal 0x625(bp+di),%eax
     13f:	00 00          	addb   %al,(%eax)
     141:	a3 97 04 66 c1 	movl   %eax,0xc1660497
     146:	e8 10 a2 99 04 	call   499a35b <_edata+4998fd3>
     14b:	88 26          	movb   %ah,(%esi)
     14d:	9c             	pushf  
     14e:	04 66          	addb   $0x66,%al
     150:	67 8d 83 65 04 	addr16 leal 0x465(bp+di),%eax
     155:	00 00          	addb   %al,(%eax)
     157:	66 a3 5b 04 66 	movw   %ax,0x6766045b
     15c:	67 
     15d:	8d 83 9d 04 00 	leal   0x49d(%ebx),%eax
     162:	00 
     163:	66 a3 61 04 66 	movw   %ax,0x68660461
     168:	68 
     169:	00 00          	addb   %al,(%eax)
     16b:	00 00          	addb   %al,(%eax)
     16d:	66 9d          	popf   
     16f:	0f 01 16       	lgdt   (%esi)
     172:	59             	popl   %ecx
     173:	04 0f          	addb   $0xf,%al
     175:	01 1e          	addl   %ebx,(%esi)
     177:	5f             	popl   %edi
     178:	04 0f          	addb   $0xf,%al
     17a:	20 c0          	andb   %al,%al
     17c:	0c 01          	orb    $0x1,%al
     17e:	0f 22 c0       	movl   %eax,%cr0
     181:	ea 86 01 10 00 	ljmp   0xb866,0x100186
     186:	66 b8 

00000186 <do_pm>:
     186:	66 b8 18 00    	movw   $0x18,%ax
     18a:	66 8e d8       	movw   %ax,%ds
     18d:	66 8e d0       	movw   %ax,%ss
     190:	90             	nop    
     191:	66 8e c0       	movw   %ax,%es
     194:	66 8e e0       	movw   %ax,%fs
     197:	66 8e e8       	movw   %ax,%gs
     19a:	b0 11          	movb   $0x11,%al
     19c:	e6 20          	outb   %al,$0x20
     19e:	e6 a0          	outb   %al,$0xa0
     1a0:	b0 20          	movb   $0x20,%al
     1a2:	e6 21          	outb   %al,$0x21
     1a4:	04 08          	addb   $0x8,%al
     1a6:	e6 a1          	outb   %al,$0xa1
     1a8:	b0 04          	movb   $0x4,%al
     1aa:	e6 21          	outb   %al,$0x21
     1ac:	b0 02          	movb   $0x2,%al
     1ae:	e6 a1          	outb   %al,$0xa1
     1b0:	b0 01          	movb   $0x1,%al
     1b2:	e6 21          	outb   %al,$0x21
     1b4:	e6 a1          	outb   %al,$0xa1
     1b6:	b0 fe          	movb   $0xfe,%al
     1b8:	e6 21          	outb   %al,$0x21
     1ba:	b0 ff          	movb   $0xff,%al
     1bc:	e6 a1          	outb   %al,$0xa1
     1be:	66 b8 30 00    	movw   $0x30,%ax
     1c2:	0f 00 d8       	ltr    %ax
     1c5:	8d 1d 8d 07 00 	leal   0x78d,%ebx
     1ca:	00 
     1cb:	53             	pushl  %ebx
     1cc:	89 25 29 06 00 	movl   %esp,0x629
     1d1:	00 
     1d2:	8d 23          	leal   (%ebx),%esp
     1d4:	61             	popa   
     1d5:	1f             	popl   %ds
     1d6:	07             	popl   %es
     1d7:	0f a1          	popl   %fs
     1d9:	0f a9          	popl   %gs
     1db:	cf             	iret   
     1dc:	0f a8          	pushl  %gs
     1de:	0f a0          	pushl  %fs
     1e0:	06             	pushl  %es
     1e1:	1e             	pushl  %ds
     1e2:	60             	pusha  
     1e3:	b0 20          	movb   $0x20,%al
     1e5:	e6 20          	outb   %al,$0x20
     1e7:	66 8c d0       	movw   %ss,%ax
     1ea:	66 8e d8       	movw   %ax,%ds
     1ed:	66 8e c0       	movw   %ax,%es
     1f0:	66 8e e0       	movw   %ax,%fs
     1f3:	66 8e e8       	movw   %ax,%gs
     1f6:	8d 34 24       	leal   (%esp,1),%esi
     1f9:	8b 7c 24 44    	movl   0x44(%esp,1),%edi
     1fd:	b9 11 00 00 00 	movl   $0x11,%ecx
     202:	f3 a5          	repz movsl %ds:(%esi),%es:(%edi)
     204:	81 c4 44 00 00 	addl   $0x44,%esp
     209:	00 
     20a:	5b             	popl   %ebx
     20b:	81 fb 8d 07 00 	cmpl   $0x78d,%ebx
     210:	00 
     211:	74 0b          	je     21e <do_pm+98>
     213:	8d 1d 8d 07 00 	leal   0x78d,%ebx
     218:	00 
     219:	e9 ad ff ff ff 	jmp    1cb <do_pm+45>
     21e:	8d 1d d1 08 00 	leal   0x8d1,%ebx
     223:	00 
     224:	e9 a2 ff ff ff 	jmp    1cb <do_pm+45>
     229:	68 00 00 00 00 	pushl  $0x0
     22e:	e9 2d 00 00 00 	jmp    260 <do_pm+da>
     233:	68 05 00 00 00 	pushl  $0x5
     238:	e9 23 00 00 00 	jmp    260 <do_pm+da>
     23d:	68 06 00 00 00 	pushl  $0x6
     242:	e9 19 00 00 00 	jmp    260 <do_pm+da>
     247:	68 07 00 00 00 	pushl  $0x7
     24c:	e9 0f 00 00 00 	jmp    260 <do_pm+da>
     251:	68 10 00 00 00 	pushl  $0x10
     256:	e9 05 00 00 00 	jmp    260 <do_pm+da>
     25b:	68 09 00 00 00 	pushl  $0x9
     260:	66 8c d0       	movw   %ss,%ax
     263:	66 8e d8       	movw   %ax,%ds
     266:	66 8e c0       	movw   %ax,%es
     269:	66 8e e0       	movw   %ax,%fs
     26c:	66 8e e8       	movw   %ax,%gs
     26f:	e8 80 0e 00 00 	call   10f4 <_unhand>
     274:	e9 fb ff ff ff 	jmp    274 <do_pm+ee>
     279:	68 0a 00 00 00 	pushl  $0xa
     27e:	e9 2d 00 00 00 	jmp    2b0 <do_pm+12a>
     283:	68 0b 00 00 00 	pushl  $0xb
     288:	e9 23 00 00 00 	jmp    2b0 <do_pm+12a>
     28d:	68 0c 00 00 00 	pushl  $0xc
     292:	e9 19 00 00 00 	jmp    2b0 <do_pm+12a>
     297:	68 0d 00 00 00 	pushl  $0xd
     29c:	e9 0f 00 00 00 	jmp    2b0 <do_pm+12a>
     2a1:	68 0e 00 00 00 	pushl  $0xe
     2a6:	e9 05 00 00 00 	jmp    2b0 <do_pm+12a>
     2ab:	68 08 00 00 00 	pushl  $0x8
     2b0:	66 8c d0       	movw   %ss,%ax
     2b3:	66 8e d8       	movw   %ax,%ds
     2b6:	66 8e c0       	movw   %ax,%es
     2b9:	66 8e e0       	movw   %ax,%fs
     2bc:	66 8e e8       	movw   %ax,%gs
     2bf:	e8 cc 0e 00 00 	call   1190 <_unhand2>
     2c4:	e9 fb ff ff ff 	jmp    2c4 <do_pm+13e>
     2c9:	68 01 00 00 00 	pushl  $0x1
     2ce:	e9 8d ff ff ff 	jmp    260 <do_pm+da>
     2d3:	68 02 00 00 00 	pushl  $0x2
     2d8:	e9 83 ff ff ff 	jmp    260 <do_pm+da>
     2dd:	68 04 00 00 00 	pushl  $0x4
     2e2:	e9 79 ff ff ff 	jmp    260 <do_pm+da>
     2e7:	68 03 00 00 00 	pushl  $0x3
     2ec:	e9 6f ff ff ff 	jmp    260 <do_pm+da>
     2f1:	68 0f 00 00 00 	pushl  $0xf
     2f6:	e9 65 ff ff ff 	jmp    260 <do_pm+da>
     2fb:	68 11 00 00 00 	pushl  $0x11
     300:	e9 5b ff ff ff 	jmp    260 <do_pm+da>
     305:	68 12 00 00 00 	pushl  $0x12
     30a:	e9 51 ff ff ff 	jmp    260 <do_pm+da>
     30f:	68 13 00 00 00 	pushl  $0x13
     314:	e9 47 ff ff ff 	jmp    260 <do_pm+da>
     319:	68 14 00 00 00 	pushl  $0x14
     31e:	e9 3d ff ff ff 	jmp    260 <do_pm+da>
     323:	68 15 00 00 00 	pushl  $0x15
     328:	e9 33 ff ff ff 	jmp    260 <do_pm+da>
     32d:	68 16 00 00 00 	pushl  $0x16
     332:	e9 29 ff ff ff 	jmp    260 <do_pm+da>
     337:	68 17 00 00 00 	pushl  $0x17
     33c:	e9 1f ff ff ff 	jmp    260 <do_pm+da>
     341:	68 18 00 00 00 	pushl  $0x18
     346:	e9 15 ff ff ff 	jmp    260 <do_pm+da>
     34b:	68 19 00 00 00 	pushl  $0x19
     350:	e9 0b ff ff ff 	jmp    260 <do_pm+da>
     355:	68 1a 00 00 00 	pushl  $0x1a
     35a:	e9 01 ff ff ff 	jmp    260 <do_pm+da>
     35f:	68 1b 00 00 00 	pushl  $0x1b
     364:	e9 f7 fe ff ff 	jmp    260 <do_pm+da>
     369:	68 1c 00 00 00 	pushl  $0x1c
     36e:	e9 ed fe ff ff 	jmp    260 <do_pm+da>
     373:	68 1d 00 00 00 	pushl  $0x1d
     378:	e9 e3 fe ff ff 	jmp    260 <do_pm+da>
     37d:	68 1e 00 00 00 	pushl  $0x1e
     382:	e9 d9 fe ff ff 	jmp    260 <do_pm+da>
     387:	68 1f 00 00 00 	pushl  $0x1f
     38c:	e9 cf fe ff ff 	jmp    260 <do_pm+da>
     391:	68 21 00 00 00 	pushl  $0x21
     396:	e9 c5 fe ff ff 	jmp    260 <do_pm+da>
     39b:	68 22 00 00 00 	pushl  $0x22
     3a0:	e9 bb fe ff ff 	jmp    260 <do_pm+da>
     3a5:	68 23 00 00 00 	pushl  $0x23
     3aa:	e9 b1 fe ff ff 	jmp    260 <do_pm+da>
     3af:	68 24 00 00 00 	pushl  $0x24
     3b4:	e9 a7 fe ff ff 	jmp    260 <do_pm+da>
     3b9:	68 25 00 00 00 	pushl  $0x25
     3be:	e9 9d fe ff ff 	jmp    260 <do_pm+da>
     3c3:	68 26 00 00 00 	pushl  $0x26
     3c8:	e9 93 fe ff ff 	jmp    260 <do_pm+da>
     3cd:	68 27 00 00 00 	pushl  $0x27
     3d2:	e9 89 fe ff ff 	jmp    260 <do_pm+da>
     3d7:	68 28 00 00 00 	pushl  $0x28
     3dc:	e9 7f fe ff ff 	jmp    260 <do_pm+da>
     3e1:	68 29 00 00 00 	pushl  $0x29
     3e6:	e9 75 fe ff ff 	jmp    260 <do_pm+da>
     3eb:	68 2a 00 00 00 	pushl  $0x2a
     3f0:	e9 6b fe ff ff 	jmp    260 <do_pm+da>
     3f5:	68 2b 00 00 00 	pushl  $0x2b
     3fa:	e9 61 fe ff ff 	jmp    260 <do_pm+da>
     3ff:	68 2c 00 00 00 	pushl  $0x2c
     404:	e9 57 fe ff ff 	jmp    260 <do_pm+da>
     409:	68 2d 00 00 00 	pushl  $0x2d
     40e:	e9 4d fe ff ff 	jmp    260 <do_pm+da>
     413:	68 2e 00 00 00 	pushl  $0x2e
     418:	e9 43 fe ff ff 	jmp    260 <do_pm+da>
     41d:	68 2f 00 00 00 	pushl  $0x2f
     422:	e9 39 fe ff ff 	jmp    260 <do_pm+da>
     427:	60             	pusha  
     428:	0f a8          	pushl  %gs
     42a:	0f a0          	pushl  %fs
     42c:	06             	pushl  %es
     42d:	1e             	pushl  %ds
     42e:	66 bb 18 00    	movw   $0x18,%bx
     432:	66 8e db       	movw   %bx,%ds
     435:	66 8e c3       	movw   %bx,%es
     438:	66 8e e3       	movw   %bx,%fs
     43b:	66 8e eb       	movw   %bx,%gs
     43e:	8b 5c 24 30    	movl   0x30(%esp,1),%ebx
     442:	66 81 7b fe cd 	cmpw   $0x30cd,0xfffffffe(%ebx)
     447:	30 
     448:	50             	pushl  %eax
     449:	e8 7a 09 00 00 	call   dc8 <_putch>
     44e:	58             	popl   %eax
     44f:	1f             	popl   %ds
     450:	07             	popl   %es
     451:	0f a1          	popl   %fs
     453:	0f a9          	popl   %gs
     455:	61             	popa   
     456:	cf             	iret   

00000457 <_CsrX>:
	...

00000458 <_CsrY>:
     458:	00 37          	addb   %dh,(%edi)
     45a:	00 65 04       	addb   %ah,0x4(%ebp)
     45d:	00 00          	addb   %al,(%eax)
     45f:	87 01          	xchgl  %eax,(%ecx)
     461:	9d             	popf   
     462:	04 00          	addb   $0x0,%al
	...
     46c:	00 ff          	addb   %bh,%bh
     46e:	ff 00          	incl   (%eax)
     470:	00 00          	addb   %al,(%eax)
     472:	92             	xchgl  %eax,%edx
     473:	cf             	iret   
     474:	00 ff          	addb   %bh,%bh
     476:	ff 00          	incl   (%eax)
     478:	00 00          	addb   %al,(%eax)
     47a:	9a cf 00 ff ff 	lcall  0x0,0xffff00cf
     47f:	00 00 
     481:	00 92 cf 00 ff 	addb   %dl,0xffff00cf(%edx)
     486:	ff 
     487:	00 00          	addb   %al,(%eax)
     489:	00 fa          	addb   %bh,%dl
     48b:	cf             	iret   
     48c:	00 ff          	addb   %bh,%bh
     48e:	ff 00          	incl   (%eax)
     490:	00 00          	addb   %al,(%eax)
     492:	f2 cf          	repnz iret 
     494:	00 67 00       	addb   %ah,0x0(%edi)
     497:	00 00          	addb   %al,(%eax)
     499:	00 e9          	addb   %ch,%cl
     49b:	00 00          	addb   %al,(%eax)
     49d:	29 02          	subl   %eax,(%edx)
     49f:	10 00          	adcb   %al,(%eax)
     4a1:	00 8e 00 00 c9 	addb   %cl,0x2c90000(%esi)
     4a6:	02 
     4a7:	10 00          	adcb   %al,(%eax)
     4a9:	00 8e 00 00 d3 	addb   %cl,0x2d30000(%esi)
     4ae:	02 
     4af:	10 00          	adcb   %al,(%eax)
     4b1:	00 8e 00 00 e7 	addb   %cl,0x2e70000(%esi)
     4b6:	02 
     4b7:	10 00          	adcb   %al,(%eax)
     4b9:	00 8e 00 00 dd 	addb   %cl,0x2dd0000(%esi)
     4be:	02 
     4bf:	10 00          	adcb   %al,(%eax)
     4c1:	00 8e 00 00 33 	addb   %cl,0x2330000(%esi)
     4c6:	02 
     4c7:	10 00          	adcb   %al,(%eax)
     4c9:	00 8e 00 00 3d 	addb   %cl,0x23d0000(%esi)
     4ce:	02 
     4cf:	10 00          	adcb   %al,(%eax)
     4d1:	00 8e 00 00 47 	addb   %cl,0x2470000(%esi)
     4d6:	02 
     4d7:	10 00          	adcb   %al,(%eax)
     4d9:	00 8e 00 00 ab 	addb   %cl,0x2ab0000(%esi)
     4de:	02 
     4df:	10 00          	adcb   %al,(%eax)
     4e1:	00 8e 00 00 5b 	addb   %cl,0x25b0000(%esi)
     4e6:	02 
     4e7:	10 00          	adcb   %al,(%eax)
     4e9:	00 8e 00 00 79 	addb   %cl,0x2790000(%esi)
     4ee:	02 
     4ef:	10 00          	adcb   %al,(%eax)
     4f1:	00 8e 00 00 83 	addb   %cl,0x2830000(%esi)
     4f6:	02 
     4f7:	10 00          	adcb   %al,(%eax)
     4f9:	00 8e 00 00 8d 	addb   %cl,0x28d0000(%esi)
     4fe:	02 
     4ff:	10 00          	adcb   %al,(%eax)
     501:	00 8e 00 00 97 	addb   %cl,0x2970000(%esi)
     506:	02 
     507:	10 00          	adcb   %al,(%eax)
     509:	00 8e 00 00 a1 	addb   %cl,0x2a10000(%esi)
     50e:	02 
     50f:	10 00          	adcb   %al,(%eax)
     511:	00 8e 00 00 f1 	addb   %cl,0x2f10000(%esi)
     516:	02 
     517:	10 00          	adcb   %al,(%eax)
     519:	00 8e 00 00 51 	addb   %cl,0x2510000(%esi)
     51e:	02 
     51f:	10 00          	adcb   %al,(%eax)
     521:	00 8e 00 00 fb 	addb   %cl,0x2fb0000(%esi)
     526:	02 
     527:	10 00          	adcb   %al,(%eax)
     529:	00 8e 00 00 05 	addb   %cl,0x3050000(%esi)
     52e:	03 
     52f:	10 00          	adcb   %al,(%eax)
     531:	00 8e 00 00 0f 	addb   %cl,0x30f0000(%esi)
     536:	03 
     537:	10 00          	adcb   %al,(%eax)

⌨️ 快捷键说明

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