Advertisement
HackerCow

OS disas

May 4th, 2017
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 200.19 KB | None | 0 0
  1. $ objdump -d dev/os/build/src/kernel/kernel
  2. dev/os/build/src/kernel/kernel: file format elf32-i386
  3.  
  4.  
  5. Disassembly of section .text:
  6.  
  7. c0100000 <kernel_start>:
  8. c0100000: 02 b0 ad 1b 03 00 add 0x31bad(%eax),%dh
  9. c0100006: 00 00 add %al,(%eax)
  10. c0100008: fb sti
  11. c0100009: 4f dec %edi
  12. c010000a: 52 push %edx
  13. c010000b: e4 .byte 0xe4
  14.  
  15. c010000c <interrupt_stub_0>:
  16. c010000c: 6a 00 push $0x0
  17. c010000e: 6a 00 push $0x0
  18. c0100010: e9 f4 00 00 00 jmp c0100109 <isr_common>
  19.  
  20. c0100015 <interrupt_stub_1>:
  21. c0100015: 6a 00 push $0x0
  22. c0100017: 6a 01 push $0x1
  23. c0100019: e9 eb 00 00 00 jmp c0100109 <isr_common>
  24.  
  25. c010001e <interrupt_stub_2>:
  26. c010001e: 6a 00 push $0x0
  27. c0100020: 6a 02 push $0x2
  28. c0100022: e9 e2 00 00 00 jmp c0100109 <isr_common>
  29.  
  30. c0100027 <interrupt_stub_3>:
  31. c0100027: 6a 00 push $0x0
  32. c0100029: 6a 03 push $0x3
  33. c010002b: e9 d9 00 00 00 jmp c0100109 <isr_common>
  34.  
  35. c0100030 <interrupt_stub_4>:
  36. c0100030: 6a 00 push $0x0
  37. c0100032: 6a 04 push $0x4
  38. c0100034: e9 d0 00 00 00 jmp c0100109 <isr_common>
  39.  
  40. c0100039 <interrupt_stub_5>:
  41. c0100039: 6a 00 push $0x0
  42. c010003b: 6a 05 push $0x5
  43. c010003d: e9 c7 00 00 00 jmp c0100109 <isr_common>
  44.  
  45. c0100042 <interrupt_stub_6>:
  46. c0100042: 6a 00 push $0x0
  47. c0100044: 6a 06 push $0x6
  48. c0100046: e9 be 00 00 00 jmp c0100109 <isr_common>
  49.  
  50. c010004b <interrupt_stub_7>:
  51. c010004b: 6a 00 push $0x0
  52. c010004d: 6a 07 push $0x7
  53. c010004f: e9 b5 00 00 00 jmp c0100109 <isr_common>
  54.  
  55. c0100054 <interrupt_stub_8>:
  56. c0100054: 6a 08 push $0x8
  57. c0100056: e9 ae 00 00 00 jmp c0100109 <isr_common>
  58.  
  59. c010005b <interrupt_stub_9>:
  60. c010005b: 6a 00 push $0x0
  61. c010005d: 6a 09 push $0x9
  62. c010005f: e9 a5 00 00 00 jmp c0100109 <isr_common>
  63.  
  64. c0100064 <interrupt_stub_10>:
  65. c0100064: 6a 0a push $0xa
  66. c0100066: e9 9e 00 00 00 jmp c0100109 <isr_common>
  67.  
  68. c010006b <interrupt_stub_11>:
  69. c010006b: 6a 0b push $0xb
  70. c010006d: e9 97 00 00 00 jmp c0100109 <isr_common>
  71.  
  72. c0100072 <interrupt_stub_12>:
  73. c0100072: 6a 0c push $0xc
  74. c0100074: e9 90 00 00 00 jmp c0100109 <isr_common>
  75.  
  76. c0100079 <interrupt_stub_13>:
  77. c0100079: 6a 0d push $0xd
  78. c010007b: e9 89 00 00 00 jmp c0100109 <isr_common>
  79.  
  80. c0100080 <interrupt_stub_14>:
  81. c0100080: 6a 0e push $0xe
  82. c0100082: e9 82 00 00 00 jmp c0100109 <isr_common>
  83.  
  84. c0100087 <interrupt_stub_15>:
  85. c0100087: 6a 00 push $0x0
  86. c0100089: 6a 0f push $0xf
  87. c010008b: eb 7c jmp c0100109 <isr_common>
  88.  
  89. c010008d <interrupt_stub_16>:
  90. c010008d: 6a 00 push $0x0
  91. c010008f: 6a 10 push $0x10
  92. c0100091: eb 76 jmp c0100109 <isr_common>
  93.  
  94. c0100093 <interrupt_stub_17>:
  95. c0100093: 6a 11 push $0x11
  96. c0100095: eb 72 jmp c0100109 <isr_common>
  97.  
  98. c0100097 <interrupt_stub_18>:
  99. c0100097: 6a 00 push $0x0
  100. c0100099: 6a 12 push $0x12
  101. c010009b: eb 6c jmp c0100109 <isr_common>
  102.  
  103. c010009d <interrupt_stub_19>:
  104. c010009d: 6a 00 push $0x0
  105. c010009f: 6a 13 push $0x13
  106. c01000a1: eb 66 jmp c0100109 <isr_common>
  107.  
  108. c01000a3 <interrupt_stub_32>:
  109. c01000a3: 6a 00 push $0x0
  110. c01000a5: 6a 20 push $0x20
  111. c01000a7: eb 60 jmp c0100109 <isr_common>
  112.  
  113. c01000a9 <interrupt_stub_33>:
  114. c01000a9: 6a 00 push $0x0
  115. c01000ab: 6a 21 push $0x21
  116. c01000ad: eb 5a jmp c0100109 <isr_common>
  117.  
  118. c01000af <interrupt_stub_34>:
  119. c01000af: 6a 00 push $0x0
  120. c01000b1: 6a 22 push $0x22
  121. c01000b3: eb 54 jmp c0100109 <isr_common>
  122.  
  123. c01000b5 <interrupt_stub_35>:
  124. c01000b5: 6a 00 push $0x0
  125. c01000b7: 6a 23 push $0x23
  126. c01000b9: eb 4e jmp c0100109 <isr_common>
  127.  
  128. c01000bb <interrupt_stub_36>:
  129. c01000bb: 6a 00 push $0x0
  130. c01000bd: 6a 24 push $0x24
  131. c01000bf: eb 48 jmp c0100109 <isr_common>
  132.  
  133. c01000c1 <interrupt_stub_37>:
  134. c01000c1: 6a 00 push $0x0
  135. c01000c3: 6a 25 push $0x25
  136. c01000c5: eb 42 jmp c0100109 <isr_common>
  137.  
  138. c01000c7 <interrupt_stub_38>:
  139. c01000c7: 6a 00 push $0x0
  140. c01000c9: 6a 26 push $0x26
  141. c01000cb: eb 3c jmp c0100109 <isr_common>
  142.  
  143. c01000cd <interrupt_stub_39>:
  144. c01000cd: 6a 00 push $0x0
  145. c01000cf: 6a 27 push $0x27
  146. c01000d1: eb 36 jmp c0100109 <isr_common>
  147.  
  148. c01000d3 <interrupt_stub_40>:
  149. c01000d3: 6a 00 push $0x0
  150. c01000d5: 6a 28 push $0x28
  151. c01000d7: eb 30 jmp c0100109 <isr_common>
  152.  
  153. c01000d9 <interrupt_stub_41>:
  154. c01000d9: 6a 00 push $0x0
  155. c01000db: 6a 29 push $0x29
  156. c01000dd: eb 2a jmp c0100109 <isr_common>
  157.  
  158. c01000df <interrupt_stub_42>:
  159. c01000df: 6a 00 push $0x0
  160. c01000e1: 6a 2a push $0x2a
  161. c01000e3: eb 24 jmp c0100109 <isr_common>
  162.  
  163. c01000e5 <interrupt_stub_43>:
  164. c01000e5: 6a 00 push $0x0
  165. c01000e7: 6a 2b push $0x2b
  166. c01000e9: eb 1e jmp c0100109 <isr_common>
  167.  
  168. c01000eb <interrupt_stub_44>:
  169. c01000eb: 6a 00 push $0x0
  170. c01000ed: 6a 2c push $0x2c
  171. c01000ef: eb 18 jmp c0100109 <isr_common>
  172.  
  173. c01000f1 <interrupt_stub_45>:
  174. c01000f1: 6a 00 push $0x0
  175. c01000f3: 6a 2d push $0x2d
  176. c01000f5: eb 12 jmp c0100109 <isr_common>
  177.  
  178. c01000f7 <interrupt_stub_46>:
  179. c01000f7: 6a 00 push $0x0
  180. c01000f9: 6a 2e push $0x2e
  181. c01000fb: eb 0c jmp c0100109 <isr_common>
  182.  
  183. c01000fd <interrupt_stub_47>:
  184. c01000fd: 6a 00 push $0x0
  185. c01000ff: 6a 2f push $0x2f
  186. c0100101: eb 06 jmp c0100109 <isr_common>
  187.  
  188. c0100103 <interrupt_stub_48>:
  189. c0100103: 6a 00 push $0x0
  190. c0100105: 6a 30 push $0x30
  191. c0100107: eb 00 jmp c0100109 <isr_common>
  192.  
  193. c0100109 <isr_common>:
  194. c0100109: 55 push %ebp
  195. c010010a: 57 push %edi
  196. c010010b: 56 push %esi
  197. c010010c: 52 push %edx
  198. c010010d: 51 push %ecx
  199. c010010e: 53 push %ebx
  200. c010010f: 50 push %eax
  201. c0100110: 66 b8 10 00 mov $0x10,%ax
  202. c0100114: 8e d8 mov %eax,%ds
  203. c0100116: 8e c0 mov %eax,%es
  204. c0100118: 54 push %esp
  205. c0100119: e8 92 0f 00 00 call c01010b0 <isr_handler_common>
  206. c010011e: 89 c4 mov %eax,%esp
  207. c0100120: 66 b8 23 00 mov $0x23,%ax
  208. c0100124: 8e d8 mov %eax,%ds
  209. c0100126: 8e c0 mov %eax,%es
  210. c0100128: 58 pop %eax
  211. c0100129: 5b pop %ebx
  212. c010012a: 59 pop %ecx
  213. c010012b: 5a pop %edx
  214. c010012c: 5e pop %esi
  215. c010012d: 5f pop %edi
  216. c010012e: 5d pop %ebp
  217. c010012f: 83 c4 08 add $0x8,%esp
  218. c0100132: cf iret
  219.  
  220. c0100133 <load_page_directory>:
  221. c0100133: 55 push %ebp
  222. c0100134: 89 e5 mov %esp,%ebp
  223. c0100136: 8b 44 24 08 mov 0x8(%esp),%eax
  224. c010013a: 0f 22 d8 mov %eax,%cr3
  225. c010013d: 89 ec mov %ebp,%esp
  226. c010013f: 5d pop %ebp
  227. c0100140: c3 ret
  228.  
  229. c0100141 <enable_paging>:
  230. c0100141: 55 push %ebp
  231. c0100142: 89 e5 mov %esp,%ebp
  232. c0100144: 0f 20 c0 mov %cr0,%eax
  233. c0100147: 0d 00 00 00 80 or $0x80000000,%eax
  234. c010014c: 0f 22 c0 mov %eax,%cr0
  235. c010014f: 89 ec mov %ebp,%esp
  236. c0100151: 5d pop %ebp
  237. c0100152: c3 ret
  238.  
  239. c0100153 <_start>:
  240. c0100153: bf 00 70 12 00 mov $0x127000,%edi
  241. c0100158: be 00 00 00 00 mov $0x0,%esi
  242. c010015d: b9 ff 03 00 00 mov $0x3ff,%ecx
  243. c0100162: 81 fe 00 00 10 00 cmp $0x100000,%esi
  244. c0100168: 7c 0f jl c0100179 <_start+0x26>
  245. c010016a: 81 fe 2c c9 12 00 cmp $0x12c92c,%esi
  246. c0100170: 7d 12 jge c0100184 <_start+0x31>
  247. c0100172: 89 f2 mov %esi,%edx
  248. c0100174: 83 ca 03 or $0x3,%edx
  249. c0100177: 89 17 mov %edx,(%edi)
  250. c0100179: 81 c6 00 10 00 00 add $0x1000,%esi
  251. c010017f: 83 c7 04 add $0x4,%edi
  252. c0100182: e2 de loop c0100162 <_start+0xf>
  253. c0100184: c7 05 fc 7f 12 00 03 movl $0xb8003,0x127ffc
  254. c010018b: 80 0b 00
  255. c010018e: c7 05 00 60 12 00 03 movl $0x127003,0x126000
  256. c0100195: 70 12 00
  257. c0100198: c7 05 00 6c 12 00 03 movl $0x127003,0x126c00
  258. c010019f: 70 12 00
  259. c01001a2: b9 00 60 12 00 mov $0x126000,%ecx
  260. c01001a7: 0f 22 d9 mov %ecx,%cr3
  261. c01001aa: 0f 20 c1 mov %cr0,%ecx
  262. c01001ad: 81 c9 00 00 01 80 or $0x80010000,%ecx
  263. c01001b3: 0f 22 c1 mov %ecx,%cr0
  264. c01001b6: 8d 0d be 01 10 c0 lea 0xc01001be,%ecx
  265. c01001bc: ff e1 jmp *%ecx
  266. c01001be: c7 05 00 60 12 c0 00 movl $0x0,0xc0126000
  267. c01001c5: 00 00 00
  268. c01001c8: 0f 20 d9 mov %cr3,%ecx
  269. c01001cb: 0f 22 d9 mov %ecx,%cr3
  270. c01001ce: bc 2c c9 12 c0 mov $0xc012c92c,%esp
  271. c01001d3: e8 7c 0f 00 00 call c0101154 <init>
  272. c01001d8: fa cli
  273. c01001d9: f4 hlt
  274. c01001da: eb fd jmp c01001d9 <_start+0x86>
  275.  
  276. c01001dc <kputc>:
  277. c01001dc: 55 push %ebp
  278. c01001dd: 89 e5 mov %esp,%ebp
  279. c01001df: 83 ec 28 sub $0x28,%esp
  280. c01001e2: 8b 55 08 mov 0x8(%ebp),%edx
  281. c01001e5: 8b 45 0c mov 0xc(%ebp),%eax
  282. c01001e8: 88 55 e4 mov %dl,-0x1c(%ebp)
  283. c01001eb: 88 45 e0 mov %al,-0x20(%ebp)
  284. c01001ee: c7 45 ec 00 f0 3f c0 movl $0xc03ff000,-0x14(%ebp)
  285. c01001f5: 80 7d e0 0a cmpb $0xa,-0x20(%ebp)
  286. c01001f9: 75 57 jne c0100252 <kputc+0x76>
  287. c01001fb: a1 00 80 12 c0 mov 0xc0128000,%eax
  288. c0100200: 83 f8 17 cmp $0x17,%eax
  289. c0100203: 7e 3e jle c0100243 <kputc+0x67>
  290. c0100205: 8b 45 ec mov -0x14(%ebp),%eax
  291. c0100208: 05 a0 00 00 00 add $0xa0,%eax
  292. c010020d: 89 45 f0 mov %eax,-0x10(%ebp)
  293. c0100210: 83 ec 04 sub $0x4,%esp
  294. c0100213: 68 60 0f 00 00 push $0xf60
  295. c0100218: ff 75 f0 pushl -0x10(%ebp)
  296. c010021b: ff 75 ec pushl -0x14(%ebp)
  297. c010021e: e8 a9 16 00 00 call c01018cc <kmemmove>
  298. c0100223: 83 c4 10 add $0x10,%esp
  299. c0100226: 8b 45 ec mov -0x14(%ebp),%eax
  300. c0100229: 05 00 0f 00 00 add $0xf00,%eax
  301. c010022e: 83 ec 04 sub $0x4,%esp
  302. c0100231: 68 a0 00 00 00 push $0xa0
  303. c0100236: 6a 00 push $0x0
  304. c0100238: 50 push %eax
  305. c0100239: e8 c9 16 00 00 call c0101907 <kmemset>
  306. c010023e: 83 c4 10 add $0x10,%esp
  307. c0100241: eb 6b jmp c01002ae <kputc+0xd2>
  308. c0100243: a1 00 80 12 c0 mov 0xc0128000,%eax
  309. c0100248: 83 c0 01 add $0x1,%eax
  310. c010024b: a3 00 80 12 c0 mov %eax,0xc0128000
  311. c0100250: eb 5c jmp c01002ae <kputc+0xd2>
  312. c0100252: 80 7d e0 0d cmpb $0xd,-0x20(%ebp)
  313. c0100256: 75 0c jne c0100264 <kputc+0x88>
  314. c0100258: c7 05 04 80 12 c0 00 movl $0x0,0xc0128004
  315. c010025f: 00 00 00
  316. c0100262: eb 4a jmp c01002ae <kputc+0xd2>
  317. c0100264: 8b 15 00 80 12 c0 mov 0xc0128000,%edx
  318. c010026a: 89 d0 mov %edx,%eax
  319. c010026c: c1 e0 02 shl $0x2,%eax
  320. c010026f: 01 d0 add %edx,%eax
  321. c0100271: c1 e0 04 shl $0x4,%eax
  322. c0100274: 89 c2 mov %eax,%edx
  323. c0100276: a1 04 80 12 c0 mov 0xc0128004,%eax
  324. c010027b: 01 d0 add %edx,%eax
  325. c010027d: 01 c0 add %eax,%eax
  326. c010027f: 89 45 f4 mov %eax,-0xc(%ebp)
  327. c0100282: 8b 55 f4 mov -0xc(%ebp),%edx
  328. c0100285: 8b 45 ec mov -0x14(%ebp),%eax
  329. c0100288: 01 c2 add %eax,%edx
  330. c010028a: 0f b6 45 e0 movzbl -0x20(%ebp),%eax
  331. c010028e: 88 02 mov %al,(%edx)
  332. c0100290: 8b 45 f4 mov -0xc(%ebp),%eax
  333. c0100293: 8d 50 01 lea 0x1(%eax),%edx
  334. c0100296: 8b 45 ec mov -0x14(%ebp),%eax
  335. c0100299: 01 c2 add %eax,%edx
  336. c010029b: 0f b6 45 e4 movzbl -0x1c(%ebp),%eax
  337. c010029f: 88 02 mov %al,(%edx)
  338. c01002a1: a1 04 80 12 c0 mov 0xc0128004,%eax
  339. c01002a6: 83 c0 01 add $0x1,%eax
  340. c01002a9: a3 04 80 12 c0 mov %eax,0xc0128004
  341. c01002ae: 90 nop
  342. c01002af: c9 leave
  343. c01002b0: c3 ret
  344.  
  345. c01002b1 <kputs>:
  346. c01002b1: 55 push %ebp
  347. c01002b2: 89 e5 mov %esp,%ebp
  348. c01002b4: 83 ec 28 sub $0x28,%esp
  349. c01002b7: 8b 45 08 mov 0x8(%ebp),%eax
  350. c01002ba: 88 45 e4 mov %al,-0x1c(%ebp)
  351. c01002bd: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
  352. c01002c4: eb 23 jmp c01002e9 <kputs+0x38>
  353. c01002c6: 8b 55 f4 mov -0xc(%ebp),%edx
  354. c01002c9: 8b 45 0c mov 0xc(%ebp),%eax
  355. c01002cc: 01 d0 add %edx,%eax
  356. c01002ce: 0f b6 00 movzbl (%eax),%eax
  357. c01002d1: 0f be d0 movsbl %al,%edx
  358. c01002d4: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
  359. c01002d8: 83 ec 08 sub $0x8,%esp
  360. c01002db: 52 push %edx
  361. c01002dc: 50 push %eax
  362. c01002dd: e8 fa fe ff ff call c01001dc <kputc>
  363. c01002e2: 83 c4 10 add $0x10,%esp
  364. c01002e5: 83 45 f4 01 addl $0x1,-0xc(%ebp)
  365. c01002e9: 8b 55 f4 mov -0xc(%ebp),%edx
  366. c01002ec: 8b 45 0c mov 0xc(%ebp),%eax
  367. c01002ef: 01 d0 add %edx,%eax
  368. c01002f1: 0f b6 00 movzbl (%eax),%eax
  369. c01002f4: 84 c0 test %al,%al
  370. c01002f6: 75 ce jne c01002c6 <kputs+0x15>
  371. c01002f8: 90 nop
  372. c01002f9: c9 leave
  373. c01002fa: c3 ret
  374.  
  375. c01002fb <kputi>:
  376. c01002fb: 55 push %ebp
  377. c01002fc: 89 e5 mov %esp,%ebp
  378. c01002fe: 83 ec 68 sub $0x68,%esp
  379. c0100301: 8b 45 08 mov 0x8(%ebp),%eax
  380. c0100304: 88 45 a4 mov %al,-0x5c(%ebp)
  381. c0100307: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  382. c010030d: 89 45 f4 mov %eax,-0xc(%ebp)
  383. c0100310: 31 c0 xor %eax,%eax
  384. c0100312: 83 7d 10 01 cmpl $0x1,0x10(%ebp)
  385. c0100316: 7e 5f jle c0100377 <kputi+0x7c>
  386. c0100318: 83 7d 10 24 cmpl $0x24,0x10(%ebp)
  387. c010031c: 7f 59 jg c0100377 <kputi+0x7c>
  388. c010031e: 8d 45 b3 lea -0x4d(%ebp),%eax
  389. c0100321: 83 c0 40 add $0x40,%eax
  390. c0100324: 89 45 ac mov %eax,-0x54(%ebp)
  391. c0100327: 8b 45 ac mov -0x54(%ebp),%eax
  392. c010032a: c6 00 00 movb $0x0,(%eax)
  393. c010032d: 83 6d ac 01 subl $0x1,-0x54(%ebp)
  394. c0100331: 8b 4d 10 mov 0x10(%ebp),%ecx
  395. c0100334: 8b 45 0c mov 0xc(%ebp),%eax
  396. c0100337: ba 00 00 00 00 mov $0x0,%edx
  397. c010033c: f7 f1 div %ecx
  398. c010033e: 89 d0 mov %edx,%eax
  399. c0100340: 0f b6 90 00 50 10 c0 movzbl -0x3fefb000(%eax),%edx
  400. c0100347: 8b 45 ac mov -0x54(%ebp),%eax
  401. c010034a: 88 10 mov %dl,(%eax)
  402. c010034c: 8b 4d 10 mov 0x10(%ebp),%ecx
  403. c010034f: 8b 45 0c mov 0xc(%ebp),%eax
  404. c0100352: ba 00 00 00 00 mov $0x0,%edx
  405. c0100357: f7 f1 div %ecx
  406. c0100359: 89 45 0c mov %eax,0xc(%ebp)
  407. c010035c: 83 7d 0c 00 cmpl $0x0,0xc(%ebp)
  408. c0100360: 75 cb jne c010032d <kputi+0x32>
  409. c0100362: 0f be 45 a4 movsbl -0x5c(%ebp),%eax
  410. c0100366: 83 ec 08 sub $0x8,%esp
  411. c0100369: ff 75 ac pushl -0x54(%ebp)
  412. c010036c: 50 push %eax
  413. c010036d: e8 3f ff ff ff call c01002b1 <kputs>
  414. c0100372: 83 c4 10 add $0x10,%esp
  415. c0100375: eb 01 jmp c0100378 <kputi+0x7d>
  416. c0100377: 90 nop
  417. c0100378: 8b 45 f4 mov -0xc(%ebp),%eax
  418. c010037b: 65 33 05 14 00 00 00 xor %gs:0x14,%eax
  419. c0100382: 74 05 je c0100389 <kputi+0x8e>
  420. c0100384: e8 bd 0f 00 00 call c0101346 <__stack_chk_fail>
  421. c0100389: c9 leave
  422. c010038a: c3 ret
  423.  
  424. c010038b <kcls>:
  425. c010038b: 55 push %ebp
  426. c010038c: 89 e5 mov %esp,%ebp
  427. c010038e: 83 ec 18 sub $0x18,%esp
  428. c0100391: c7 45 f4 00 f0 3f c0 movl $0xc03ff000,-0xc(%ebp)
  429. c0100398: 83 ec 04 sub $0x4,%esp
  430. c010039b: 68 00 10 00 00 push $0x1000
  431. c01003a0: 6a 00 push $0x0
  432. c01003a2: ff 75 f4 pushl -0xc(%ebp)
  433. c01003a5: e8 5d 15 00 00 call c0101907 <kmemset>
  434. c01003aa: 83 c4 10 add $0x10,%esp
  435. c01003ad: 90 nop
  436. c01003ae: c9 leave
  437. c01003af: c3 ret
  438.  
  439. c01003b0 <kprintf>:
  440. c01003b0: 55 push %ebp
  441. c01003b1: 89 e5 mov %esp,%ebp
  442. c01003b3: 83 ec 28 sub $0x28,%esp
  443. c01003b6: 8b 45 08 mov 0x8(%ebp),%eax
  444. c01003b9: 88 45 e4 mov %al,-0x1c(%ebp)
  445. c01003bc: 8b 45 0c mov 0xc(%ebp),%eax
  446. c01003bf: 89 45 e0 mov %eax,-0x20(%ebp)
  447. c01003c2: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  448. c01003c8: 89 45 f4 mov %eax,-0xc(%ebp)
  449. c01003cb: 31 c0 xor %eax,%eax
  450. c01003cd: 8d 45 10 lea 0x10(%ebp),%eax
  451. c01003d0: 89 45 ec mov %eax,-0x14(%ebp)
  452. c01003d3: 8b 45 e0 mov -0x20(%ebp),%eax
  453. c01003d6: 89 45 f0 mov %eax,-0x10(%ebp)
  454. c01003d9: e9 dc 00 00 00 jmp c01004ba <kprintf+0x10a>
  455. c01003de: 8b 45 f0 mov -0x10(%ebp),%eax
  456. c01003e1: 0f b6 00 movzbl (%eax),%eax
  457. c01003e4: 3c 25 cmp $0x25,%al
  458. c01003e6: 0f 85 b0 00 00 00 jne c010049c <kprintf+0xec>
  459. c01003ec: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  460. c01003f0: 8b 45 f0 mov -0x10(%ebp),%eax
  461. c01003f3: 0f b6 00 movzbl (%eax),%eax
  462. c01003f6: 0f be c0 movsbl %al,%eax
  463. c01003f9: 83 f8 64 cmp $0x64,%eax
  464. c01003fc: 74 1e je c010041c <kprintf+0x6c>
  465. c01003fe: 83 f8 64 cmp $0x64,%eax
  466. c0100401: 7f 0a jg c010040d <kprintf+0x5d>
  467. c0100403: 83 f8 63 cmp $0x63,%eax
  468. c0100406: 74 72 je c010047a <kprintf+0xca>
  469. c0100408: e9 a9 00 00 00 jmp c01004b6 <kprintf+0x106>
  470. c010040d: 83 f8 73 cmp $0x73,%eax
  471. c0100410: 74 4a je c010045c <kprintf+0xac>
  472. c0100412: 83 f8 78 cmp $0x78,%eax
  473. c0100415: 74 25 je c010043c <kprintf+0x8c>
  474. c0100417: e9 9a 00 00 00 jmp c01004b6 <kprintf+0x106>
  475. c010041c: 8b 45 ec mov -0x14(%ebp),%eax
  476. c010041f: 8d 50 04 lea 0x4(%eax),%edx
  477. c0100422: 89 55 ec mov %edx,-0x14(%ebp)
  478. c0100425: 8b 10 mov (%eax),%edx
  479. c0100427: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
  480. c010042b: 83 ec 04 sub $0x4,%esp
  481. c010042e: 6a 0a push $0xa
  482. c0100430: 52 push %edx
  483. c0100431: 50 push %eax
  484. c0100432: e8 c4 fe ff ff call c01002fb <kputi>
  485. c0100437: 83 c4 10 add $0x10,%esp
  486. c010043a: eb 7a jmp c01004b6 <kprintf+0x106>
  487. c010043c: 8b 45 ec mov -0x14(%ebp),%eax
  488. c010043f: 8d 50 04 lea 0x4(%eax),%edx
  489. c0100442: 89 55 ec mov %edx,-0x14(%ebp)
  490. c0100445: 8b 10 mov (%eax),%edx
  491. c0100447: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
  492. c010044b: 83 ec 04 sub $0x4,%esp
  493. c010044e: 6a 10 push $0x10
  494. c0100450: 52 push %edx
  495. c0100451: 50 push %eax
  496. c0100452: e8 a4 fe ff ff call c01002fb <kputi>
  497. c0100457: 83 c4 10 add $0x10,%esp
  498. c010045a: eb 5a jmp c01004b6 <kprintf+0x106>
  499. c010045c: 8b 45 ec mov -0x14(%ebp),%eax
  500. c010045f: 8d 50 04 lea 0x4(%eax),%edx
  501. c0100462: 89 55 ec mov %edx,-0x14(%ebp)
  502. c0100465: 8b 10 mov (%eax),%edx
  503. c0100467: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
  504. c010046b: 83 ec 08 sub $0x8,%esp
  505. c010046e: 52 push %edx
  506. c010046f: 50 push %eax
  507. c0100470: e8 3c fe ff ff call c01002b1 <kputs>
  508. c0100475: 83 c4 10 add $0x10,%esp
  509. c0100478: eb 3c jmp c01004b6 <kprintf+0x106>
  510. c010047a: 8b 45 ec mov -0x14(%ebp),%eax
  511. c010047d: 8d 50 04 lea 0x4(%eax),%edx
  512. c0100480: 89 55 ec mov %edx,-0x14(%ebp)
  513. c0100483: 8b 00 mov (%eax),%eax
  514. c0100485: 0f be d0 movsbl %al,%edx
  515. c0100488: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
  516. c010048c: 83 ec 08 sub $0x8,%esp
  517. c010048f: 52 push %edx
  518. c0100490: 50 push %eax
  519. c0100491: e8 46 fd ff ff call c01001dc <kputc>
  520. c0100496: 83 c4 10 add $0x10,%esp
  521. c0100499: 90 nop
  522. c010049a: eb 1a jmp c01004b6 <kprintf+0x106>
  523. c010049c: 8b 45 f0 mov -0x10(%ebp),%eax
  524. c010049f: 0f b6 00 movzbl (%eax),%eax
  525. c01004a2: 0f be d0 movsbl %al,%edx
  526. c01004a5: 0f be 45 e4 movsbl -0x1c(%ebp),%eax
  527. c01004a9: 83 ec 08 sub $0x8,%esp
  528. c01004ac: 52 push %edx
  529. c01004ad: 50 push %eax
  530. c01004ae: e8 29 fd ff ff call c01001dc <kputc>
  531. c01004b3: 83 c4 10 add $0x10,%esp
  532. c01004b6: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  533. c01004ba: 8b 45 f0 mov -0x10(%ebp),%eax
  534. c01004bd: 0f b6 00 movzbl (%eax),%eax
  535. c01004c0: 84 c0 test %al,%al
  536. c01004c2: 0f 85 16 ff ff ff jne c01003de <kprintf+0x2e>
  537. c01004c8: 90 nop
  538. c01004c9: 8b 45 f4 mov -0xc(%ebp),%eax
  539. c01004cc: 65 33 05 14 00 00 00 xor %gs:0x14,%eax
  540. c01004d3: 74 05 je c01004da <kprintf+0x12a>
  541. c01004d5: e8 6c 0e 00 00 call c0101346 <__stack_chk_fail>
  542. c01004da: c9 leave
  543. c01004db: c3 ret
  544.  
  545. c01004dc <build_gdt_segment>:
  546. c01004dc: 55 push %ebp
  547. c01004dd: 89 e5 mov %esp,%ebp
  548. c01004df: 83 ec 10 sub $0x10,%esp
  549. c01004e2: 8b 45 0c mov 0xc(%ebp),%eax
  550. c01004e5: ba 00 00 00 00 mov $0x0,%edx
  551. c01004ea: 25 00 00 0f 00 and $0xf0000,%eax
  552. c01004ef: ba 00 00 00 00 mov $0x0,%edx
  553. c01004f4: 89 45 f8 mov %eax,-0x8(%ebp)
  554. c01004f7: 89 55 fc mov %edx,-0x4(%ebp)
  555. c01004fa: 8b 45 10 mov 0x10(%ebp),%eax
  556. c01004fd: c1 e0 08 shl $0x8,%eax
  557. c0100500: ba 00 00 00 00 mov $0x0,%edx
  558. c0100505: 25 00 ff f0 00 and $0xf0ff00,%eax
  559. c010050a: ba 00 00 00 00 mov $0x0,%edx
  560. c010050f: 09 45 f8 or %eax,-0x8(%ebp)
  561. c0100512: 09 55 fc or %edx,-0x4(%ebp)
  562. c0100515: 8b 45 08 mov 0x8(%ebp),%eax
  563. c0100518: c1 e8 10 shr $0x10,%eax
  564. c010051b: ba 00 00 00 00 mov $0x0,%edx
  565. c0100520: 0f b6 c0 movzbl %al,%eax
  566. c0100523: ba 00 00 00 00 mov $0x0,%edx
  567. c0100528: 09 45 f8 or %eax,-0x8(%ebp)
  568. c010052b: 09 55 fc or %edx,-0x4(%ebp)
  569. c010052e: 8b 45 08 mov 0x8(%ebp),%eax
  570. c0100531: ba 00 00 00 00 mov $0x0,%edx
  571. c0100536: 25 00 00 00 ff and $0xff000000,%eax
  572. c010053b: ba 00 00 00 00 mov $0x0,%edx
  573. c0100540: 09 45 f8 or %eax,-0x8(%ebp)
  574. c0100543: 09 55 fc or %edx,-0x4(%ebp)
  575. c0100546: 8b 45 f8 mov -0x8(%ebp),%eax
  576. c0100549: 8b 55 fc mov -0x4(%ebp),%edx
  577. c010054c: 89 c2 mov %eax,%edx
  578. c010054e: b8 00 00 00 00 mov $0x0,%eax
  579. c0100553: 89 45 f8 mov %eax,-0x8(%ebp)
  580. c0100556: 89 55 fc mov %edx,-0x4(%ebp)
  581. c0100559: 8b 45 08 mov 0x8(%ebp),%eax
  582. c010055c: c1 e0 10 shl $0x10,%eax
  583. c010055f: ba 00 00 00 00 mov $0x0,%edx
  584. c0100564: 09 45 f8 or %eax,-0x8(%ebp)
  585. c0100567: 09 55 fc or %edx,-0x4(%ebp)
  586. c010056a: 8b 45 0c mov 0xc(%ebp),%eax
  587. c010056d: ba 00 00 00 00 mov $0x0,%edx
  588. c0100572: 0f b7 c0 movzwl %ax,%eax
  589. c0100575: ba 00 00 00 00 mov $0x0,%edx
  590. c010057a: 09 45 f8 or %eax,-0x8(%ebp)
  591. c010057d: 09 55 fc or %edx,-0x4(%ebp)
  592. c0100580: 8b 45 f8 mov -0x8(%ebp),%eax
  593. c0100583: 8b 55 fc mov -0x4(%ebp),%edx
  594. c0100586: c9 leave
  595. c0100587: c3 ret
  596.  
  597. c0100588 <setup_gdt>:
  598. c0100588: 55 push %ebp
  599. c0100589: 89 e5 mov %esp,%ebp
  600. c010058b: c7 05 20 80 12 c0 00 movl $0x0,0xc0128020
  601. c0100592: 00 00 00
  602. c0100595: c7 05 24 80 12 c0 00 movl $0x0,0xc0128024
  603. c010059c: 00 00 00
  604. c010059f: 83 ec 04 sub $0x4,%esp
  605. c01005a2: 68 9a c0 00 00 push $0xc09a
  606. c01005a7: 68 ff ff 0f 00 push $0xfffff
  607. c01005ac: 6a 00 push $0x0
  608. c01005ae: e8 29 ff ff ff call c01004dc <build_gdt_segment>
  609. c01005b3: 83 c4 10 add $0x10,%esp
  610. c01005b6: a3 28 80 12 c0 mov %eax,0xc0128028
  611. c01005bb: 89 15 2c 80 12 c0 mov %edx,0xc012802c
  612. c01005c1: 83 ec 04 sub $0x4,%esp
  613. c01005c4: 68 92 c0 00 00 push $0xc092
  614. c01005c9: 68 ff ff 0f 00 push $0xfffff
  615. c01005ce: 6a 00 push $0x0
  616. c01005d0: e8 07 ff ff ff call c01004dc <build_gdt_segment>
  617. c01005d5: 83 c4 10 add $0x10,%esp
  618. c01005d8: a3 30 80 12 c0 mov %eax,0xc0128030
  619. c01005dd: 89 15 34 80 12 c0 mov %edx,0xc0128034
  620. c01005e3: 83 ec 04 sub $0x4,%esp
  621. c01005e6: 68 fa c0 00 00 push $0xc0fa
  622. c01005eb: 68 ff ff 0f 00 push $0xfffff
  623. c01005f0: 6a 00 push $0x0
  624. c01005f2: e8 e5 fe ff ff call c01004dc <build_gdt_segment>
  625. c01005f7: 83 c4 10 add $0x10,%esp
  626. c01005fa: a3 38 80 12 c0 mov %eax,0xc0128038
  627. c01005ff: 89 15 3c 80 12 c0 mov %edx,0xc012803c
  628. c0100605: 83 ec 04 sub $0x4,%esp
  629. c0100608: 68 f2 c0 00 00 push $0xc0f2
  630. c010060d: 68 ff ff 0f 00 push $0xfffff
  631. c0100612: 6a 00 push $0x0
  632. c0100614: e8 c3 fe ff ff call c01004dc <build_gdt_segment>
  633. c0100619: 83 c4 10 add $0x10,%esp
  634. c010061c: a3 40 80 12 c0 mov %eax,0xc0128040
  635. c0100621: 89 15 44 80 12 c0 mov %edx,0xc0128044
  636. c0100627: b8 40 50 10 c0 mov $0xc0105040,%eax
  637. c010062c: 83 ec 04 sub $0x4,%esp
  638. c010062f: 68 e9 00 00 00 push $0xe9
  639. c0100634: 68 80 00 00 00 push $0x80
  640. c0100639: 50 push %eax
  641. c010063a: e8 9d fe ff ff call c01004dc <build_gdt_segment>
  642. c010063f: 83 c4 10 add $0x10,%esp
  643. c0100642: a3 48 80 12 c0 mov %eax,0xc0128048
  644. c0100647: 89 15 4c 80 12 c0 mov %edx,0xc012804c
  645. c010064d: 90 nop
  646. c010064e: c9 leave
  647. c010064f: c3 ret
  648.  
  649. c0100650 <load_gdt>:
  650. c0100650: 55 push %ebp
  651. c0100651: 89 e5 mov %esp,%ebp
  652. c0100653: 83 ec 18 sub $0x18,%esp
  653. c0100656: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  654. c010065c: 89 45 f4 mov %eax,-0xc(%ebp)
  655. c010065f: 31 c0 xor %eax,%eax
  656. c0100661: 66 c7 45 ee 2f 00 movw $0x2f,-0x12(%ebp)
  657. c0100667: c7 45 f0 20 80 12 c0 movl $0xc0128020,-0x10(%ebp)
  658. c010066e: 0f 01 55 ee lgdtl -0x12(%ebp)
  659. c0100672: 90 nop
  660. c0100673: 8b 45 f4 mov -0xc(%ebp),%eax
  661. c0100676: 65 33 05 14 00 00 00 xor %gs:0x14,%eax
  662. c010067d: 74 05 je c0100684 <load_gdt+0x34>
  663. c010067f: e8 c2 0c 00 00 call c0101346 <__stack_chk_fail>
  664. c0100684: c9 leave
  665. c0100685: c3 ret
  666.  
  667. c0100686 <reload_segment_registers>:
  668. c0100686: 55 push %ebp
  669. c0100687: 89 e5 mov %esp,%ebp
  670. c0100689: 66 b8 10 00 mov $0x10,%ax
  671. c010068d: 8e d8 mov %eax,%ds
  672. c010068f: 8e c0 mov %eax,%es
  673. c0100691: 8e e0 mov %eax,%fs
  674. c0100693: 8e e8 mov %eax,%gs
  675. c0100695: 8e d0 mov %eax,%ss
  676. c0100697: ea 9e 06 10 c0 08 00 ljmp $0x8,$0xc010069e
  677.  
  678. c010069e <.1>:
  679. c010069e: b8 28 00 00 00 mov $0x28,%eax
  680. c01006a3: 0f 00 d8 ltr %ax
  681. c01006a6: 90 nop
  682. c01006a7: 5d pop %ebp
  683. c01006a8: c3 ret
  684.  
  685. c01006a9 <build_idt_entry>:
  686. c01006a9: 55 push %ebp
  687. c01006aa: 89 e5 mov %esp,%ebp
  688. c01006ac: 83 ec 10 sub $0x10,%esp
  689. c01006af: 8b 45 08 mov 0x8(%ebp),%eax
  690. c01006b2: 89 45 f4 mov %eax,-0xc(%ebp)
  691. c01006b5: 8b 45 f4 mov -0xc(%ebp),%eax
  692. c01006b8: ba 00 00 00 00 mov $0x0,%edx
  693. c01006bd: 25 ff ff 00 00 and $0xffff,%eax
  694. c01006c2: ba 00 00 00 00 mov $0x0,%edx
  695. c01006c7: 89 45 f8 mov %eax,-0x8(%ebp)
  696. c01006ca: 89 55 fc mov %edx,-0x4(%ebp)
  697. c01006cd: 8b 45 0c mov 0xc(%ebp),%eax
  698. c01006d0: ba 00 00 00 00 mov $0x0,%edx
  699. c01006d5: 0f a4 c2 10 shld $0x10,%eax,%edx
  700. c01006d9: c1 e0 10 shl $0x10,%eax
  701. c01006dc: ba 00 00 00 00 mov $0x0,%edx
  702. c01006e1: 09 45 f8 or %eax,-0x8(%ebp)
  703. c01006e4: 09 55 fc or %edx,-0x4(%ebp)
  704. c01006e7: 8b 45 10 mov 0x10(%ebp),%eax
  705. c01006ea: ba 00 00 00 00 mov $0x0,%edx
  706. c01006ef: 89 c2 mov %eax,%edx
  707. c01006f1: b8 00 00 00 00 mov $0x0,%eax
  708. c01006f6: c1 e2 08 shl $0x8,%edx
  709. c01006f9: b8 00 00 00 00 mov $0x0,%eax
  710. c01006fe: 81 e2 00 ff 00 00 and $0xff00,%edx
  711. c0100704: 09 45 f8 or %eax,-0x8(%ebp)
  712. c0100707: 09 55 fc or %edx,-0x4(%ebp)
  713. c010070a: 8b 45 f4 mov -0xc(%ebp),%eax
  714. c010070d: c1 e8 10 shr $0x10,%eax
  715. c0100710: ba 00 00 00 00 mov $0x0,%edx
  716. c0100715: 89 c2 mov %eax,%edx
  717. c0100717: b8 00 00 00 00 mov $0x0,%eax
  718. c010071c: c1 e2 10 shl $0x10,%edx
  719. c010071f: 09 45 f8 or %eax,-0x8(%ebp)
  720. c0100722: 09 55 fc or %edx,-0x4(%ebp)
  721. c0100725: 8b 45 f8 mov -0x8(%ebp),%eax
  722. c0100728: 8b 55 fc mov -0x4(%ebp),%edx
  723. c010072b: c9 leave
  724. c010072c: c3 ret
  725.  
  726. c010072d <setup_idt>:
  727. c010072d: 55 push %ebp
  728. c010072e: 89 e5 mov %esp,%ebp
  729. c0100730: 83 ec 08 sub $0x8,%esp
  730. c0100733: 83 ec 0c sub $0xc,%esp
  731. c0100736: 6a 20 push $0x20
  732. c0100738: e8 ef 04 00 00 call c0100c2c <pic_remap_irqs>
  733. c010073d: 83 c4 10 add $0x10,%esp
  734. c0100740: 83 ec 0c sub $0xc,%esp
  735. c0100743: 6a 00 push $0x0
  736. c0100745: e8 7c 05 00 00 call c0100cc6 <pic_apply_irq_mask>
  737. c010074a: 83 c4 10 add $0x10,%esp
  738. c010074d: 83 ec 04 sub $0x4,%esp
  739. c0100750: 68 8e 00 00 00 push $0x8e
  740. c0100755: 6a 08 push $0x8
  741. c0100757: 68 0c 00 10 c0 push $0xc010000c
  742. c010075c: e8 48 ff ff ff call c01006a9 <build_idt_entry>
  743. c0100761: 83 c4 10 add $0x10,%esp
  744. c0100764: a3 60 80 12 c0 mov %eax,0xc0128060
  745. c0100769: 89 15 64 80 12 c0 mov %edx,0xc0128064
  746. c010076f: 83 ec 04 sub $0x4,%esp
  747. c0100772: 68 8e 00 00 00 push $0x8e
  748. c0100777: 6a 08 push $0x8
  749. c0100779: 68 15 00 10 c0 push $0xc0100015
  750. c010077e: e8 26 ff ff ff call c01006a9 <build_idt_entry>
  751. c0100783: 83 c4 10 add $0x10,%esp
  752. c0100786: a3 68 80 12 c0 mov %eax,0xc0128068
  753. c010078b: 89 15 6c 80 12 c0 mov %edx,0xc012806c
  754. c0100791: 83 ec 04 sub $0x4,%esp
  755. c0100794: 68 8e 00 00 00 push $0x8e
  756. c0100799: 6a 08 push $0x8
  757. c010079b: 68 1e 00 10 c0 push $0xc010001e
  758. c01007a0: e8 04 ff ff ff call c01006a9 <build_idt_entry>
  759. c01007a5: 83 c4 10 add $0x10,%esp
  760. c01007a8: a3 70 80 12 c0 mov %eax,0xc0128070
  761. c01007ad: 89 15 74 80 12 c0 mov %edx,0xc0128074
  762. c01007b3: 83 ec 04 sub $0x4,%esp
  763. c01007b6: 68 8e 00 00 00 push $0x8e
  764. c01007bb: 6a 08 push $0x8
  765. c01007bd: 68 27 00 10 c0 push $0xc0100027
  766. c01007c2: e8 e2 fe ff ff call c01006a9 <build_idt_entry>
  767. c01007c7: 83 c4 10 add $0x10,%esp
  768. c01007ca: a3 78 80 12 c0 mov %eax,0xc0128078
  769. c01007cf: 89 15 7c 80 12 c0 mov %edx,0xc012807c
  770. c01007d5: 83 ec 04 sub $0x4,%esp
  771. c01007d8: 68 8e 00 00 00 push $0x8e
  772. c01007dd: 6a 08 push $0x8
  773. c01007df: 68 30 00 10 c0 push $0xc0100030
  774. c01007e4: e8 c0 fe ff ff call c01006a9 <build_idt_entry>
  775. c01007e9: 83 c4 10 add $0x10,%esp
  776. c01007ec: a3 80 80 12 c0 mov %eax,0xc0128080
  777. c01007f1: 89 15 84 80 12 c0 mov %edx,0xc0128084
  778. c01007f7: 83 ec 04 sub $0x4,%esp
  779. c01007fa: 68 8e 00 00 00 push $0x8e
  780. c01007ff: 6a 08 push $0x8
  781. c0100801: 68 39 00 10 c0 push $0xc0100039
  782. c0100806: e8 9e fe ff ff call c01006a9 <build_idt_entry>
  783. c010080b: 83 c4 10 add $0x10,%esp
  784. c010080e: a3 88 80 12 c0 mov %eax,0xc0128088
  785. c0100813: 89 15 8c 80 12 c0 mov %edx,0xc012808c
  786. c0100819: 83 ec 04 sub $0x4,%esp
  787. c010081c: 68 8e 00 00 00 push $0x8e
  788. c0100821: 6a 08 push $0x8
  789. c0100823: 68 42 00 10 c0 push $0xc0100042
  790. c0100828: e8 7c fe ff ff call c01006a9 <build_idt_entry>
  791. c010082d: 83 c4 10 add $0x10,%esp
  792. c0100830: a3 90 80 12 c0 mov %eax,0xc0128090
  793. c0100835: 89 15 94 80 12 c0 mov %edx,0xc0128094
  794. c010083b: 83 ec 04 sub $0x4,%esp
  795. c010083e: 68 8e 00 00 00 push $0x8e
  796. c0100843: 6a 08 push $0x8
  797. c0100845: 68 4b 00 10 c0 push $0xc010004b
  798. c010084a: e8 5a fe ff ff call c01006a9 <build_idt_entry>
  799. c010084f: 83 c4 10 add $0x10,%esp
  800. c0100852: a3 98 80 12 c0 mov %eax,0xc0128098
  801. c0100857: 89 15 9c 80 12 c0 mov %edx,0xc012809c
  802. c010085d: 83 ec 04 sub $0x4,%esp
  803. c0100860: 68 8e 00 00 00 push $0x8e
  804. c0100865: 6a 08 push $0x8
  805. c0100867: 68 54 00 10 c0 push $0xc0100054
  806. c010086c: e8 38 fe ff ff call c01006a9 <build_idt_entry>
  807. c0100871: 83 c4 10 add $0x10,%esp
  808. c0100874: a3 a0 80 12 c0 mov %eax,0xc01280a0
  809. c0100879: 89 15 a4 80 12 c0 mov %edx,0xc01280a4
  810. c010087f: 83 ec 04 sub $0x4,%esp
  811. c0100882: 68 8e 00 00 00 push $0x8e
  812. c0100887: 6a 08 push $0x8
  813. c0100889: 68 5b 00 10 c0 push $0xc010005b
  814. c010088e: e8 16 fe ff ff call c01006a9 <build_idt_entry>
  815. c0100893: 83 c4 10 add $0x10,%esp
  816. c0100896: a3 a8 80 12 c0 mov %eax,0xc01280a8
  817. c010089b: 89 15 ac 80 12 c0 mov %edx,0xc01280ac
  818. c01008a1: 83 ec 04 sub $0x4,%esp
  819. c01008a4: 68 8e 00 00 00 push $0x8e
  820. c01008a9: 6a 08 push $0x8
  821. c01008ab: 68 64 00 10 c0 push $0xc0100064
  822. c01008b0: e8 f4 fd ff ff call c01006a9 <build_idt_entry>
  823. c01008b5: 83 c4 10 add $0x10,%esp
  824. c01008b8: a3 b0 80 12 c0 mov %eax,0xc01280b0
  825. c01008bd: 89 15 b4 80 12 c0 mov %edx,0xc01280b4
  826. c01008c3: 83 ec 04 sub $0x4,%esp
  827. c01008c6: 68 8e 00 00 00 push $0x8e
  828. c01008cb: 6a 08 push $0x8
  829. c01008cd: 68 6b 00 10 c0 push $0xc010006b
  830. c01008d2: e8 d2 fd ff ff call c01006a9 <build_idt_entry>
  831. c01008d7: 83 c4 10 add $0x10,%esp
  832. c01008da: a3 b8 80 12 c0 mov %eax,0xc01280b8
  833. c01008df: 89 15 bc 80 12 c0 mov %edx,0xc01280bc
  834. c01008e5: 83 ec 04 sub $0x4,%esp
  835. c01008e8: 68 8e 00 00 00 push $0x8e
  836. c01008ed: 6a 08 push $0x8
  837. c01008ef: 68 72 00 10 c0 push $0xc0100072
  838. c01008f4: e8 b0 fd ff ff call c01006a9 <build_idt_entry>
  839. c01008f9: 83 c4 10 add $0x10,%esp
  840. c01008fc: a3 c0 80 12 c0 mov %eax,0xc01280c0
  841. c0100901: 89 15 c4 80 12 c0 mov %edx,0xc01280c4
  842. c0100907: 83 ec 04 sub $0x4,%esp
  843. c010090a: 68 8e 00 00 00 push $0x8e
  844. c010090f: 6a 08 push $0x8
  845. c0100911: 68 79 00 10 c0 push $0xc0100079
  846. c0100916: e8 8e fd ff ff call c01006a9 <build_idt_entry>
  847. c010091b: 83 c4 10 add $0x10,%esp
  848. c010091e: a3 c8 80 12 c0 mov %eax,0xc01280c8
  849. c0100923: 89 15 cc 80 12 c0 mov %edx,0xc01280cc
  850. c0100929: 83 ec 04 sub $0x4,%esp
  851. c010092c: 68 8e 00 00 00 push $0x8e
  852. c0100931: 6a 08 push $0x8
  853. c0100933: 68 80 00 10 c0 push $0xc0100080
  854. c0100938: e8 6c fd ff ff call c01006a9 <build_idt_entry>
  855. c010093d: 83 c4 10 add $0x10,%esp
  856. c0100940: a3 d0 80 12 c0 mov %eax,0xc01280d0
  857. c0100945: 89 15 d4 80 12 c0 mov %edx,0xc01280d4
  858. c010094b: 83 ec 04 sub $0x4,%esp
  859. c010094e: 68 8e 00 00 00 push $0x8e
  860. c0100953: 6a 08 push $0x8
  861. c0100955: 68 87 00 10 c0 push $0xc0100087
  862. c010095a: e8 4a fd ff ff call c01006a9 <build_idt_entry>
  863. c010095f: 83 c4 10 add $0x10,%esp
  864. c0100962: a3 d8 80 12 c0 mov %eax,0xc01280d8
  865. c0100967: 89 15 dc 80 12 c0 mov %edx,0xc01280dc
  866. c010096d: 83 ec 04 sub $0x4,%esp
  867. c0100970: 68 8e 00 00 00 push $0x8e
  868. c0100975: 6a 08 push $0x8
  869. c0100977: 68 8d 00 10 c0 push $0xc010008d
  870. c010097c: e8 28 fd ff ff call c01006a9 <build_idt_entry>
  871. c0100981: 83 c4 10 add $0x10,%esp
  872. c0100984: a3 e0 80 12 c0 mov %eax,0xc01280e0
  873. c0100989: 89 15 e4 80 12 c0 mov %edx,0xc01280e4
  874. c010098f: 83 ec 04 sub $0x4,%esp
  875. c0100992: 68 8e 00 00 00 push $0x8e
  876. c0100997: 6a 08 push $0x8
  877. c0100999: 68 93 00 10 c0 push $0xc0100093
  878. c010099e: e8 06 fd ff ff call c01006a9 <build_idt_entry>
  879. c01009a3: 83 c4 10 add $0x10,%esp
  880. c01009a6: a3 e8 80 12 c0 mov %eax,0xc01280e8
  881. c01009ab: 89 15 ec 80 12 c0 mov %edx,0xc01280ec
  882. c01009b1: 83 ec 04 sub $0x4,%esp
  883. c01009b4: 68 8e 00 00 00 push $0x8e
  884. c01009b9: 6a 08 push $0x8
  885. c01009bb: 68 97 00 10 c0 push $0xc0100097
  886. c01009c0: e8 e4 fc ff ff call c01006a9 <build_idt_entry>
  887. c01009c5: 83 c4 10 add $0x10,%esp
  888. c01009c8: a3 f0 80 12 c0 mov %eax,0xc01280f0
  889. c01009cd: 89 15 f4 80 12 c0 mov %edx,0xc01280f4
  890. c01009d3: 83 ec 04 sub $0x4,%esp
  891. c01009d6: 68 8e 00 00 00 push $0x8e
  892. c01009db: 6a 08 push $0x8
  893. c01009dd: 68 a3 00 10 c0 push $0xc01000a3
  894. c01009e2: e8 c2 fc ff ff call c01006a9 <build_idt_entry>
  895. c01009e7: 83 c4 10 add $0x10,%esp
  896. c01009ea: a3 60 81 12 c0 mov %eax,0xc0128160
  897. c01009ef: 89 15 64 81 12 c0 mov %edx,0xc0128164
  898. c01009f5: 83 ec 04 sub $0x4,%esp
  899. c01009f8: 68 8e 00 00 00 push $0x8e
  900. c01009fd: 6a 08 push $0x8
  901. c01009ff: 68 a9 00 10 c0 push $0xc01000a9
  902. c0100a04: e8 a0 fc ff ff call c01006a9 <build_idt_entry>
  903. c0100a09: 83 c4 10 add $0x10,%esp
  904. c0100a0c: a3 68 81 12 c0 mov %eax,0xc0128168
  905. c0100a11: 89 15 6c 81 12 c0 mov %edx,0xc012816c
  906. c0100a17: 83 ec 04 sub $0x4,%esp
  907. c0100a1a: 68 8e 00 00 00 push $0x8e
  908. c0100a1f: 6a 08 push $0x8
  909. c0100a21: 68 af 00 10 c0 push $0xc01000af
  910. c0100a26: e8 7e fc ff ff call c01006a9 <build_idt_entry>
  911. c0100a2b: 83 c4 10 add $0x10,%esp
  912. c0100a2e: a3 70 81 12 c0 mov %eax,0xc0128170
  913. c0100a33: 89 15 74 81 12 c0 mov %edx,0xc0128174
  914. c0100a39: 83 ec 04 sub $0x4,%esp
  915. c0100a3c: 68 8e 00 00 00 push $0x8e
  916. c0100a41: 6a 08 push $0x8
  917. c0100a43: 68 b5 00 10 c0 push $0xc01000b5
  918. c0100a48: e8 5c fc ff ff call c01006a9 <build_idt_entry>
  919. c0100a4d: 83 c4 10 add $0x10,%esp
  920. c0100a50: a3 78 81 12 c0 mov %eax,0xc0128178
  921. c0100a55: 89 15 7c 81 12 c0 mov %edx,0xc012817c
  922. c0100a5b: 83 ec 04 sub $0x4,%esp
  923. c0100a5e: 68 8e 00 00 00 push $0x8e
  924. c0100a63: 6a 08 push $0x8
  925. c0100a65: 68 bb 00 10 c0 push $0xc01000bb
  926. c0100a6a: e8 3a fc ff ff call c01006a9 <build_idt_entry>
  927. c0100a6f: 83 c4 10 add $0x10,%esp
  928. c0100a72: a3 80 81 12 c0 mov %eax,0xc0128180
  929. c0100a77: 89 15 84 81 12 c0 mov %edx,0xc0128184
  930. c0100a7d: 83 ec 04 sub $0x4,%esp
  931. c0100a80: 68 8e 00 00 00 push $0x8e
  932. c0100a85: 6a 08 push $0x8
  933. c0100a87: 68 c1 00 10 c0 push $0xc01000c1
  934. c0100a8c: e8 18 fc ff ff call c01006a9 <build_idt_entry>
  935. c0100a91: 83 c4 10 add $0x10,%esp
  936. c0100a94: a3 88 81 12 c0 mov %eax,0xc0128188
  937. c0100a99: 89 15 8c 81 12 c0 mov %edx,0xc012818c
  938. c0100a9f: 83 ec 04 sub $0x4,%esp
  939. c0100aa2: 68 8e 00 00 00 push $0x8e
  940. c0100aa7: 6a 08 push $0x8
  941. c0100aa9: 68 c7 00 10 c0 push $0xc01000c7
  942. c0100aae: e8 f6 fb ff ff call c01006a9 <build_idt_entry>
  943. c0100ab3: 83 c4 10 add $0x10,%esp
  944. c0100ab6: a3 90 81 12 c0 mov %eax,0xc0128190
  945. c0100abb: 89 15 94 81 12 c0 mov %edx,0xc0128194
  946. c0100ac1: 83 ec 04 sub $0x4,%esp
  947. c0100ac4: 68 8e 00 00 00 push $0x8e
  948. c0100ac9: 6a 08 push $0x8
  949. c0100acb: 68 cd 00 10 c0 push $0xc01000cd
  950. c0100ad0: e8 d4 fb ff ff call c01006a9 <build_idt_entry>
  951. c0100ad5: 83 c4 10 add $0x10,%esp
  952. c0100ad8: a3 98 81 12 c0 mov %eax,0xc0128198
  953. c0100add: 89 15 9c 81 12 c0 mov %edx,0xc012819c
  954. c0100ae3: 83 ec 04 sub $0x4,%esp
  955. c0100ae6: 68 8e 00 00 00 push $0x8e
  956. c0100aeb: 6a 08 push $0x8
  957. c0100aed: 68 d3 00 10 c0 push $0xc01000d3
  958. c0100af2: e8 b2 fb ff ff call c01006a9 <build_idt_entry>
  959. c0100af7: 83 c4 10 add $0x10,%esp
  960. c0100afa: a3 50 81 12 c0 mov %eax,0xc0128150
  961. c0100aff: 89 15 54 81 12 c0 mov %edx,0xc0128154
  962. c0100b05: 83 ec 04 sub $0x4,%esp
  963. c0100b08: 68 8e 00 00 00 push $0x8e
  964. c0100b0d: 6a 08 push $0x8
  965. c0100b0f: 68 d9 00 10 c0 push $0xc01000d9
  966. c0100b14: e8 90 fb ff ff call c01006a9 <build_idt_entry>
  967. c0100b19: 83 c4 10 add $0x10,%esp
  968. c0100b1c: a3 a8 81 12 c0 mov %eax,0xc01281a8
  969. c0100b21: 89 15 ac 81 12 c0 mov %edx,0xc01281ac
  970. c0100b27: 83 ec 04 sub $0x4,%esp
  971. c0100b2a: 68 8e 00 00 00 push $0x8e
  972. c0100b2f: 6a 08 push $0x8
  973. c0100b31: 68 df 00 10 c0 push $0xc01000df
  974. c0100b36: e8 6e fb ff ff call c01006a9 <build_idt_entry>
  975. c0100b3b: 83 c4 10 add $0x10,%esp
  976. c0100b3e: a3 b0 81 12 c0 mov %eax,0xc01281b0
  977. c0100b43: 89 15 b4 81 12 c0 mov %edx,0xc01281b4
  978. c0100b49: 83 ec 04 sub $0x4,%esp
  979. c0100b4c: 68 8e 00 00 00 push $0x8e
  980. c0100b51: 6a 08 push $0x8
  981. c0100b53: 68 e5 00 10 c0 push $0xc01000e5
  982. c0100b58: e8 4c fb ff ff call c01006a9 <build_idt_entry>
  983. c0100b5d: 83 c4 10 add $0x10,%esp
  984. c0100b60: a3 b8 81 12 c0 mov %eax,0xc01281b8
  985. c0100b65: 89 15 bc 81 12 c0 mov %edx,0xc01281bc
  986. c0100b6b: 83 ec 04 sub $0x4,%esp
  987. c0100b6e: 68 8e 00 00 00 push $0x8e
  988. c0100b73: 6a 08 push $0x8
  989. c0100b75: 68 eb 00 10 c0 push $0xc01000eb
  990. c0100b7a: e8 2a fb ff ff call c01006a9 <build_idt_entry>
  991. c0100b7f: 83 c4 10 add $0x10,%esp
  992. c0100b82: a3 c0 81 12 c0 mov %eax,0xc01281c0
  993. c0100b87: 89 15 c4 81 12 c0 mov %edx,0xc01281c4
  994. c0100b8d: 83 ec 04 sub $0x4,%esp
  995. c0100b90: 68 8e 00 00 00 push $0x8e
  996. c0100b95: 6a 08 push $0x8
  997. c0100b97: 68 f1 00 10 c0 push $0xc01000f1
  998. c0100b9c: e8 08 fb ff ff call c01006a9 <build_idt_entry>
  999. c0100ba1: 83 c4 10 add $0x10,%esp
  1000. c0100ba4: a3 c8 81 12 c0 mov %eax,0xc01281c8
  1001. c0100ba9: 89 15 cc 81 12 c0 mov %edx,0xc01281cc
  1002. c0100baf: 83 ec 04 sub $0x4,%esp
  1003. c0100bb2: 68 8e 00 00 00 push $0x8e
  1004. c0100bb7: 6a 08 push $0x8
  1005. c0100bb9: 68 f7 00 10 c0 push $0xc01000f7
  1006. c0100bbe: e8 e6 fa ff ff call c01006a9 <build_idt_entry>
  1007. c0100bc3: 83 c4 10 add $0x10,%esp
  1008. c0100bc6: a3 d0 81 12 c0 mov %eax,0xc01281d0
  1009. c0100bcb: 89 15 d4 81 12 c0 mov %edx,0xc01281d4
  1010. c0100bd1: 83 ec 04 sub $0x4,%esp
  1011. c0100bd4: 68 8e 00 00 00 push $0x8e
  1012. c0100bd9: 6a 08 push $0x8
  1013. c0100bdb: 68 fd 00 10 c0 push $0xc01000fd
  1014. c0100be0: e8 c4 fa ff ff call c01006a9 <build_idt_entry>
  1015. c0100be5: 83 c4 10 add $0x10,%esp
  1016. c0100be8: a3 d8 81 12 c0 mov %eax,0xc01281d8
  1017. c0100bed: 89 15 dc 81 12 c0 mov %edx,0xc01281dc
  1018. c0100bf3: eb fe jmp c0100bf3 <setup_idt+0x4c6>
  1019.  
  1020. c0100bf5 <load_idt>:
  1021. c0100bf5: 55 push %ebp
  1022. c0100bf6: 89 e5 mov %esp,%ebp
  1023. c0100bf8: 83 ec 18 sub $0x18,%esp
  1024. c0100bfb: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  1025. c0100c01: 89 45 f4 mov %eax,-0xc(%ebp)
  1026. c0100c04: 31 c0 xor %eax,%eax
  1027. c0100c06: 66 c7 45 ee ff 07 movw $0x7ff,-0x12(%ebp)
  1028. c0100c0c: c7 45 f0 60 80 12 c0 movl $0xc0128060,-0x10(%ebp)
  1029. c0100c13: 0f 01 5d ee lidtl -0x12(%ebp)
  1030. c0100c17: fb sti
  1031. c0100c18: 90 nop
  1032. c0100c19: 8b 45 f4 mov -0xc(%ebp),%eax
  1033. c0100c1c: 65 33 05 14 00 00 00 xor %gs:0x14,%eax
  1034. c0100c23: 74 05 je c0100c2a <load_idt+0x35>
  1035. c0100c25: e8 1c 07 00 00 call c0101346 <__stack_chk_fail>
  1036. c0100c2a: c9 leave
  1037. c0100c2b: c3 ret
  1038.  
  1039. c0100c2c <pic_remap_irqs>:
  1040. c0100c2c: 55 push %ebp
  1041. c0100c2d: 89 e5 mov %esp,%ebp
  1042. c0100c2f: 83 ec 08 sub $0x8,%esp
  1043. c0100c32: 83 ec 08 sub $0x8,%esp
  1044. c0100c35: 6a 11 push $0x11
  1045. c0100c37: 6a 20 push $0x20
  1046. c0100c39: e8 fa 0c 00 00 call c0101938 <outb>
  1047. c0100c3e: 83 c4 10 add $0x10,%esp
  1048. c0100c41: 83 ec 08 sub $0x8,%esp
  1049. c0100c44: 6a 11 push $0x11
  1050. c0100c46: 68 a0 00 00 00 push $0xa0
  1051. c0100c4b: e8 e8 0c 00 00 call c0101938 <outb>
  1052. c0100c50: 83 c4 10 add $0x10,%esp
  1053. c0100c53: 8b 45 08 mov 0x8(%ebp),%eax
  1054. c0100c56: 0f b6 c0 movzbl %al,%eax
  1055. c0100c59: 83 ec 08 sub $0x8,%esp
  1056. c0100c5c: 50 push %eax
  1057. c0100c5d: 6a 21 push $0x21
  1058. c0100c5f: e8 d4 0c 00 00 call c0101938 <outb>
  1059. c0100c64: 83 c4 10 add $0x10,%esp
  1060. c0100c67: 8b 45 08 mov 0x8(%ebp),%eax
  1061. c0100c6a: 83 c0 08 add $0x8,%eax
  1062. c0100c6d: 0f b6 c0 movzbl %al,%eax
  1063. c0100c70: 83 ec 08 sub $0x8,%esp
  1064. c0100c73: 50 push %eax
  1065. c0100c74: 68 a1 00 00 00 push $0xa1
  1066. c0100c79: e8 ba 0c 00 00 call c0101938 <outb>
  1067. c0100c7e: 83 c4 10 add $0x10,%esp
  1068. c0100c81: 83 ec 08 sub $0x8,%esp
  1069. c0100c84: 6a 04 push $0x4
  1070. c0100c86: 6a 21 push $0x21
  1071. c0100c88: e8 ab 0c 00 00 call c0101938 <outb>
  1072. c0100c8d: 83 c4 10 add $0x10,%esp
  1073. c0100c90: 83 ec 08 sub $0x8,%esp
  1074. c0100c93: 6a 02 push $0x2
  1075. c0100c95: 68 a1 00 00 00 push $0xa1
  1076. c0100c9a: e8 99 0c 00 00 call c0101938 <outb>
  1077. c0100c9f: 83 c4 10 add $0x10,%esp
  1078. c0100ca2: 83 ec 08 sub $0x8,%esp
  1079. c0100ca5: 6a 01 push $0x1
  1080. c0100ca7: 6a 21 push $0x21
  1081. c0100ca9: e8 8a 0c 00 00 call c0101938 <outb>
  1082. c0100cae: 83 c4 10 add $0x10,%esp
  1083. c0100cb1: 83 ec 08 sub $0x8,%esp
  1084. c0100cb4: 6a 01 push $0x1
  1085. c0100cb6: 68 a1 00 00 00 push $0xa1
  1086. c0100cbb: e8 78 0c 00 00 call c0101938 <outb>
  1087. c0100cc0: 83 c4 10 add $0x10,%esp
  1088. c0100cc3: 90 nop
  1089. c0100cc4: c9 leave
  1090. c0100cc5: c3 ret
  1091.  
  1092. c0100cc6 <pic_apply_irq_mask>:
  1093. c0100cc6: 55 push %ebp
  1094. c0100cc7: 89 e5 mov %esp,%ebp
  1095. c0100cc9: 83 ec 18 sub $0x18,%esp
  1096. c0100ccc: 8b 45 08 mov 0x8(%ebp),%eax
  1097. c0100ccf: 66 89 45 f4 mov %ax,-0xc(%ebp)
  1098. c0100cd3: 0f b7 45 f4 movzwl -0xc(%ebp),%eax
  1099. c0100cd7: 0f b6 c0 movzbl %al,%eax
  1100. c0100cda: 83 ec 08 sub $0x8,%esp
  1101. c0100cdd: 50 push %eax
  1102. c0100cde: 6a 21 push $0x21
  1103. c0100ce0: e8 53 0c 00 00 call c0101938 <outb>
  1104. c0100ce5: 83 c4 10 add $0x10,%esp
  1105. c0100ce8: 0f b7 45 f4 movzwl -0xc(%ebp),%eax
  1106. c0100cec: 66 c1 e8 08 shr $0x8,%ax
  1107. c0100cf0: 0f b6 c0 movzbl %al,%eax
  1108. c0100cf3: 83 ec 08 sub $0x8,%esp
  1109. c0100cf6: 50 push %eax
  1110. c0100cf7: 68 a1 00 00 00 push $0xa1
  1111. c0100cfc: e8 37 0c 00 00 call c0101938 <outb>
  1112. c0100d01: 83 c4 10 add $0x10,%esp
  1113. c0100d04: 90 nop
  1114. c0100d05: c9 leave
  1115. c0100d06: c3 ret
  1116.  
  1117. c0100d07 <pic_send_eoi>:
  1118. c0100d07: 55 push %ebp
  1119. c0100d08: 89 e5 mov %esp,%ebp
  1120. c0100d0a: 83 ec 18 sub $0x18,%esp
  1121. c0100d0d: 8b 45 08 mov 0x8(%ebp),%eax
  1122. c0100d10: 88 45 f4 mov %al,-0xc(%ebp)
  1123. c0100d13: 83 ec 08 sub $0x8,%esp
  1124. c0100d16: 6a 20 push $0x20
  1125. c0100d18: 6a 20 push $0x20
  1126. c0100d1a: e8 19 0c 00 00 call c0101938 <outb>
  1127. c0100d1f: 83 c4 10 add $0x10,%esp
  1128. c0100d22: 80 7d f4 07 cmpb $0x7,-0xc(%ebp)
  1129. c0100d26: 76 12 jbe c0100d3a <pic_send_eoi+0x33>
  1130. c0100d28: 83 ec 08 sub $0x8,%esp
  1131. c0100d2b: 6a 20 push $0x20
  1132. c0100d2d: 68 a0 00 00 00 push $0xa0
  1133. c0100d32: e8 01 0c 00 00 call c0101938 <outb>
  1134. c0100d37: 83 c4 10 add $0x10,%esp
  1135. c0100d3a: 90 nop
  1136. c0100d3b: c9 leave
  1137. c0100d3c: c3 ret
  1138.  
  1139. c0100d3d <enable_nmi>:
  1140. c0100d3d: 55 push %ebp
  1141. c0100d3e: 89 e5 mov %esp,%ebp
  1142. c0100d40: 83 ec 08 sub $0x8,%esp
  1143. c0100d43: c6 05 60 88 12 c0 00 movb $0x0,0xc0128860
  1144. c0100d4a: 0f b6 05 60 88 12 c0 movzbl 0xc0128860,%eax
  1145. c0100d51: c1 e0 07 shl $0x7,%eax
  1146. c0100d54: 0f b6 c0 movzbl %al,%eax
  1147. c0100d57: 83 ec 08 sub $0x8,%esp
  1148. c0100d5a: 50 push %eax
  1149. c0100d5b: 6a 70 push $0x70
  1150. c0100d5d: e8 d6 0b 00 00 call c0101938 <outb>
  1151. c0100d62: 83 c4 10 add $0x10,%esp
  1152. c0100d65: 90 nop
  1153. c0100d66: c9 leave
  1154. c0100d67: c3 ret
  1155.  
  1156. c0100d68 <disable_nmi>:
  1157. c0100d68: 55 push %ebp
  1158. c0100d69: 89 e5 mov %esp,%ebp
  1159. c0100d6b: 83 ec 08 sub $0x8,%esp
  1160. c0100d6e: c6 05 60 88 12 c0 01 movb $0x1,0xc0128860
  1161. c0100d75: 0f b6 05 60 88 12 c0 movzbl 0xc0128860,%eax
  1162. c0100d7c: c1 e0 07 shl $0x7,%eax
  1163. c0100d7f: 0f b6 c0 movzbl %al,%eax
  1164. c0100d82: 83 ec 08 sub $0x8,%esp
  1165. c0100d85: 50 push %eax
  1166. c0100d86: 6a 70 push $0x70
  1167. c0100d88: e8 ab 0b 00 00 call c0101938 <outb>
  1168. c0100d8d: 83 c4 10 add $0x10,%esp
  1169. c0100d90: 90 nop
  1170. c0100d91: c9 leave
  1171. c0100d92: c3 ret
  1172.  
  1173. c0100d93 <is_nmi_disabled>:
  1174. c0100d93: 55 push %ebp
  1175. c0100d94: 89 e5 mov %esp,%ebp
  1176. c0100d96: 0f b6 05 60 88 12 c0 movzbl 0xc0128860,%eax
  1177. c0100d9d: 5d pop %ebp
  1178. c0100d9e: c3 ret
  1179.  
  1180. c0100d9f <handle_exception>:
  1181. c0100d9f: 55 push %ebp
  1182. c0100da0: 89 e5 mov %esp,%ebp
  1183. c0100da2: 83 ec 08 sub $0x8,%esp
  1184. c0100da5: 83 ec 08 sub $0x8,%esp
  1185. c0100da8: 68 00 30 10 c0 push $0xc0103000
  1186. c0100dad: 6a 0c push $0xc
  1187. c0100daf: e8 fc f5 ff ff call c01003b0 <kprintf>
  1188. c0100db4: 83 c4 10 add $0x10,%esp
  1189. c0100db7: 8b 45 08 mov 0x8(%ebp),%eax
  1190. c0100dba: 8b 40 1c mov 0x1c(%eax),%eax
  1191. c0100dbd: 83 f8 0d cmp $0xd,%eax
  1192. c0100dc0: 74 1d je c0100ddf <handle_exception+0x40>
  1193. c0100dc2: 83 f8 0e cmp $0xe,%eax
  1194. c0100dc5: 74 2c je c0100df3 <handle_exception+0x54>
  1195. c0100dc7: 85 c0 test %eax,%eax
  1196. c0100dc9: 75 3c jne c0100e07 <handle_exception+0x68>
  1197. c0100dcb: 83 ec 08 sub $0x8,%esp
  1198. c0100dce: 68 29 30 10 c0 push $0xc0103029
  1199. c0100dd3: 6a 04 push $0x4
  1200. c0100dd5: e8 d6 f5 ff ff call c01003b0 <kprintf>
  1201. c0100dda: 83 c4 10 add $0x10,%esp
  1202. c0100ddd: eb 3b jmp c0100e1a <handle_exception+0x7b>
  1203. c0100ddf: 83 ec 08 sub $0x8,%esp
  1204. c0100de2: 68 3a 30 10 c0 push $0xc010303a
  1205. c0100de7: 6a 04 push $0x4
  1206. c0100de9: e8 c2 f5 ff ff call c01003b0 <kprintf>
  1207. c0100dee: 83 c4 10 add $0x10,%esp
  1208. c0100df1: eb 27 jmp c0100e1a <handle_exception+0x7b>
  1209. c0100df3: 83 ec 08 sub $0x8,%esp
  1210. c0100df6: 68 53 30 10 c0 push $0xc0103053
  1211. c0100dfb: 6a 04 push $0x4
  1212. c0100dfd: e8 ae f5 ff ff call c01003b0 <kprintf>
  1213. c0100e02: 83 c4 10 add $0x10,%esp
  1214. c0100e05: eb 13 jmp c0100e1a <handle_exception+0x7b>
  1215. c0100e07: 83 ec 08 sub $0x8,%esp
  1216. c0100e0a: 68 5e 30 10 c0 push $0xc010305e
  1217. c0100e0f: 6a 04 push $0x4
  1218. c0100e11: e8 9a f5 ff ff call c01003b0 <kprintf>
  1219. c0100e16: 83 c4 10 add $0x10,%esp
  1220. c0100e19: 90 nop
  1221. c0100e1a: 8b 45 08 mov 0x8(%ebp),%eax
  1222. c0100e1d: 8b 40 1c mov 0x1c(%eax),%eax
  1223. c0100e20: 83 ec 04 sub $0x4,%esp
  1224. c0100e23: 50 push %eax
  1225. c0100e24: 68 68 30 10 c0 push $0xc0103068
  1226. c0100e29: 6a 04 push $0x4
  1227. c0100e2b: e8 80 f5 ff ff call c01003b0 <kprintf>
  1228. c0100e30: 83 c4 10 add $0x10,%esp
  1229. c0100e33: 83 ec 0c sub $0xc,%esp
  1230. c0100e36: ff 75 08 pushl 0x8(%ebp)
  1231. c0100e39: e8 78 01 00 00 call c0100fb6 <dump_frame>
  1232. c0100e3e: 83 c4 10 add $0x10,%esp
  1233. c0100e41: 83 ec 08 sub $0x8,%esp
  1234. c0100e44: 68 72 30 10 c0 push $0xc0103072
  1235. c0100e49: 6a 0c push $0xc
  1236. c0100e4b: e8 60 f5 ff ff call c01003b0 <kprintf>
  1237. c0100e50: 83 c4 10 add $0x10,%esp
  1238. c0100e53: fa cli
  1239. c0100e54: f4 hlt
  1240. c0100e55: eb fc jmp c0100e53 <handle_exception+0xb4>
  1241.  
  1242. c0100e57 <handle_irq>:
  1243. c0100e57: 55 push %ebp
  1244. c0100e58: 89 e5 mov %esp,%ebp
  1245. c0100e5a: 83 ec 18 sub $0x18,%esp
  1246. c0100e5d: 83 ec 08 sub $0x8,%esp
  1247. c0100e60: 68 83 30 10 c0 push $0xc0103083
  1248. c0100e65: 6a 07 push $0x7
  1249. c0100e67: e8 45 f4 ff ff call c01002b1 <kputs>
  1250. c0100e6c: 83 c4 10 add $0x10,%esp
  1251. c0100e6f: 8b 45 08 mov 0x8(%ebp),%eax
  1252. c0100e72: 89 45 f4 mov %eax,-0xc(%ebp)
  1253. c0100e75: 8b 45 08 mov 0x8(%ebp),%eax
  1254. c0100e78: 8b 40 1c mov 0x1c(%eax),%eax
  1255. c0100e7b: 83 f8 21 cmp $0x21,%eax
  1256. c0100e7e: 74 33 je c0100eb3 <handle_irq+0x5c>
  1257. c0100e80: 83 f8 2e cmp $0x2e,%eax
  1258. c0100e83: 0f 84 0f 01 00 00 je c0100f98 <handle_irq+0x141>
  1259. c0100e89: 83 f8 20 cmp $0x20,%eax
  1260. c0100e8c: 0f 85 eb 00 00 00 jne c0100f7d <handle_irq+0x126>
  1261. c0100e92: 83 ec 0c sub $0xc,%esp
  1262. c0100e95: ff 75 08 pushl 0x8(%ebp)
  1263. c0100e98: e8 4c 06 00 00 call c01014e9 <schedule>
  1264. c0100e9d: 83 c4 10 add $0x10,%esp
  1265. c0100ea0: 89 45 f4 mov %eax,-0xc(%ebp)
  1266. c0100ea3: 8b 45 f4 mov -0xc(%ebp),%eax
  1267. c0100ea6: 83 c0 38 add $0x38,%eax
  1268. c0100ea9: a3 44 50 10 c0 mov %eax,0xc0105044
  1269. c0100eae: e9 e9 00 00 00 jmp c0100f9c <handle_irq+0x145>
  1270. c0100eb3: 83 ec 0c sub $0xc,%esp
  1271. c0100eb6: 6a 60 push $0x60
  1272. c0100eb8: e8 9a 0a 00 00 call c0101957 <inb>
  1273. c0100ebd: 83 c4 10 add $0x10,%esp
  1274. c0100ec0: 88 45 f2 mov %al,-0xe(%ebp)
  1275. c0100ec3: 0f b6 45 f2 movzbl -0xe(%ebp),%eax
  1276. c0100ec7: 83 ec 0c sub $0xc,%esp
  1277. c0100eca: 50 push %eax
  1278. c0100ecb: e8 63 03 00 00 call c0101233 <process_keyboard>
  1279. c0100ed0: 83 c4 10 add $0x10,%esp
  1280. c0100ed3: 83 ec 0c sub $0xc,%esp
  1281. c0100ed6: 6a 1d push $0x1d
  1282. c0100ed8: e8 3d 03 00 00 call c010121a <is_key_pressed>
  1283. c0100edd: 83 c4 10 add $0x10,%esp
  1284. c0100ee0: 84 c0 test %al,%al
  1285. c0100ee2: 74 4d je c0100f31 <handle_irq+0xda>
  1286. c0100ee4: 83 ec 0c sub $0xc,%esp
  1287. c0100ee7: 6a 38 push $0x38
  1288. c0100ee9: e8 2c 03 00 00 call c010121a <is_key_pressed>
  1289. c0100eee: 83 c4 10 add $0x10,%esp
  1290. c0100ef1: 84 c0 test %al,%al
  1291. c0100ef3: 74 3c je c0100f31 <handle_irq+0xda>
  1292. c0100ef5: 83 ec 0c sub $0xc,%esp
  1293. c0100ef8: 68 e0 00 00 00 push $0xe0
  1294. c0100efd: e8 18 03 00 00 call c010121a <is_key_pressed>
  1295. c0100f02: 83 c4 10 add $0x10,%esp
  1296. c0100f05: 84 c0 test %al,%al
  1297. c0100f07: 74 28 je c0100f31 <handle_irq+0xda>
  1298. c0100f09: 83 ec 0c sub $0xc,%esp
  1299. c0100f0c: 6a 53 push $0x53
  1300. c0100f0e: e8 07 03 00 00 call c010121a <is_key_pressed>
  1301. c0100f13: 83 c4 10 add $0x10,%esp
  1302. c0100f16: 84 c0 test %al,%al
  1303. c0100f18: 74 17 je c0100f31 <handle_irq+0xda>
  1304. c0100f1a: 83 ec 08 sub $0x8,%esp
  1305. c0100f1d: 68 88 30 10 c0 push $0xc0103088
  1306. c0100f22: 6a 04 push $0x4
  1307. c0100f24: e8 87 f4 ff ff call c01003b0 <kprintf>
  1308. c0100f29: 83 c4 10 add $0x10,%esp
  1309. c0100f2c: e8 83 0a 00 00 call c01019b4 <reboot>
  1310. c0100f31: 0f b6 45 f2 movzbl -0xe(%ebp),%eax
  1311. c0100f35: 84 c0 test %al,%al
  1312. c0100f37: 78 62 js c0100f9b <handle_irq+0x144>
  1313. c0100f39: 0f b6 45 f2 movzbl -0xe(%ebp),%eax
  1314. c0100f3d: 83 e0 7f and $0x7f,%eax
  1315. c0100f40: 83 ec 0c sub $0xc,%esp
  1316. c0100f43: 50 push %eax
  1317. c0100f44: e8 80 03 00 00 call c01012c9 <scancode_to_ascii>
  1318. c0100f49: 83 c4 10 add $0x10,%esp
  1319. c0100f4c: 88 45 f3 mov %al,-0xd(%ebp)
  1320. c0100f4f: 80 7d f3 0a cmpb $0xa,-0xd(%ebp)
  1321. c0100f53: 75 0f jne c0100f64 <handle_irq+0x10d>
  1322. c0100f55: 83 ec 08 sub $0x8,%esp
  1323. c0100f58: 6a 0d push $0xd
  1324. c0100f5a: 6a 07 push $0x7
  1325. c0100f5c: e8 7b f2 ff ff call c01001dc <kputc>
  1326. c0100f61: 83 c4 10 add $0x10,%esp
  1327. c0100f64: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
  1328. c0100f68: 83 ec 04 sub $0x4,%esp
  1329. c0100f6b: 50 push %eax
  1330. c0100f6c: 68 b0 30 10 c0 push $0xc01030b0
  1331. c0100f71: 6a 07 push $0x7
  1332. c0100f73: e8 38 f4 ff ff call c01003b0 <kprintf>
  1333. c0100f78: 83 c4 10 add $0x10,%esp
  1334. c0100f7b: eb 1e jmp c0100f9b <handle_irq+0x144>
  1335. c0100f7d: 8b 45 08 mov 0x8(%ebp),%eax
  1336. c0100f80: 8b 40 1c mov 0x1c(%eax),%eax
  1337. c0100f83: 83 ec 04 sub $0x4,%esp
  1338. c0100f86: 50 push %eax
  1339. c0100f87: 68 b3 30 10 c0 push $0xc01030b3
  1340. c0100f8c: 6a 0e push $0xe
  1341. c0100f8e: e8 1d f4 ff ff call c01003b0 <kprintf>
  1342. c0100f93: 83 c4 10 add $0x10,%esp
  1343. c0100f96: eb 04 jmp c0100f9c <handle_irq+0x145>
  1344. c0100f98: 90 nop
  1345. c0100f99: eb 01 jmp c0100f9c <handle_irq+0x145>
  1346. c0100f9b: 90 nop
  1347. c0100f9c: 8b 45 08 mov 0x8(%ebp),%eax
  1348. c0100f9f: 8b 40 1c mov 0x1c(%eax),%eax
  1349. c0100fa2: 0f b6 c0 movzbl %al,%eax
  1350. c0100fa5: 83 ec 0c sub $0xc,%esp
  1351. c0100fa8: 50 push %eax
  1352. c0100fa9: e8 59 fd ff ff call c0100d07 <pic_send_eoi>
  1353. c0100fae: 83 c4 10 add $0x10,%esp
  1354. c0100fb1: 8b 45 f4 mov -0xc(%ebp),%eax
  1355. c0100fb4: c9 leave
  1356. c0100fb5: c3 ret
  1357.  
  1358. c0100fb6 <dump_frame>:
  1359. c0100fb6: 55 push %ebp
  1360. c0100fb7: 89 e5 mov %esp,%ebp
  1361. c0100fb9: 83 ec 08 sub $0x8,%esp
  1362. c0100fbc: 8b 45 08 mov 0x8(%ebp),%eax
  1363. c0100fbf: 8b 48 08 mov 0x8(%eax),%ecx
  1364. c0100fc2: 8b 45 08 mov 0x8(%ebp),%eax
  1365. c0100fc5: 8b 50 04 mov 0x4(%eax),%edx
  1366. c0100fc8: 8b 45 08 mov 0x8(%ebp),%eax
  1367. c0100fcb: 8b 00 mov (%eax),%eax
  1368. c0100fcd: 83 ec 0c sub $0xc,%esp
  1369. c0100fd0: 51 push %ecx
  1370. c0100fd1: 52 push %edx
  1371. c0100fd2: 50 push %eax
  1372. c0100fd3: 68 c8 30 10 c0 push $0xc01030c8
  1373. c0100fd8: 6a 07 push $0x7
  1374. c0100fda: e8 d1 f3 ff ff call c01003b0 <kprintf>
  1375. c0100fdf: 83 c4 20 add $0x20,%esp
  1376. c0100fe2: 8b 45 08 mov 0x8(%ebp),%eax
  1377. c0100fe5: 8b 48 14 mov 0x14(%eax),%ecx
  1378. c0100fe8: 8b 45 08 mov 0x8(%ebp),%eax
  1379. c0100feb: 8b 50 10 mov 0x10(%eax),%edx
  1380. c0100fee: 8b 45 08 mov 0x8(%ebp),%eax
  1381. c0100ff1: 8b 40 0c mov 0xc(%eax),%eax
  1382. c0100ff4: 83 ec 0c sub $0xc,%esp
  1383. c0100ff7: 51 push %ecx
  1384. c0100ff8: 52 push %edx
  1385. c0100ff9: 50 push %eax
  1386. c0100ffa: 68 e8 30 10 c0 push $0xc01030e8
  1387. c0100fff: 6a 07 push $0x7
  1388. c0101001: e8 aa f3 ff ff call c01003b0 <kprintf>
  1389. c0101006: 83 c4 20 add $0x20,%esp
  1390. c0101009: 8b 45 08 mov 0x8(%ebp),%eax
  1391. c010100c: 8b 48 20 mov 0x20(%eax),%ecx
  1392. c010100f: 8b 45 08 mov 0x8(%ebp),%eax
  1393. c0101012: 8b 50 1c mov 0x1c(%eax),%edx
  1394. c0101015: 8b 45 08 mov 0x8(%ebp),%eax
  1395. c0101018: 8b 40 18 mov 0x18(%eax),%eax
  1396. c010101b: 83 ec 0c sub $0xc,%esp
  1397. c010101e: 51 push %ecx
  1398. c010101f: 52 push %edx
  1399. c0101020: 50 push %eax
  1400. c0101021: 68 08 31 10 c0 push $0xc0103108
  1401. c0101026: 6a 07 push $0x7
  1402. c0101028: e8 83 f3 ff ff call c01003b0 <kprintf>
  1403. c010102d: 83 c4 20 add $0x20,%esp
  1404. c0101030: 8b 45 08 mov 0x8(%ebp),%eax
  1405. c0101033: 8b 48 2c mov 0x2c(%eax),%ecx
  1406. c0101036: 8b 45 08 mov 0x8(%ebp),%eax
  1407. c0101039: 8b 50 28 mov 0x28(%eax),%edx
  1408. c010103c: 8b 45 08 mov 0x8(%ebp),%eax
  1409. c010103f: 8b 40 24 mov 0x24(%eax),%eax
  1410. c0101042: 83 ec 0c sub $0xc,%esp
  1411. c0101045: 51 push %ecx
  1412. c0101046: 52 push %edx
  1413. c0101047: 50 push %eax
  1414. c0101048: 68 28 31 10 c0 push $0xc0103128
  1415. c010104d: 6a 07 push $0x7
  1416. c010104f: e8 5c f3 ff ff call c01003b0 <kprintf>
  1417. c0101054: 83 c4 20 add $0x20,%esp
  1418. c0101057: 8b 45 08 mov 0x8(%ebp),%eax
  1419. c010105a: 8b 50 34 mov 0x34(%eax),%edx
  1420. c010105d: 8b 45 08 mov 0x8(%ebp),%eax
  1421. c0101060: 8b 40 30 mov 0x30(%eax),%eax
  1422. c0101063: 52 push %edx
  1423. c0101064: 50 push %eax
  1424. c0101065: 68 47 31 10 c0 push $0xc0103147
  1425. c010106a: 6a 07 push $0x7
  1426. c010106c: e8 3f f3 ff ff call c01003b0 <kprintf>
  1427. c0101071: 83 c4 10 add $0x10,%esp
  1428. c0101074: 90 nop
  1429. c0101075: c9 leave
  1430. c0101076: c3 ret
  1431.  
  1432. c0101077 <handle_syscall>:
  1433. c0101077: 55 push %ebp
  1434. c0101078: 89 e5 mov %esp,%ebp
  1435. c010107a: 83 ec 18 sub $0x18,%esp
  1436. c010107d: 8b 45 08 mov 0x8(%ebp),%eax
  1437. c0101080: 8b 00 mov (%eax),%eax
  1438. c0101082: 89 45 f4 mov %eax,-0xc(%ebp)
  1439. c0101085: 83 ec 08 sub $0x8,%esp
  1440. c0101088: ff 75 f4 pushl -0xc(%ebp)
  1441. c010108b: 68 5c 31 10 c0 push $0xc010315c
  1442. c0101090: e8 4e 13 00 00 call c01023e3 <uart_printf>
  1443. c0101095: 83 c4 10 add $0x10,%esp
  1444. c0101098: 83 ec 04 sub $0x4,%esp
  1445. c010109b: ff 75 f4 pushl -0xc(%ebp)
  1446. c010109e: 68 6c 31 10 c0 push $0xc010316c
  1447. c01010a3: 6a 02 push $0x2
  1448. c01010a5: e8 06 f3 ff ff call c01003b0 <kprintf>
  1449. c01010aa: 83 c4 10 add $0x10,%esp
  1450. c01010ad: 90 nop
  1451. c01010ae: c9 leave
  1452. c01010af: c3 ret
  1453.  
  1454. c01010b0 <isr_handler_common>:
  1455. c01010b0: 55 push %ebp
  1456. c01010b1: 89 e5 mov %esp,%ebp
  1457. c01010b3: 83 ec 18 sub $0x18,%esp
  1458. c01010b6: 8b 45 08 mov 0x8(%ebp),%eax
  1459. c01010b9: 89 45 f4 mov %eax,-0xc(%ebp)
  1460. c01010bc: 8b 45 08 mov 0x8(%ebp),%eax
  1461. c01010bf: 8b 40 1c mov 0x1c(%eax),%eax
  1462. c01010c2: 83 ec 08 sub $0x8,%esp
  1463. c01010c5: 50 push %eax
  1464. c01010c6: 68 8c 31 10 c0 push $0xc010318c
  1465. c01010cb: e8 13 13 00 00 call c01023e3 <uart_printf>
  1466. c01010d0: 83 c4 10 add $0x10,%esp
  1467. c01010d3: 8b 45 08 mov 0x8(%ebp),%eax
  1468. c01010d6: 8b 40 1c mov 0x1c(%eax),%eax
  1469. c01010d9: 83 f8 1f cmp $0x1f,%eax
  1470. c01010dc: 77 10 ja c01010ee <isr_handler_common+0x3e>
  1471. c01010de: 83 ec 0c sub $0xc,%esp
  1472. c01010e1: ff 75 08 pushl 0x8(%ebp)
  1473. c01010e4: e8 b6 fc ff ff call c0100d9f <handle_exception>
  1474. c01010e9: 83 c4 10 add $0x10,%esp
  1475. c01010ec: eb 61 jmp c010114f <isr_handler_common+0x9f>
  1476. c01010ee: 8b 45 08 mov 0x8(%ebp),%eax
  1477. c01010f1: 8b 40 1c mov 0x1c(%eax),%eax
  1478. c01010f4: 83 f8 1f cmp $0x1f,%eax
  1479. c01010f7: 76 1e jbe c0101117 <isr_handler_common+0x67>
  1480. c01010f9: 8b 45 08 mov 0x8(%ebp),%eax
  1481. c01010fc: 8b 40 1c mov 0x1c(%eax),%eax
  1482. c01010ff: 83 f8 2f cmp $0x2f,%eax
  1483. c0101102: 77 13 ja c0101117 <isr_handler_common+0x67>
  1484. c0101104: 83 ec 0c sub $0xc,%esp
  1485. c0101107: ff 75 08 pushl 0x8(%ebp)
  1486. c010110a: e8 48 fd ff ff call c0100e57 <handle_irq>
  1487. c010110f: 83 c4 10 add $0x10,%esp
  1488. c0101112: 89 45 f4 mov %eax,-0xc(%ebp)
  1489. c0101115: eb 38 jmp c010114f <isr_handler_common+0x9f>
  1490. c0101117: 8b 45 08 mov 0x8(%ebp),%eax
  1491. c010111a: 8b 40 1c mov 0x1c(%eax),%eax
  1492. c010111d: 83 f8 30 cmp $0x30,%eax
  1493. c0101120: 75 10 jne c0101132 <isr_handler_common+0x82>
  1494. c0101122: 83 ec 0c sub $0xc,%esp
  1495. c0101125: ff 75 08 pushl 0x8(%ebp)
  1496. c0101128: e8 4a ff ff ff call c0101077 <handle_syscall>
  1497. c010112d: 83 c4 10 add $0x10,%esp
  1498. c0101130: eb 1d jmp c010114f <isr_handler_common+0x9f>
  1499. c0101132: 8b 45 08 mov 0x8(%ebp),%eax
  1500. c0101135: 8b 40 1c mov 0x1c(%eax),%eax
  1501. c0101138: 83 ec 04 sub $0x4,%esp
  1502. c010113b: 50 push %eax
  1503. c010113c: 68 9c 31 10 c0 push $0xc010319c
  1504. c0101141: 6a 04 push $0x4
  1505. c0101143: e8 68 f2 ff ff call c01003b0 <kprintf>
  1506. c0101148: 83 c4 10 add $0x10,%esp
  1507. c010114b: fa cli
  1508. c010114c: f4 hlt
  1509. c010114d: eb fc jmp c010114b <isr_handler_common+0x9b>
  1510. c010114f: 8b 45 f4 mov -0xc(%ebp),%eax
  1511. c0101152: c9 leave
  1512. c0101153: c3 ret
  1513.  
  1514. c0101154 <init>:
  1515. c0101154: 55 push %ebp
  1516. c0101155: 89 e5 mov %esp,%ebp
  1517. c0101157: 81 ec 18 04 00 00 sub $0x418,%esp
  1518. c010115d: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  1519. c0101163: 89 45 f4 mov %eax,-0xc(%ebp)
  1520. c0101166: 31 c0 xor %eax,%eax
  1521. c0101168: eb fe jmp c0101168 <init+0x14>
  1522.  
  1523. c010116a <init_keyboard>:
  1524. c010116a: 55 push %ebp
  1525. c010116b: 89 e5 mov %esp,%ebp
  1526. c010116d: 83 ec 08 sub $0x8,%esp
  1527. c0101170: eb 0d jmp c010117f <init_keyboard+0x15>
  1528. c0101172: 83 ec 0c sub $0xc,%esp
  1529. c0101175: 6a 60 push $0x60
  1530. c0101177: e8 db 07 00 00 call c0101957 <inb>
  1531. c010117c: 83 c4 10 add $0x10,%esp
  1532. c010117f: 83 ec 0c sub $0xc,%esp
  1533. c0101182: 6a 64 push $0x64
  1534. c0101184: e8 ce 07 00 00 call c0101957 <inb>
  1535. c0101189: 83 c4 10 add $0x10,%esp
  1536. c010118c: 0f b6 c0 movzbl %al,%eax
  1537. c010118f: 83 e0 01 and $0x1,%eax
  1538. c0101192: 85 c0 test %eax,%eax
  1539. c0101194: 75 dc jne c0101172 <init_keyboard+0x8>
  1540. c0101196: 83 ec 0c sub $0xc,%esp
  1541. c0101199: 68 f4 00 00 00 push $0xf4
  1542. c010119e: e8 0a 00 00 00 call c01011ad <keyboard_command>
  1543. c01011a3: 83 c4 10 add $0x10,%esp
  1544. c01011a6: b8 00 00 00 00 mov $0x0,%eax
  1545. c01011ab: c9 leave
  1546. c01011ac: c3 ret
  1547.  
  1548. c01011ad <keyboard_command>:
  1549. c01011ad: 55 push %ebp
  1550. c01011ae: 89 e5 mov %esp,%ebp
  1551. c01011b0: 83 ec 18 sub $0x18,%esp
  1552. c01011b3: 8b 45 08 mov 0x8(%ebp),%eax
  1553. c01011b6: 88 45 f4 mov %al,-0xc(%ebp)
  1554. c01011b9: 90 nop
  1555. c01011ba: 83 ec 0c sub $0xc,%esp
  1556. c01011bd: 6a 64 push $0x64
  1557. c01011bf: e8 93 07 00 00 call c0101957 <inb>
  1558. c01011c4: 83 c4 10 add $0x10,%esp
  1559. c01011c7: 0f b6 c0 movzbl %al,%eax
  1560. c01011ca: 83 e0 02 and $0x2,%eax
  1561. c01011cd: 85 c0 test %eax,%eax
  1562. c01011cf: 75 e9 jne c01011ba <keyboard_command+0xd>
  1563. c01011d1: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  1564. c01011d5: 83 ec 08 sub $0x8,%esp
  1565. c01011d8: 50 push %eax
  1566. c01011d9: 6a 60 push $0x60
  1567. c01011db: e8 58 07 00 00 call c0101938 <outb>
  1568. c01011e0: 83 c4 10 add $0x10,%esp
  1569. c01011e3: 90 nop
  1570. c01011e4: c9 leave
  1571. c01011e5: c3 ret
  1572.  
  1573. c01011e6 <key_released>:
  1574. c01011e6: 55 push %ebp
  1575. c01011e7: 89 e5 mov %esp,%ebp
  1576. c01011e9: 83 ec 04 sub $0x4,%esp
  1577. c01011ec: 8b 45 08 mov 0x8(%ebp),%eax
  1578. c01011ef: 88 45 fc mov %al,-0x4(%ebp)
  1579. c01011f2: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1580. c01011f6: c6 80 a0 88 12 c0 00 movb $0x0,-0x3fed7760(%eax)
  1581. c01011fd: 90 nop
  1582. c01011fe: c9 leave
  1583. c01011ff: c3 ret
  1584.  
  1585. c0101200 <key_pressed>:
  1586. c0101200: 55 push %ebp
  1587. c0101201: 89 e5 mov %esp,%ebp
  1588. c0101203: 83 ec 04 sub $0x4,%esp
  1589. c0101206: 8b 45 08 mov 0x8(%ebp),%eax
  1590. c0101209: 88 45 fc mov %al,-0x4(%ebp)
  1591. c010120c: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1592. c0101210: c6 80 a0 88 12 c0 01 movb $0x1,-0x3fed7760(%eax)
  1593. c0101217: 90 nop
  1594. c0101218: c9 leave
  1595. c0101219: c3 ret
  1596.  
  1597. c010121a <is_key_pressed>:
  1598. c010121a: 55 push %ebp
  1599. c010121b: 89 e5 mov %esp,%ebp
  1600. c010121d: 83 ec 04 sub $0x4,%esp
  1601. c0101220: 8b 45 08 mov 0x8(%ebp),%eax
  1602. c0101223: 88 45 fc mov %al,-0x4(%ebp)
  1603. c0101226: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1604. c010122a: 0f b6 80 a0 88 12 c0 movzbl -0x3fed7760(%eax),%eax
  1605. c0101231: c9 leave
  1606. c0101232: c3 ret
  1607.  
  1608. c0101233 <process_keyboard>:
  1609. c0101233: 55 push %ebp
  1610. c0101234: 89 e5 mov %esp,%ebp
  1611. c0101236: 83 ec 04 sub $0x4,%esp
  1612. c0101239: 8b 45 08 mov 0x8(%ebp),%eax
  1613. c010123c: 88 45 fc mov %al,-0x4(%ebp)
  1614. c010123f: 0f b6 05 80 88 12 c0 movzbl 0xc0128880,%eax
  1615. c0101246: 3c e0 cmp $0xe0,%al
  1616. c0101248: 75 3a jne c0101284 <process_keyboard+0x51>
  1617. c010124a: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1618. c010124e: 84 c0 test %al,%al
  1619. c0101250: 79 1c jns c010126e <process_keyboard+0x3b>
  1620. c0101252: 68 e0 00 00 00 push $0xe0
  1621. c0101257: e8 8a ff ff ff call c01011e6 <key_released>
  1622. c010125c: 83 c4 04 add $0x4,%esp
  1623. c010125f: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1624. c0101263: 50 push %eax
  1625. c0101264: e8 7d ff ff ff call c01011e6 <key_released>
  1626. c0101269: 83 c4 04 add $0x4,%esp
  1627. c010126c: eb 0d jmp c010127b <process_keyboard+0x48>
  1628. c010126e: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1629. c0101272: 50 push %eax
  1630. c0101273: e8 88 ff ff ff call c0101200 <key_pressed>
  1631. c0101278: 83 c4 04 add $0x4,%esp
  1632. c010127b: c6 05 80 88 12 c0 00 movb $0x0,0xc0128880
  1633. c0101282: eb 43 jmp c01012c7 <process_keyboard+0x94>
  1634. c0101284: 80 7d fc e0 cmpb $0xe0,-0x4(%ebp)
  1635. c0101288: 75 16 jne c01012a0 <process_keyboard+0x6d>
  1636. c010128a: c6 05 80 88 12 c0 e0 movb $0xe0,0xc0128880
  1637. c0101291: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1638. c0101295: 50 push %eax
  1639. c0101296: e8 65 ff ff ff call c0101200 <key_pressed>
  1640. c010129b: 83 c4 04 add $0x4,%esp
  1641. c010129e: eb 27 jmp c01012c7 <process_keyboard+0x94>
  1642. c01012a0: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1643. c01012a4: 84 c0 test %al,%al
  1644. c01012a6: 79 12 jns c01012ba <process_keyboard+0x87>
  1645. c01012a8: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1646. c01012ac: 83 e0 7f and $0x7f,%eax
  1647. c01012af: 50 push %eax
  1648. c01012b0: e8 31 ff ff ff call c01011e6 <key_released>
  1649. c01012b5: 83 c4 04 add $0x4,%esp
  1650. c01012b8: eb 0d jmp c01012c7 <process_keyboard+0x94>
  1651. c01012ba: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1652. c01012be: 50 push %eax
  1653. c01012bf: e8 3c ff ff ff call c0101200 <key_pressed>
  1654. c01012c4: 83 c4 04 add $0x4,%esp
  1655. c01012c7: c9 leave
  1656. c01012c8: c3 ret
  1657.  
  1658. c01012c9 <scancode_to_ascii>:
  1659. c01012c9: 55 push %ebp
  1660. c01012ca: 89 e5 mov %esp,%ebp
  1661. c01012cc: 83 ec 04 sub $0x4,%esp
  1662. c01012cf: 8b 45 08 mov 0x8(%ebp),%eax
  1663. c01012d2: 88 45 fc mov %al,-0x4(%ebp)
  1664. c01012d5: 80 7d fc 7e cmpb $0x7e,-0x4(%ebp)
  1665. c01012d9: 77 0d ja c01012e8 <scancode_to_ascii+0x1f>
  1666. c01012db: 0f b6 45 fc movzbl -0x4(%ebp),%eax
  1667. c01012df: 0f b6 80 c0 50 10 c0 movzbl -0x3fefaf40(%eax),%eax
  1668. c01012e6: eb 05 jmp c01012ed <scancode_to_ascii+0x24>
  1669. c01012e8: b8 fe ff ff ff mov $0xfffffffe,%eax
  1670. c01012ed: c9 leave
  1671. c01012ee: c3 ret
  1672.  
  1673. c01012ef <pit_init>:
  1674. c01012ef: 55 push %ebp
  1675. c01012f0: 89 e5 mov %esp,%ebp
  1676. c01012f2: 83 ec 18 sub $0x18,%esp
  1677. c01012f5: b8 de 34 12 00 mov $0x1234de,%eax
  1678. c01012fa: ba 00 00 00 00 mov $0x0,%edx
  1679. c01012ff: f7 75 08 divl 0x8(%ebp)
  1680. c0101302: 89 45 f4 mov %eax,-0xc(%ebp)
  1681. c0101305: 83 ec 08 sub $0x8,%esp
  1682. c0101308: 6a 34 push $0x34
  1683. c010130a: 6a 43 push $0x43
  1684. c010130c: e8 27 06 00 00 call c0101938 <outb>
  1685. c0101311: 83 c4 10 add $0x10,%esp
  1686. c0101314: 8b 45 f4 mov -0xc(%ebp),%eax
  1687. c0101317: 0f b6 c0 movzbl %al,%eax
  1688. c010131a: 83 ec 08 sub $0x8,%esp
  1689. c010131d: 50 push %eax
  1690. c010131e: 6a 40 push $0x40
  1691. c0101320: e8 13 06 00 00 call c0101938 <outb>
  1692. c0101325: 83 c4 10 add $0x10,%esp
  1693. c0101328: 8b 45 f4 mov -0xc(%ebp),%eax
  1694. c010132b: c1 e8 08 shr $0x8,%eax
  1695. c010132e: 0f b6 c0 movzbl %al,%eax
  1696. c0101331: 83 ec 08 sub $0x8,%esp
  1697. c0101334: 50 push %eax
  1698. c0101335: 6a 40 push $0x40
  1699. c0101337: e8 fc 05 00 00 call c0101938 <outb>
  1700. c010133c: 83 c4 10 add $0x10,%esp
  1701. c010133f: b8 00 00 00 00 mov $0x0,%eax
  1702. c0101344: c9 leave
  1703. c0101345: c3 ret
  1704.  
  1705. c0101346 <__stack_chk_fail>:
  1706. c0101346: 55 push %ebp
  1707. c0101347: 89 e5 mov %esp,%ebp
  1708. c0101349: 83 ec 08 sub $0x8,%esp
  1709. c010134c: 83 ec 08 sub $0x8,%esp
  1710. c010134f: 68 cd 31 10 c0 push $0xc01031cd
  1711. c0101354: 6a 04 push $0x4
  1712. c0101356: e8 56 ef ff ff call c01002b1 <kputs>
  1713. c010135b: 83 c4 10 add $0x10,%esp
  1714. c010135e: cd 0d int $0xd
  1715. c0101360: 90 nop
  1716. c0101361: c9 leave
  1717. c0101362: c3 ret
  1718.  
  1719. c0101363 <task_a>:
  1720. c0101363: 55 push %ebp
  1721. c0101364: 89 e5 mov %esp,%ebp
  1722. c0101366: 83 ec 08 sub $0x8,%esp
  1723. c0101369: b8 01 00 00 00 mov $0x1,%eax
  1724. c010136e: cd 30 int $0x30
  1725. c0101370: 83 ec 0c sub $0xc,%esp
  1726. c0101373: 68 e8 31 10 c0 push $0xc01031e8
  1727. c0101378: e8 ec 0e 00 00 call c0102269 <uart_puts>
  1728. c010137d: 83 c4 10 add $0x10,%esp
  1729. c0101380: eb e7 jmp c0101369 <task_a+0x6>
  1730.  
  1731. c0101382 <task_b>:
  1732. c0101382: 55 push %ebp
  1733. c0101383: 89 e5 mov %esp,%ebp
  1734. c0101385: b8 02 00 00 00 mov $0x2,%eax
  1735. c010138a: cd 30 int $0x30
  1736. c010138c: eb fc jmp c010138a <task_b+0x8>
  1737.  
  1738. c010138e <task_c>:
  1739. c010138e: 55 push %ebp
  1740. c010138f: 89 e5 mov %esp,%ebp
  1741. c0101391: b8 03 00 00 00 mov $0x3,%eax
  1742. c0101396: cd 30 int $0x30
  1743. c0101398: eb fc jmp c0101396 <task_c+0x8>
  1744.  
  1745. c010139a <task_d>:
  1746. c010139a: 55 push %ebp
  1747. c010139b: 89 e5 mov %esp,%ebp
  1748. c010139d: b8 04 00 00 00 mov $0x4,%eax
  1749. c01013a2: cd 30 int $0x30
  1750. c01013a4: eb fc jmp c01013a2 <task_d+0x8>
  1751.  
  1752. c01013a6 <init_task>:
  1753. c01013a6: 55 push %ebp
  1754. c01013a7: 89 e5 mov %esp,%ebp
  1755. c01013a9: 57 push %edi
  1756. c01013aa: 83 ec 54 sub $0x54,%esp
  1757. c01013ad: e8 ec 16 00 00 call c0102a9e <pmm_alloc>
  1758. c01013b2: 89 45 b0 mov %eax,-0x50(%ebp)
  1759. c01013b5: e8 e4 16 00 00 call c0102a9e <pmm_alloc>
  1760. c01013ba: 89 45 b4 mov %eax,-0x4c(%ebp)
  1761. c01013bd: 8d 55 c0 lea -0x40(%ebp),%edx
  1762. c01013c0: b8 00 00 00 00 mov $0x0,%eax
  1763. c01013c5: b9 0e 00 00 00 mov $0xe,%ecx
  1764. c01013ca: 89 d7 mov %edx,%edi
  1765. c01013cc: f3 ab rep stos %eax,%es:(%edi)
  1766. c01013ce: 8b 45 08 mov 0x8(%ebp),%eax
  1767. c01013d1: 89 45 e4 mov %eax,-0x1c(%ebp)
  1768. c01013d4: c7 45 e8 1b 00 00 00 movl $0x1b,-0x18(%ebp)
  1769. c01013db: c7 45 ec 00 02 00 00 movl $0x200,-0x14(%ebp)
  1770. c01013e2: 8b 45 b4 mov -0x4c(%ebp),%eax
  1771. c01013e5: 05 00 10 00 00 add $0x1000,%eax
  1772. c01013ea: 89 45 f0 mov %eax,-0x10(%ebp)
  1773. c01013ed: c7 45 f4 23 00 00 00 movl $0x23,-0xc(%ebp)
  1774. c01013f4: 8b 45 b0 mov -0x50(%ebp),%eax
  1775. c01013f7: 05 c8 0f 00 00 add $0xfc8,%eax
  1776. c01013fc: 89 45 b8 mov %eax,-0x48(%ebp)
  1777. c01013ff: 8b 45 b8 mov -0x48(%ebp),%eax
  1778. c0101402: 8b 55 c0 mov -0x40(%ebp),%edx
  1779. c0101405: 89 10 mov %edx,(%eax)
  1780. c0101407: 8b 55 c4 mov -0x3c(%ebp),%edx
  1781. c010140a: 89 50 04 mov %edx,0x4(%eax)
  1782. c010140d: 8b 55 c8 mov -0x38(%ebp),%edx
  1783. c0101410: 89 50 08 mov %edx,0x8(%eax)
  1784. c0101413: 8b 55 cc mov -0x34(%ebp),%edx
  1785. c0101416: 89 50 0c mov %edx,0xc(%eax)
  1786. c0101419: 8b 55 d0 mov -0x30(%ebp),%edx
  1787. c010141c: 89 50 10 mov %edx,0x10(%eax)
  1788. c010141f: 8b 55 d4 mov -0x2c(%ebp),%edx
  1789. c0101422: 89 50 14 mov %edx,0x14(%eax)
  1790. c0101425: 8b 55 d8 mov -0x28(%ebp),%edx
  1791. c0101428: 89 50 18 mov %edx,0x18(%eax)
  1792. c010142b: 8b 55 dc mov -0x24(%ebp),%edx
  1793. c010142e: 89 50 1c mov %edx,0x1c(%eax)
  1794. c0101431: 8b 55 e0 mov -0x20(%ebp),%edx
  1795. c0101434: 89 50 20 mov %edx,0x20(%eax)
  1796. c0101437: 8b 55 e4 mov -0x1c(%ebp),%edx
  1797. c010143a: 89 50 24 mov %edx,0x24(%eax)
  1798. c010143d: 8b 55 e8 mov -0x18(%ebp),%edx
  1799. c0101440: 89 50 28 mov %edx,0x28(%eax)
  1800. c0101443: 8b 55 ec mov -0x14(%ebp),%edx
  1801. c0101446: 89 50 2c mov %edx,0x2c(%eax)
  1802. c0101449: 8b 55 f0 mov -0x10(%ebp),%edx
  1803. c010144c: 89 50 30 mov %edx,0x30(%eax)
  1804. c010144f: 8b 55 f4 mov -0xc(%ebp),%edx
  1805. c0101452: 89 50 34 mov %edx,0x34(%eax)
  1806. c0101455: e8 44 16 00 00 call c0102a9e <pmm_alloc>
  1807. c010145a: 89 45 bc mov %eax,-0x44(%ebp)
  1808. c010145d: 8b 45 bc mov -0x44(%ebp),%eax
  1809. c0101460: 8b 55 b8 mov -0x48(%ebp),%edx
  1810. c0101463: 89 10 mov %edx,(%eax)
  1811. c0101465: 8b 15 20 89 12 c0 mov 0xc0128920,%edx
  1812. c010146b: 8b 45 bc mov -0x44(%ebp),%eax
  1813. c010146e: 89 50 04 mov %edx,0x4(%eax)
  1814. c0101471: 8b 45 bc mov -0x44(%ebp),%eax
  1815. c0101474: a3 20 89 12 c0 mov %eax,0xc0128920
  1816. c0101479: 8b 15 24 89 12 c0 mov 0xc0128924,%edx
  1817. c010147f: a1 20 89 12 c0 mov 0xc0128920,%eax
  1818. c0101484: 52 push %edx
  1819. c0101485: 50 push %eax
  1820. c0101486: ff 75 bc pushl -0x44(%ebp)
  1821. c0101489: 68 f4 31 10 c0 push $0xc01031f4
  1822. c010148e: e8 50 0f 00 00 call c01023e3 <uart_printf>
  1823. c0101493: 83 c4 10 add $0x10,%esp
  1824. c0101496: 8b 45 bc mov -0x44(%ebp),%eax
  1825. c0101499: 8b 7d fc mov -0x4(%ebp),%edi
  1826. c010149c: c9 leave
  1827. c010149d: c3 ret
  1828.  
  1829. c010149e <init_multitasking>:
  1830. c010149e: 55 push %ebp
  1831. c010149f: 89 e5 mov %esp,%ebp
  1832. c01014a1: 83 ec 08 sub $0x8,%esp
  1833. c01014a4: fa cli
  1834. c01014a5: 83 ec 0c sub $0xc,%esp
  1835. c01014a8: 68 63 13 10 c0 push $0xc0101363
  1836. c01014ad: e8 f4 fe ff ff call c01013a6 <init_task>
  1837. c01014b2: 83 c4 10 add $0x10,%esp
  1838. c01014b5: 83 ec 0c sub $0xc,%esp
  1839. c01014b8: 68 82 13 10 c0 push $0xc0101382
  1840. c01014bd: e8 e4 fe ff ff call c01013a6 <init_task>
  1841. c01014c2: 83 c4 10 add $0x10,%esp
  1842. c01014c5: 83 ec 0c sub $0xc,%esp
  1843. c01014c8: 68 8e 13 10 c0 push $0xc010138e
  1844. c01014cd: e8 d4 fe ff ff call c01013a6 <init_task>
  1845. c01014d2: 83 c4 10 add $0x10,%esp
  1846. c01014d5: 83 ec 0c sub $0xc,%esp
  1847. c01014d8: 68 9a 13 10 c0 push $0xc010139a
  1848. c01014dd: e8 c4 fe ff ff call c01013a6 <init_task>
  1849. c01014e2: 83 c4 10 add $0x10,%esp
  1850. c01014e5: fb sti
  1851. c01014e6: 90 nop
  1852. c01014e7: c9 leave
  1853. c01014e8: c3 ret
  1854.  
  1855. c01014e9 <schedule>:
  1856. c01014e9: 55 push %ebp
  1857. c01014ea: 89 e5 mov %esp,%ebp
  1858. c01014ec: 83 ec 08 sub $0x8,%esp
  1859. c01014ef: 83 ec 0c sub $0xc,%esp
  1860. c01014f2: 68 1d 32 10 c0 push $0xc010321d
  1861. c01014f7: e8 6d 0d 00 00 call c0102269 <uart_puts>
  1862. c01014fc: 83 c4 10 add $0x10,%esp
  1863. c01014ff: 8b 15 24 89 12 c0 mov 0xc0128924,%edx
  1864. c0101505: a1 20 89 12 c0 mov 0xc0128920,%eax
  1865. c010150a: 83 ec 04 sub $0x4,%esp
  1866. c010150d: 52 push %edx
  1867. c010150e: 50 push %eax
  1868. c010150f: 68 28 32 10 c0 push $0xc0103228
  1869. c0101514: e8 ca 0e 00 00 call c01023e3 <uart_printf>
  1870. c0101519: 83 c4 10 add $0x10,%esp
  1871. c010151c: a1 20 89 12 c0 mov 0xc0128920,%eax
  1872. c0101521: 85 c0 test %eax,%eax
  1873. c0101523: 75 08 jne c010152d <schedule+0x44>
  1874. c0101525: 8b 45 08 mov 0x8(%ebp),%eax
  1875. c0101528: e9 bc 00 00 00 jmp c01015e9 <schedule+0x100>
  1876. c010152d: a1 24 89 12 c0 mov 0xc0128924,%eax
  1877. c0101532: 85 c0 test %eax,%eax
  1878. c0101534: 74 0a je c0101540 <schedule+0x57>
  1879. c0101536: a1 24 89 12 c0 mov 0xc0128924,%eax
  1880. c010153b: 8b 55 08 mov 0x8(%ebp),%edx
  1881. c010153e: 89 10 mov %edx,(%eax)
  1882. c0101540: a1 24 89 12 c0 mov 0xc0128924,%eax
  1883. c0101545: 85 c0 test %eax,%eax
  1884. c0101547: 75 1c jne c0101565 <schedule+0x7c>
  1885. c0101549: 83 ec 0c sub $0xc,%esp
  1886. c010154c: 68 48 32 10 c0 push $0xc0103248
  1887. c0101551: e8 8d 0e 00 00 call c01023e3 <uart_printf>
  1888. c0101556: 83 c4 10 add $0x10,%esp
  1889. c0101559: a1 20 89 12 c0 mov 0xc0128920,%eax
  1890. c010155e: a3 24 89 12 c0 mov %eax,0xc0128924
  1891. c0101563: eb 67 jmp c01015cc <schedule+0xe3>
  1892. c0101565: a1 24 89 12 c0 mov 0xc0128924,%eax
  1893. c010156a: 8b 50 04 mov 0x4(%eax),%edx
  1894. c010156d: a1 20 89 12 c0 mov 0xc0128920,%eax
  1895. c0101572: 39 c2 cmp %eax,%edx
  1896. c0101574: 75 07 jne c010157d <schedule+0x94>
  1897. c0101576: ba 6b 32 10 c0 mov $0xc010326b,%edx
  1898. c010157b: eb 05 jmp c0101582 <schedule+0x99>
  1899. c010157d: ba 76 32 10 c0 mov $0xc0103276,%edx
  1900. c0101582: a1 24 89 12 c0 mov 0xc0128924,%eax
  1901. c0101587: 8b 40 04 mov 0x4(%eax),%eax
  1902. c010158a: 83 ec 04 sub $0x4,%esp
  1903. c010158d: 52 push %edx
  1904. c010158e: 50 push %eax
  1905. c010158f: 68 77 32 10 c0 push $0xc0103277
  1906. c0101594: e8 4a 0e 00 00 call c01023e3 <uart_printf>
  1907. c0101599: 83 c4 10 add $0x10,%esp
  1908. c010159c: a1 24 89 12 c0 mov 0xc0128924,%eax
  1909. c01015a1: 8b 40 04 mov 0x4(%eax),%eax
  1910. c01015a4: a3 24 89 12 c0 mov %eax,0xc0128924
  1911. c01015a9: a1 24 89 12 c0 mov 0xc0128924,%eax
  1912. c01015ae: 85 c0 test %eax,%eax
  1913. c01015b0: 75 1a jne c01015cc <schedule+0xe3>
  1914. c01015b2: 83 ec 0c sub $0xc,%esp
  1915. c01015b5: 68 91 32 10 c0 push $0xc0103291
  1916. c01015ba: e8 24 0e 00 00 call c01023e3 <uart_printf>
  1917. c01015bf: 83 c4 10 add $0x10,%esp
  1918. c01015c2: a1 20 89 12 c0 mov 0xc0128920,%eax
  1919. c01015c7: a3 24 89 12 c0 mov %eax,0xc0128924
  1920. c01015cc: a1 24 89 12 c0 mov 0xc0128924,%eax
  1921. c01015d1: 83 ec 08 sub $0x8,%esp
  1922. c01015d4: 50 push %eax
  1923. c01015d5: 68 ab 32 10 c0 push $0xc01032ab
  1924. c01015da: e8 04 0e 00 00 call c01023e3 <uart_printf>
  1925. c01015df: 83 c4 10 add $0x10,%esp
  1926. c01015e2: a1 24 89 12 c0 mov 0xc0128924,%eax
  1927. c01015e7: 8b 00 mov (%eax),%eax
  1928. c01015e9: c9 leave
  1929. c01015ea: c3 ret
  1930.  
  1931. c01015eb <cmos_select>:
  1932. c01015eb: 55 push %ebp
  1933. c01015ec: 89 e5 mov %esp,%ebp
  1934. c01015ee: 83 ec 18 sub $0x18,%esp
  1935. c01015f1: 8b 55 08 mov 0x8(%ebp),%edx
  1936. c01015f4: 8b 45 0c mov 0xc(%ebp),%eax
  1937. c01015f7: 88 55 f4 mov %dl,-0xc(%ebp)
  1938. c01015fa: 88 45 f0 mov %al,-0x10(%ebp)
  1939. c01015fd: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  1940. c0101601: c1 e0 07 shl $0x7,%eax
  1941. c0101604: 89 c2 mov %eax,%edx
  1942. c0101606: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  1943. c010160a: 09 d0 or %edx,%eax
  1944. c010160c: 0f b6 c0 movzbl %al,%eax
  1945. c010160f: 83 ec 08 sub $0x8,%esp
  1946. c0101612: 50 push %eax
  1947. c0101613: 6a 70 push $0x70
  1948. c0101615: e8 1e 03 00 00 call c0101938 <outb>
  1949. c010161a: 83 c4 10 add $0x10,%esp
  1950. c010161d: 90 nop
  1951. c010161e: c9 leave
  1952. c010161f: c3 ret
  1953.  
  1954. c0101620 <cmos_read>:
  1955. c0101620: 55 push %ebp
  1956. c0101621: 89 e5 mov %esp,%ebp
  1957. c0101623: 83 ec 18 sub $0x18,%esp
  1958. c0101626: 8b 55 08 mov 0x8(%ebp),%edx
  1959. c0101629: 8b 45 0c mov 0xc(%ebp),%eax
  1960. c010162c: 88 55 f4 mov %dl,-0xc(%ebp)
  1961. c010162f: 88 45 f0 mov %al,-0x10(%ebp)
  1962. c0101632: 0f b6 55 f0 movzbl -0x10(%ebp),%edx
  1963. c0101636: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  1964. c010163a: 83 ec 08 sub $0x8,%esp
  1965. c010163d: 52 push %edx
  1966. c010163e: 50 push %eax
  1967. c010163f: e8 a7 ff ff ff call c01015eb <cmos_select>
  1968. c0101644: 83 c4 10 add $0x10,%esp
  1969. c0101647: 83 ec 0c sub $0xc,%esp
  1970. c010164a: 6a 71 push $0x71
  1971. c010164c: e8 06 03 00 00 call c0101957 <inb>
  1972. c0101651: 83 c4 10 add $0x10,%esp
  1973. c0101654: c9 leave
  1974. c0101655: c3 ret
  1975.  
  1976. c0101656 <cmos_write>:
  1977. c0101656: 55 push %ebp
  1978. c0101657: 89 e5 mov %esp,%ebp
  1979. c0101659: 83 ec 18 sub $0x18,%esp
  1980. c010165c: 8b 4d 08 mov 0x8(%ebp),%ecx
  1981. c010165f: 8b 55 0c mov 0xc(%ebp),%edx
  1982. c0101662: 8b 45 10 mov 0x10(%ebp),%eax
  1983. c0101665: 88 4d f4 mov %cl,-0xc(%ebp)
  1984. c0101668: 88 55 f0 mov %dl,-0x10(%ebp)
  1985. c010166b: 88 45 ec mov %al,-0x14(%ebp)
  1986. c010166e: 0f b6 55 ec movzbl -0x14(%ebp),%edx
  1987. c0101672: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  1988. c0101676: 83 ec 08 sub $0x8,%esp
  1989. c0101679: 52 push %edx
  1990. c010167a: 50 push %eax
  1991. c010167b: e8 6b ff ff ff call c01015eb <cmos_select>
  1992. c0101680: 83 c4 10 add $0x10,%esp
  1993. c0101683: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  1994. c0101687: 83 ec 08 sub $0x8,%esp
  1995. c010168a: 50 push %eax
  1996. c010168b: 6a 71 push $0x71
  1997. c010168d: e8 a6 02 00 00 call c0101938 <outb>
  1998. c0101692: 83 c4 10 add $0x10,%esp
  1999. c0101695: 90 nop
  2000. c0101696: c9 leave
  2001. c0101697: c3 ret
  2002.  
  2003. c0101698 <rtc_update_in_progess>:
  2004. c0101698: 55 push %ebp
  2005. c0101699: 89 e5 mov %esp,%ebp
  2006. c010169b: 83 ec 08 sub $0x8,%esp
  2007. c010169e: 83 ec 08 sub $0x8,%esp
  2008. c01016a1: 6a 0a push $0xa
  2009. c01016a3: 6a 70 push $0x70
  2010. c01016a5: e8 8e 02 00 00 call c0101938 <outb>
  2011. c01016aa: 83 c4 10 add $0x10,%esp
  2012. c01016ad: 83 ec 0c sub $0xc,%esp
  2013. c01016b0: 6a 71 push $0x71
  2014. c01016b2: e8 a0 02 00 00 call c0101957 <inb>
  2015. c01016b7: 83 c4 10 add $0x10,%esp
  2016. c01016ba: 83 e0 80 and $0xffffff80,%eax
  2017. c01016bd: c9 leave
  2018. c01016be: c3 ret
  2019.  
  2020. c01016bf <get_time>:
  2021. c01016bf: 55 push %ebp
  2022. c01016c0: 89 e5 mov %esp,%ebp
  2023. c01016c2: 83 ec 18 sub $0x18,%esp
  2024. c01016c5: e8 c9 f6 ff ff call c0100d93 <is_nmi_disabled>
  2025. c01016ca: 88 45 f6 mov %al,-0xa(%ebp)
  2026. c01016cd: 90 nop
  2027. c01016ce: e8 c5 ff ff ff call c0101698 <rtc_update_in_progess>
  2028. c01016d3: 84 c0 test %al,%al
  2029. c01016d5: 75 f7 jne c01016ce <get_time+0xf>
  2030. c01016d7: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2031. c01016db: 83 ec 08 sub $0x8,%esp
  2032. c01016de: 50 push %eax
  2033. c01016df: 6a 00 push $0x0
  2034. c01016e1: e8 3a ff ff ff call c0101620 <cmos_read>
  2035. c01016e6: 83 c4 10 add $0x10,%esp
  2036. c01016e9: 88 45 ef mov %al,-0x11(%ebp)
  2037. c01016ec: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2038. c01016f0: 83 ec 08 sub $0x8,%esp
  2039. c01016f3: 50 push %eax
  2040. c01016f4: 6a 02 push $0x2
  2041. c01016f6: e8 25 ff ff ff call c0101620 <cmos_read>
  2042. c01016fb: 83 c4 10 add $0x10,%esp
  2043. c01016fe: 88 45 f0 mov %al,-0x10(%ebp)
  2044. c0101701: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2045. c0101705: 83 ec 08 sub $0x8,%esp
  2046. c0101708: 50 push %eax
  2047. c0101709: 6a 04 push $0x4
  2048. c010170b: e8 10 ff ff ff call c0101620 <cmos_read>
  2049. c0101710: 83 c4 10 add $0x10,%esp
  2050. c0101713: 88 45 f1 mov %al,-0xf(%ebp)
  2051. c0101716: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2052. c010171a: 83 ec 08 sub $0x8,%esp
  2053. c010171d: 50 push %eax
  2054. c010171e: 6a 07 push $0x7
  2055. c0101720: e8 fb fe ff ff call c0101620 <cmos_read>
  2056. c0101725: 83 c4 10 add $0x10,%esp
  2057. c0101728: 88 45 f2 mov %al,-0xe(%ebp)
  2058. c010172b: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2059. c010172f: 83 ec 08 sub $0x8,%esp
  2060. c0101732: 50 push %eax
  2061. c0101733: 6a 08 push $0x8
  2062. c0101735: e8 e6 fe ff ff call c0101620 <cmos_read>
  2063. c010173a: 83 c4 10 add $0x10,%esp
  2064. c010173d: 88 45 f3 mov %al,-0xd(%ebp)
  2065. c0101740: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2066. c0101744: 83 ec 08 sub $0x8,%esp
  2067. c0101747: 50 push %eax
  2068. c0101748: 6a 09 push $0x9
  2069. c010174a: e8 d1 fe ff ff call c0101620 <cmos_read>
  2070. c010174f: 83 c4 10 add $0x10,%esp
  2071. c0101752: 88 45 f4 mov %al,-0xc(%ebp)
  2072. c0101755: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2073. c0101759: 83 ec 08 sub $0x8,%esp
  2074. c010175c: 50 push %eax
  2075. c010175d: 6a 32 push $0x32
  2076. c010175f: e8 bc fe ff ff call c0101620 <cmos_read>
  2077. c0101764: 83 c4 10 add $0x10,%esp
  2078. c0101767: 88 45 f5 mov %al,-0xb(%ebp)
  2079. c010176a: 0f b6 45 f6 movzbl -0xa(%ebp),%eax
  2080. c010176e: 83 ec 08 sub $0x8,%esp
  2081. c0101771: 50 push %eax
  2082. c0101772: 6a 0b push $0xb
  2083. c0101774: e8 a7 fe ff ff call c0101620 <cmos_read>
  2084. c0101779: 83 c4 10 add $0x10,%esp
  2085. c010177c: 88 45 f7 mov %al,-0x9(%ebp)
  2086. c010177f: 0f b6 45 f7 movzbl -0x9(%ebp),%eax
  2087. c0101783: 83 e0 04 and $0x4,%eax
  2088. c0101786: 85 c0 test %eax,%eax
  2089. c0101788: 0f 85 f6 00 00 00 jne c0101884 <get_time+0x1c5>
  2090. c010178e: 0f b6 45 ef movzbl -0x11(%ebp),%eax
  2091. c0101792: 83 e0 0f and $0xf,%eax
  2092. c0101795: 89 c1 mov %eax,%ecx
  2093. c0101797: 0f b6 45 ef movzbl -0x11(%ebp),%eax
  2094. c010179b: c0 e8 04 shr $0x4,%al
  2095. c010179e: 89 c2 mov %eax,%edx
  2096. c01017a0: 89 d0 mov %edx,%eax
  2097. c01017a2: c1 e0 02 shl $0x2,%eax
  2098. c01017a5: 01 d0 add %edx,%eax
  2099. c01017a7: 01 c0 add %eax,%eax
  2100. c01017a9: 01 c8 add %ecx,%eax
  2101. c01017ab: 88 45 ef mov %al,-0x11(%ebp)
  2102. c01017ae: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2103. c01017b2: 83 e0 0f and $0xf,%eax
  2104. c01017b5: 89 c1 mov %eax,%ecx
  2105. c01017b7: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2106. c01017bb: c0 e8 04 shr $0x4,%al
  2107. c01017be: 89 c2 mov %eax,%edx
  2108. c01017c0: 89 d0 mov %edx,%eax
  2109. c01017c2: c1 e0 02 shl $0x2,%eax
  2110. c01017c5: 01 d0 add %edx,%eax
  2111. c01017c7: 01 c0 add %eax,%eax
  2112. c01017c9: 01 c8 add %ecx,%eax
  2113. c01017cb: 88 45 f0 mov %al,-0x10(%ebp)
  2114. c01017ce: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2115. c01017d2: 83 e0 0f and $0xf,%eax
  2116. c01017d5: 89 c1 mov %eax,%ecx
  2117. c01017d7: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2118. c01017db: 83 e0 70 and $0x70,%eax
  2119. c01017de: 8d 50 0f lea 0xf(%eax),%edx
  2120. c01017e1: 85 c0 test %eax,%eax
  2121. c01017e3: 0f 48 c2 cmovs %edx,%eax
  2122. c01017e6: c1 f8 04 sar $0x4,%eax
  2123. c01017e9: 89 c2 mov %eax,%edx
  2124. c01017eb: 89 d0 mov %edx,%eax
  2125. c01017ed: c1 e0 02 shl $0x2,%eax
  2126. c01017f0: 01 d0 add %edx,%eax
  2127. c01017f2: 01 c0 add %eax,%eax
  2128. c01017f4: 01 c8 add %ecx,%eax
  2129. c01017f6: 89 c2 mov %eax,%edx
  2130. c01017f8: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2131. c01017fc: 83 e0 80 and $0xffffff80,%eax
  2132. c01017ff: 09 d0 or %edx,%eax
  2133. c0101801: 88 45 f1 mov %al,-0xf(%ebp)
  2134. c0101804: 0f b6 45 f2 movzbl -0xe(%ebp),%eax
  2135. c0101808: 83 e0 0f and $0xf,%eax
  2136. c010180b: 89 c1 mov %eax,%ecx
  2137. c010180d: 0f b6 45 f2 movzbl -0xe(%ebp),%eax
  2138. c0101811: c0 e8 04 shr $0x4,%al
  2139. c0101814: 89 c2 mov %eax,%edx
  2140. c0101816: 89 d0 mov %edx,%eax
  2141. c0101818: c1 e0 02 shl $0x2,%eax
  2142. c010181b: 01 d0 add %edx,%eax
  2143. c010181d: 01 c0 add %eax,%eax
  2144. c010181f: 01 c8 add %ecx,%eax
  2145. c0101821: 88 45 f2 mov %al,-0xe(%ebp)
  2146. c0101824: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
  2147. c0101828: 83 e0 0f and $0xf,%eax
  2148. c010182b: 89 c1 mov %eax,%ecx
  2149. c010182d: 0f b6 45 f3 movzbl -0xd(%ebp),%eax
  2150. c0101831: c0 e8 04 shr $0x4,%al
  2151. c0101834: 89 c2 mov %eax,%edx
  2152. c0101836: 89 d0 mov %edx,%eax
  2153. c0101838: c1 e0 02 shl $0x2,%eax
  2154. c010183b: 01 d0 add %edx,%eax
  2155. c010183d: 01 c0 add %eax,%eax
  2156. c010183f: 01 c8 add %ecx,%eax
  2157. c0101841: 88 45 f3 mov %al,-0xd(%ebp)
  2158. c0101844: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  2159. c0101848: 83 e0 0f and $0xf,%eax
  2160. c010184b: 89 c1 mov %eax,%ecx
  2161. c010184d: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  2162. c0101851: c0 e8 04 shr $0x4,%al
  2163. c0101854: 89 c2 mov %eax,%edx
  2164. c0101856: 89 d0 mov %edx,%eax
  2165. c0101858: c1 e0 02 shl $0x2,%eax
  2166. c010185b: 01 d0 add %edx,%eax
  2167. c010185d: 01 c0 add %eax,%eax
  2168. c010185f: 01 c8 add %ecx,%eax
  2169. c0101861: 88 45 f4 mov %al,-0xc(%ebp)
  2170. c0101864: 0f b6 45 f5 movzbl -0xb(%ebp),%eax
  2171. c0101868: 83 e0 0f and $0xf,%eax
  2172. c010186b: 89 c1 mov %eax,%ecx
  2173. c010186d: 0f b6 45 f5 movzbl -0xb(%ebp),%eax
  2174. c0101871: c0 e8 04 shr $0x4,%al
  2175. c0101874: 89 c2 mov %eax,%edx
  2176. c0101876: 89 d0 mov %edx,%eax
  2177. c0101878: c1 e0 02 shl $0x2,%eax
  2178. c010187b: 01 d0 add %edx,%eax
  2179. c010187d: 01 c0 add %eax,%eax
  2180. c010187f: 01 c8 add %ecx,%eax
  2181. c0101881: 88 45 f5 mov %al,-0xb(%ebp)
  2182. c0101884: 8b 45 08 mov 0x8(%ebp),%eax
  2183. c0101887: 0f b6 55 ef movzbl -0x11(%ebp),%edx
  2184. c010188b: 88 50 06 mov %dl,0x6(%eax)
  2185. c010188e: 8b 45 08 mov 0x8(%ebp),%eax
  2186. c0101891: 0f b6 55 f0 movzbl -0x10(%ebp),%edx
  2187. c0101895: 88 50 05 mov %dl,0x5(%eax)
  2188. c0101898: 8b 45 08 mov 0x8(%ebp),%eax
  2189. c010189b: 0f b6 55 f1 movzbl -0xf(%ebp),%edx
  2190. c010189f: 88 50 04 mov %dl,0x4(%eax)
  2191. c01018a2: 8b 45 08 mov 0x8(%ebp),%eax
  2192. c01018a5: 0f b6 55 f2 movzbl -0xe(%ebp),%edx
  2193. c01018a9: 88 50 03 mov %dl,0x3(%eax)
  2194. c01018ac: 8b 45 08 mov 0x8(%ebp),%eax
  2195. c01018af: 0f b6 55 f3 movzbl -0xd(%ebp),%edx
  2196. c01018b3: 88 50 02 mov %dl,0x2(%eax)
  2197. c01018b6: 8b 45 08 mov 0x8(%ebp),%eax
  2198. c01018b9: 0f b6 55 f4 movzbl -0xc(%ebp),%edx
  2199. c01018bd: 88 50 01 mov %dl,0x1(%eax)
  2200. c01018c0: 8b 45 08 mov 0x8(%ebp),%eax
  2201. c01018c3: 0f b6 55 f5 movzbl -0xb(%ebp),%edx
  2202. c01018c7: 88 10 mov %dl,(%eax)
  2203. c01018c9: 90 nop
  2204. c01018ca: c9 leave
  2205. c01018cb: c3 ret
  2206.  
  2207. c01018cc <kmemmove>:
  2208. c01018cc: 55 push %ebp
  2209. c01018cd: 89 e5 mov %esp,%ebp
  2210. c01018cf: 83 ec 10 sub $0x10,%esp
  2211. c01018d2: 8b 45 0c mov 0xc(%ebp),%eax
  2212. c01018d5: 89 45 f8 mov %eax,-0x8(%ebp)
  2213. c01018d8: 8b 45 08 mov 0x8(%ebp),%eax
  2214. c01018db: 89 45 fc mov %eax,-0x4(%ebp)
  2215. c01018de: eb 17 jmp c01018f7 <kmemmove+0x2b>
  2216. c01018e0: 8b 45 fc mov -0x4(%ebp),%eax
  2217. c01018e3: 8d 50 01 lea 0x1(%eax),%edx
  2218. c01018e6: 89 55 fc mov %edx,-0x4(%ebp)
  2219. c01018e9: 8b 55 f8 mov -0x8(%ebp),%edx
  2220. c01018ec: 8d 4a 01 lea 0x1(%edx),%ecx
  2221. c01018ef: 89 4d f8 mov %ecx,-0x8(%ebp)
  2222. c01018f2: 0f b6 12 movzbl (%edx),%edx
  2223. c01018f5: 88 10 mov %dl,(%eax)
  2224. c01018f7: 8b 45 10 mov 0x10(%ebp),%eax
  2225. c01018fa: 8d 50 ff lea -0x1(%eax),%edx
  2226. c01018fd: 89 55 10 mov %edx,0x10(%ebp)
  2227. c0101900: 85 c0 test %eax,%eax
  2228. c0101902: 75 dc jne c01018e0 <kmemmove+0x14>
  2229. c0101904: 90 nop
  2230. c0101905: c9 leave
  2231. c0101906: c3 ret
  2232.  
  2233. c0101907 <kmemset>:
  2234. c0101907: 55 push %ebp
  2235. c0101908: 89 e5 mov %esp,%ebp
  2236. c010190a: 83 ec 14 sub $0x14,%esp
  2237. c010190d: 8b 45 0c mov 0xc(%ebp),%eax
  2238. c0101910: 88 45 ec mov %al,-0x14(%ebp)
  2239. c0101913: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
  2240. c010191a: 8b 45 08 mov 0x8(%ebp),%eax
  2241. c010191d: 8d 50 01 lea 0x1(%eax),%edx
  2242. c0101920: 89 55 08 mov %edx,0x8(%ebp)
  2243. c0101923: 0f b6 55 ec movzbl -0x14(%ebp),%edx
  2244. c0101927: 88 10 mov %dl,(%eax)
  2245. c0101929: 83 45 fc 01 addl $0x1,-0x4(%ebp)
  2246. c010192d: 8b 45 fc mov -0x4(%ebp),%eax
  2247. c0101930: 3b 45 10 cmp 0x10(%ebp),%eax
  2248. c0101933: 72 e5 jb c010191a <kmemset+0x13>
  2249. c0101935: 90 nop
  2250. c0101936: c9 leave
  2251. c0101937: c3 ret
  2252.  
  2253. c0101938 <outb>:
  2254. c0101938: 55 push %ebp
  2255. c0101939: 89 e5 mov %esp,%ebp
  2256. c010193b: 83 ec 08 sub $0x8,%esp
  2257. c010193e: 8b 55 08 mov 0x8(%ebp),%edx
  2258. c0101941: 8b 45 0c mov 0xc(%ebp),%eax
  2259. c0101944: 66 89 55 fc mov %dx,-0x4(%ebp)
  2260. c0101948: 88 45 f8 mov %al,-0x8(%ebp)
  2261. c010194b: 0f b6 45 f8 movzbl -0x8(%ebp),%eax
  2262. c010194f: 0f b7 55 fc movzwl -0x4(%ebp),%edx
  2263. c0101953: ee out %al,(%dx)
  2264. c0101954: 90 nop
  2265. c0101955: c9 leave
  2266. c0101956: c3 ret
  2267.  
  2268. c0101957 <inb>:
  2269. c0101957: 55 push %ebp
  2270. c0101958: 89 e5 mov %esp,%ebp
  2271. c010195a: 83 ec 14 sub $0x14,%esp
  2272. c010195d: 8b 45 08 mov 0x8(%ebp),%eax
  2273. c0101960: 66 89 45 ec mov %ax,-0x14(%ebp)
  2274. c0101964: 0f b7 45 ec movzwl -0x14(%ebp),%eax
  2275. c0101968: 89 c2 mov %eax,%edx
  2276. c010196a: ec in (%dx),%al
  2277. c010196b: 88 45 ff mov %al,-0x1(%ebp)
  2278. c010196e: 0f b6 45 ff movzbl -0x1(%ebp),%eax
  2279. c0101972: c9 leave
  2280. c0101973: c3 ret
  2281.  
  2282. c0101974 <inw>:
  2283. c0101974: 55 push %ebp
  2284. c0101975: 89 e5 mov %esp,%ebp
  2285. c0101977: 83 ec 14 sub $0x14,%esp
  2286. c010197a: 8b 45 08 mov 0x8(%ebp),%eax
  2287. c010197d: 66 89 45 ec mov %ax,-0x14(%ebp)
  2288. c0101981: 0f b7 45 ec movzwl -0x14(%ebp),%eax
  2289. c0101985: 89 c2 mov %eax,%edx
  2290. c0101987: 66 ed in (%dx),%ax
  2291. c0101989: 66 89 45 fe mov %ax,-0x2(%ebp)
  2292. c010198d: 0f b7 45 fe movzwl -0x2(%ebp),%eax
  2293. c0101991: c9 leave
  2294. c0101992: c3 ret
  2295.  
  2296. c0101993 <outw>:
  2297. c0101993: 55 push %ebp
  2298. c0101994: 89 e5 mov %esp,%ebp
  2299. c0101996: 83 ec 08 sub $0x8,%esp
  2300. c0101999: 8b 55 08 mov 0x8(%ebp),%edx
  2301. c010199c: 8b 45 0c mov 0xc(%ebp),%eax
  2302. c010199f: 66 89 55 fc mov %dx,-0x4(%ebp)
  2303. c01019a3: 66 89 45 f8 mov %ax,-0x8(%ebp)
  2304. c01019a7: 0f b7 45 f8 movzwl -0x8(%ebp),%eax
  2305. c01019ab: 0f b7 55 fc movzwl -0x4(%ebp),%edx
  2306. c01019af: 66 ef out %ax,(%dx)
  2307. c01019b1: 90 nop
  2308. c01019b2: c9 leave
  2309. c01019b3: c3 ret
  2310.  
  2311. c01019b4 <reboot>:
  2312. c01019b4: 55 push %ebp
  2313. c01019b5: 89 e5 mov %esp,%ebp
  2314. c01019b7: 83 ec 10 sub $0x10,%esp
  2315. c01019ba: c6 45 ff 02 movb $0x2,-0x1(%ebp)
  2316. c01019be: eb 0d jmp c01019cd <reboot+0x19>
  2317. c01019c0: 6a 64 push $0x64
  2318. c01019c2: e8 90 ff ff ff call c0101957 <inb>
  2319. c01019c7: 83 c4 04 add $0x4,%esp
  2320. c01019ca: 88 45 ff mov %al,-0x1(%ebp)
  2321. c01019cd: 0f b6 45 ff movzbl -0x1(%ebp),%eax
  2322. c01019d1: 83 e0 02 and $0x2,%eax
  2323. c01019d4: 85 c0 test %eax,%eax
  2324. c01019d6: 75 e8 jne c01019c0 <reboot+0xc>
  2325. c01019d8: 68 fe 00 00 00 push $0xfe
  2326. c01019dd: 6a 64 push $0x64
  2327. c01019df: e8 54 ff ff ff call c0101938 <outb>
  2328. c01019e4: 83 c4 08 add $0x8,%esp
  2329. c01019e7: f4 hlt
  2330. c01019e8: 90 nop
  2331. c01019e9: c9 leave
  2332. c01019ea: c3 ret
  2333.  
  2334. c01019eb <identify>:
  2335. c01019eb: 55 push %ebp
  2336. c01019ec: 89 e5 mov %esp,%ebp
  2337. c01019ee: 53 push %ebx
  2338. c01019ef: 81 ec 24 02 00 00 sub $0x224,%esp
  2339. c01019f5: 8b 45 08 mov 0x8(%ebp),%eax
  2340. c01019f8: 89 85 e4 fd ff ff mov %eax,-0x21c(%ebp)
  2341. c01019fe: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  2342. c0101a04: 89 45 f4 mov %eax,-0xc(%ebp)
  2343. c0101a07: 31 c0 xor %eax,%eax
  2344. c0101a09: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2345. c0101a0f: 0f b7 40 12 movzwl 0x12(%eax),%eax
  2346. c0101a13: 0f b6 d0 movzbl %al,%edx
  2347. c0101a16: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2348. c0101a1c: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2349. c0101a20: 83 c0 06 add $0x6,%eax
  2350. c0101a23: 0f b7 c0 movzwl %ax,%eax
  2351. c0101a26: 83 ec 08 sub $0x8,%esp
  2352. c0101a29: 52 push %edx
  2353. c0101a2a: 50 push %eax
  2354. c0101a2b: e8 08 ff ff ff call c0101938 <outb>
  2355. c0101a30: 83 c4 10 add $0x10,%esp
  2356. c0101a33: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2357. c0101a39: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2358. c0101a3d: 83 c0 02 add $0x2,%eax
  2359. c0101a40: 0f b7 c0 movzwl %ax,%eax
  2360. c0101a43: 83 ec 08 sub $0x8,%esp
  2361. c0101a46: 6a 00 push $0x0
  2362. c0101a48: 50 push %eax
  2363. c0101a49: e8 ea fe ff ff call c0101938 <outb>
  2364. c0101a4e: 83 c4 10 add $0x10,%esp
  2365. c0101a51: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2366. c0101a57: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2367. c0101a5b: 83 c0 03 add $0x3,%eax
  2368. c0101a5e: 0f b7 c0 movzwl %ax,%eax
  2369. c0101a61: 83 ec 08 sub $0x8,%esp
  2370. c0101a64: 6a 00 push $0x0
  2371. c0101a66: 50 push %eax
  2372. c0101a67: e8 cc fe ff ff call c0101938 <outb>
  2373. c0101a6c: 83 c4 10 add $0x10,%esp
  2374. c0101a6f: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2375. c0101a75: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2376. c0101a79: 83 c0 04 add $0x4,%eax
  2377. c0101a7c: 0f b7 c0 movzwl %ax,%eax
  2378. c0101a7f: 83 ec 08 sub $0x8,%esp
  2379. c0101a82: 6a 00 push $0x0
  2380. c0101a84: 50 push %eax
  2381. c0101a85: e8 ae fe ff ff call c0101938 <outb>
  2382. c0101a8a: 83 c4 10 add $0x10,%esp
  2383. c0101a8d: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2384. c0101a93: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2385. c0101a97: 83 c0 05 add $0x5,%eax
  2386. c0101a9a: 0f b7 c0 movzwl %ax,%eax
  2387. c0101a9d: 83 ec 08 sub $0x8,%esp
  2388. c0101aa0: 6a 00 push $0x0
  2389. c0101aa2: 50 push %eax
  2390. c0101aa3: e8 90 fe ff ff call c0101938 <outb>
  2391. c0101aa8: 83 c4 10 add $0x10,%esp
  2392. c0101aab: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2393. c0101ab1: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2394. c0101ab5: 83 c0 07 add $0x7,%eax
  2395. c0101ab8: 0f b7 c0 movzwl %ax,%eax
  2396. c0101abb: 83 ec 08 sub $0x8,%esp
  2397. c0101abe: 68 ec 00 00 00 push $0xec
  2398. c0101ac3: 50 push %eax
  2399. c0101ac4: e8 6f fe ff ff call c0101938 <outb>
  2400. c0101ac9: 83 c4 10 add $0x10,%esp
  2401. c0101acc: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2402. c0101ad2: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2403. c0101ad6: 83 c0 07 add $0x7,%eax
  2404. c0101ad9: 0f b7 c0 movzwl %ax,%eax
  2405. c0101adc: 83 ec 0c sub $0xc,%esp
  2406. c0101adf: 50 push %eax
  2407. c0101ae0: e8 72 fe ff ff call c0101957 <inb>
  2408. c0101ae5: 83 c4 10 add $0x10,%esp
  2409. c0101ae8: 88 85 f1 fd ff ff mov %al,-0x20f(%ebp)
  2410. c0101aee: 80 bd f1 fd ff ff 00 cmpb $0x0,-0x20f(%ebp)
  2411. c0101af5: 75 2c jne c0101b23 <identify+0x138>
  2412. c0101af7: b8 00 00 00 00 mov $0x0,%eax
  2413. c0101afc: e9 70 01 00 00 jmp c0101c71 <identify+0x286>
  2414. c0101b01: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2415. c0101b07: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2416. c0101b0b: 83 c0 07 add $0x7,%eax
  2417. c0101b0e: 0f b7 c0 movzwl %ax,%eax
  2418. c0101b11: 83 ec 0c sub $0xc,%esp
  2419. c0101b14: 50 push %eax
  2420. c0101b15: e8 3d fe ff ff call c0101957 <inb>
  2421. c0101b1a: 83 c4 10 add $0x10,%esp
  2422. c0101b1d: 88 85 f1 fd ff ff mov %al,-0x20f(%ebp)
  2423. c0101b23: 0f b6 85 f1 fd ff ff movzbl -0x20f(%ebp),%eax
  2424. c0101b2a: 84 c0 test %al,%al
  2425. c0101b2c: 78 d3 js c0101b01 <identify+0x116>
  2426. c0101b2e: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2427. c0101b34: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2428. c0101b38: 83 c0 03 add $0x3,%eax
  2429. c0101b3b: 0f b7 c0 movzwl %ax,%eax
  2430. c0101b3e: 83 ec 0c sub $0xc,%esp
  2431. c0101b41: 50 push %eax
  2432. c0101b42: e8 10 fe ff ff call c0101957 <inb>
  2433. c0101b47: 83 c4 10 add $0x10,%esp
  2434. c0101b4a: 84 c0 test %al,%al
  2435. c0101b4c: 75 20 jne c0101b6e <identify+0x183>
  2436. c0101b4e: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2437. c0101b54: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2438. c0101b58: 83 c0 04 add $0x4,%eax
  2439. c0101b5b: 0f b7 c0 movzwl %ax,%eax
  2440. c0101b5e: 83 ec 0c sub $0xc,%esp
  2441. c0101b61: 50 push %eax
  2442. c0101b62: e8 f0 fd ff ff call c0101957 <inb>
  2443. c0101b67: 83 c4 10 add $0x10,%esp
  2444. c0101b6a: 84 c0 test %al,%al
  2445. c0101b6c: 74 0a je c0101b78 <identify+0x18d>
  2446. c0101b6e: b8 01 00 00 00 mov $0x1,%eax
  2447. c0101b73: e9 f9 00 00 00 jmp c0101c71 <identify+0x286>
  2448. c0101b78: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2449. c0101b7e: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2450. c0101b82: 83 c0 07 add $0x7,%eax
  2451. c0101b85: 0f b7 c0 movzwl %ax,%eax
  2452. c0101b88: 83 ec 0c sub $0xc,%esp
  2453. c0101b8b: 50 push %eax
  2454. c0101b8c: e8 c6 fd ff ff call c0101957 <inb>
  2455. c0101b91: 83 c4 10 add $0x10,%esp
  2456. c0101b94: 88 85 f1 fd ff ff mov %al,-0x20f(%ebp)
  2457. c0101b9a: 0f b6 85 f1 fd ff ff movzbl -0x20f(%ebp),%eax
  2458. c0101ba1: 83 e0 09 and $0x9,%eax
  2459. c0101ba4: 85 c0 test %eax,%eax
  2460. c0101ba6: 75 02 jne c0101baa <identify+0x1bf>
  2461. c0101ba8: eb ce jmp c0101b78 <identify+0x18d>
  2462. c0101baa: 90 nop
  2463. c0101bab: 0f b6 85 f1 fd ff ff movzbl -0x20f(%ebp),%eax
  2464. c0101bb2: 83 e0 01 and $0x1,%eax
  2465. c0101bb5: 85 c0 test %eax,%eax
  2466. c0101bb7: 74 0a je c0101bc3 <identify+0x1d8>
  2467. c0101bb9: b8 01 00 00 00 mov $0x1,%eax
  2468. c0101bbe: e9 ae 00 00 00 jmp c0101c71 <identify+0x286>
  2469. c0101bc3: 66 c7 85 f2 fd ff ff movw $0x0,-0x20e(%ebp)
  2470. c0101bca: 00 00
  2471. c0101bcc: eb 39 jmp c0101c07 <identify+0x21c>
  2472. c0101bce: 0f b7 9d f2 fd ff ff movzwl -0x20e(%ebp),%ebx
  2473. c0101bd5: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2474. c0101bdb: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2475. c0101bdf: 0f b7 c0 movzwl %ax,%eax
  2476. c0101be2: 83 ec 0c sub $0xc,%esp
  2477. c0101be5: 50 push %eax
  2478. c0101be6: e8 89 fd ff ff call c0101974 <inw>
  2479. c0101beb: 83 c4 10 add $0x10,%esp
  2480. c0101bee: 66 89 84 5d f4 fd ff mov %ax,-0x20c(%ebp,%ebx,2)
  2481. c0101bf5: ff
  2482. c0101bf6: 0f b7 85 f2 fd ff ff movzwl -0x20e(%ebp),%eax
  2483. c0101bfd: 83 c0 01 add $0x1,%eax
  2484. c0101c00: 66 89 85 f2 fd ff ff mov %ax,-0x20e(%ebp)
  2485. c0101c07: 66 81 bd f2 fd ff ff cmpw $0xff,-0x20e(%ebp)
  2486. c0101c0e: ff 00
  2487. c0101c10: 76 bc jbe c0101bce <identify+0x1e3>
  2488. c0101c12: 0f b7 85 9a fe ff ff movzwl -0x166(%ebp),%eax
  2489. c0101c19: 0f b7 c0 movzwl %ax,%eax
  2490. c0101c1c: 25 00 04 00 00 and $0x400,%eax
  2491. c0101c21: 85 c0 test %eax,%eax
  2492. c0101c23: 74 22 je c0101c47 <identify+0x25c>
  2493. c0101c25: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2494. c0101c2b: c6 40 01 01 movb $0x1,0x1(%eax)
  2495. c0101c2f: 8b 85 bc fe ff ff mov -0x144(%ebp),%eax
  2496. c0101c35: 8b 95 c0 fe ff ff mov -0x140(%ebp),%edx
  2497. c0101c3b: 8b 8d e4 fd ff ff mov -0x21c(%ebp),%ecx
  2498. c0101c41: 89 41 08 mov %eax,0x8(%ecx)
  2499. c0101c44: 89 51 0c mov %edx,0xc(%ecx)
  2500. c0101c47: 8b 95 6c fe ff ff mov -0x194(%ebp),%edx
  2501. c0101c4d: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2502. c0101c53: 89 50 04 mov %edx,0x4(%eax)
  2503. c0101c56: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2504. c0101c5c: 8b 40 04 mov 0x4(%eax),%eax
  2505. c0101c5f: 85 c0 test %eax,%eax
  2506. c0101c61: 75 09 jne c0101c6c <identify+0x281>
  2507. c0101c63: 8b 85 e4 fd ff ff mov -0x21c(%ebp),%eax
  2508. c0101c69: c6 00 00 movb $0x0,(%eax)
  2509. c0101c6c: b8 02 00 00 00 mov $0x2,%eax
  2510. c0101c71: 8b 4d f4 mov -0xc(%ebp),%ecx
  2511. c0101c74: 65 33 0d 14 00 00 00 xor %gs:0x14,%ecx
  2512. c0101c7b: 74 05 je c0101c82 <identify+0x297>
  2513. c0101c7d: e8 c4 f6 ff ff call c0101346 <__stack_chk_fail>
  2514. c0101c82: 8b 5d fc mov -0x4(%ebp),%ebx
  2515. c0101c85: c9 leave
  2516. c0101c86: c3 ret
  2517.  
  2518. c0101c87 <discover_devices>:
  2519. c0101c87: 55 push %ebp
  2520. c0101c88: 89 e5 mov %esp,%ebp
  2521. c0101c8a: 83 ec 28 sub $0x28,%esp
  2522. c0101c8d: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
  2523. c0101c94: 83 ec 0c sub $0xc,%esp
  2524. c0101c97: 68 f7 01 00 00 push $0x1f7
  2525. c0101c9c: e8 b6 fc ff ff call c0101957 <inb>
  2526. c0101ca1: 83 c4 10 add $0x10,%esp
  2527. c0101ca4: 88 45 e6 mov %al,-0x1a(%ebp)
  2528. c0101ca7: 83 ec 0c sub $0xc,%esp
  2529. c0101caa: 68 77 01 00 00 push $0x177
  2530. c0101caf: e8 a3 fc ff ff call c0101957 <inb>
  2531. c0101cb4: 83 c4 10 add $0x10,%esp
  2532. c0101cb7: 88 45 e7 mov %al,-0x19(%ebp)
  2533. c0101cba: 8b 45 e8 mov -0x18(%ebp),%eax
  2534. c0101cbd: 89 45 ec mov %eax,-0x14(%ebp)
  2535. c0101cc0: 80 7d e6 ff cmpb $0xff,-0x1a(%ebp)
  2536. c0101cc4: 75 0e jne c0101cd4 <discover_devices+0x4d>
  2537. c0101cc6: 80 7d e7 ff cmpb $0xff,-0x19(%ebp)
  2538. c0101cca: 75 08 jne c0101cd4 <discover_devices+0x4d>
  2539. c0101ccc: 8b 45 e8 mov -0x18(%ebp),%eax
  2540. c0101ccf: e9 b7 00 00 00 jmp c0101d8b <discover_devices+0x104>
  2541. c0101cd4: 80 7d e6 ff cmpb $0xff,-0x1a(%ebp)
  2542. c0101cd8: 74 06 je c0101ce0 <discover_devices+0x59>
  2543. c0101cda: 83 4d ec 01 orl $0x1,-0x14(%ebp)
  2544. c0101cde: eb 0a jmp c0101cea <discover_devices+0x63>
  2545. c0101ce0: 80 7d e7 ff cmpb $0xff,-0x19(%ebp)
  2546. c0101ce4: 74 04 je c0101cea <discover_devices+0x63>
  2547. c0101ce6: 83 4d ec 02 orl $0x2,-0x14(%ebp)
  2548. c0101cea: 8b 45 ec mov -0x14(%ebp),%eax
  2549. c0101ced: 83 e0 01 and $0x1,%eax
  2550. c0101cf0: 85 c0 test %eax,%eax
  2551. c0101cf2: 74 3f je c0101d33 <discover_devices+0xac>
  2552. c0101cf4: 8b 45 08 mov 0x8(%ebp),%eax
  2553. c0101cf7: 8b 00 mov (%eax),%eax
  2554. c0101cf9: 66 c7 40 10 f0 01 movw $0x1f0,0x10(%eax)
  2555. c0101cff: 8b 45 08 mov 0x8(%ebp),%eax
  2556. c0101d02: 8b 00 mov (%eax),%eax
  2557. c0101d04: 66 c7 40 12 a0 00 movw $0xa0,0x12(%eax)
  2558. c0101d0a: 8b 45 08 mov 0x8(%ebp),%eax
  2559. c0101d0d: 8b 00 mov (%eax),%eax
  2560. c0101d0f: 66 c7 40 14 e0 00 movw $0xe0,0x14(%eax)
  2561. c0101d15: 8b 45 08 mov 0x8(%ebp),%eax
  2562. c0101d18: 8b 00 mov (%eax),%eax
  2563. c0101d1a: 83 ec 0c sub $0xc,%esp
  2564. c0101d1d: 50 push %eax
  2565. c0101d1e: e8 c8 fc ff ff call c01019eb <identify>
  2566. c0101d23: 83 c4 10 add $0x10,%esp
  2567. c0101d26: 89 45 f0 mov %eax,-0x10(%ebp)
  2568. c0101d29: 83 7d f0 02 cmpl $0x2,-0x10(%ebp)
  2569. c0101d2d: 75 04 jne c0101d33 <discover_devices+0xac>
  2570. c0101d2f: 83 4d e8 01 orl $0x1,-0x18(%ebp)
  2571. c0101d33: 8b 45 ec mov -0x14(%ebp),%eax
  2572. c0101d36: 83 e0 02 and $0x2,%eax
  2573. c0101d39: 85 c0 test %eax,%eax
  2574. c0101d3b: 74 4b je c0101d88 <discover_devices+0x101>
  2575. c0101d3d: 8b 45 08 mov 0x8(%ebp),%eax
  2576. c0101d40: 83 c0 04 add $0x4,%eax
  2577. c0101d43: 8b 00 mov (%eax),%eax
  2578. c0101d45: 66 c7 40 10 70 01 movw $0x170,0x10(%eax)
  2579. c0101d4b: 8b 45 08 mov 0x8(%ebp),%eax
  2580. c0101d4e: 83 c0 04 add $0x4,%eax
  2581. c0101d51: 8b 00 mov (%eax),%eax
  2582. c0101d53: 66 c7 40 12 b0 00 movw $0xb0,0x12(%eax)
  2583. c0101d59: 8b 45 08 mov 0x8(%ebp),%eax
  2584. c0101d5c: 83 c0 04 add $0x4,%eax
  2585. c0101d5f: 8b 00 mov (%eax),%eax
  2586. c0101d61: 66 c7 40 14 f0 00 movw $0xf0,0x14(%eax)
  2587. c0101d67: 8b 45 08 mov 0x8(%ebp),%eax
  2588. c0101d6a: 83 c0 04 add $0x4,%eax
  2589. c0101d6d: 8b 00 mov (%eax),%eax
  2590. c0101d6f: 83 ec 0c sub $0xc,%esp
  2591. c0101d72: 50 push %eax
  2592. c0101d73: e8 73 fc ff ff call c01019eb <identify>
  2593. c0101d78: 83 c4 10 add $0x10,%esp
  2594. c0101d7b: 89 45 f4 mov %eax,-0xc(%ebp)
  2595. c0101d7e: 83 7d f4 02 cmpl $0x2,-0xc(%ebp)
  2596. c0101d82: 75 04 jne c0101d88 <discover_devices+0x101>
  2597. c0101d84: 83 4d e8 02 orl $0x2,-0x18(%ebp)
  2598. c0101d88: 8b 45 e8 mov -0x18(%ebp),%eax
  2599. c0101d8b: c9 leave
  2600. c0101d8c: c3 ret
  2601.  
  2602. c0101d8d <ata_init>:
  2603. c0101d8d: 55 push %ebp
  2604. c0101d8e: 89 e5 mov %esp,%ebp
  2605. c0101d90: 83 ec 18 sub $0x18,%esp
  2606. c0101d93: 83 ec 0c sub $0xc,%esp
  2607. c0101d96: ff 75 08 pushl 0x8(%ebp)
  2608. c0101d99: e8 e9 fe ff ff call c0101c87 <discover_devices>
  2609. c0101d9e: 83 c4 10 add $0x10,%esp
  2610. c0101da1: 89 45 f4 mov %eax,-0xc(%ebp)
  2611. c0101da4: 83 7d f4 00 cmpl $0x0,-0xc(%ebp)
  2612. c0101da8: 74 07 je c0101db1 <ata_init+0x24>
  2613. c0101daa: b8 00 00 00 00 mov $0x0,%eax
  2614. c0101daf: eb 05 jmp c0101db6 <ata_init+0x29>
  2615. c0101db1: b8 fd ff ff ff mov $0xfffffffd,%eax
  2616. c0101db6: c9 leave
  2617. c0101db7: c3 ret
  2618.  
  2619. c0101db8 <ata_io>:
  2620. c0101db8: 55 push %ebp
  2621. c0101db9: 89 e5 mov %esp,%ebp
  2622. c0101dbb: 53 push %ebx
  2623. c0101dbc: 83 ec 24 sub $0x24,%esp
  2624. c0101dbf: 8b 45 14 mov 0x14(%ebp),%eax
  2625. c0101dc2: 88 45 e4 mov %al,-0x1c(%ebp)
  2626. c0101dc5: 8b 45 0c mov 0xc(%ebp),%eax
  2627. c0101dc8: 0f b7 40 14 movzwl 0x14(%eax),%eax
  2628. c0101dcc: 89 c2 mov %eax,%edx
  2629. c0101dce: 8b 45 10 mov 0x10(%ebp),%eax
  2630. c0101dd1: c1 e8 18 shr $0x18,%eax
  2631. c0101dd4: 83 e0 0f and $0xf,%eax
  2632. c0101dd7: 09 d0 or %edx,%eax
  2633. c0101dd9: 0f b6 d0 movzbl %al,%edx
  2634. c0101ddc: 8b 45 0c mov 0xc(%ebp),%eax
  2635. c0101ddf: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2636. c0101de3: 83 c0 06 add $0x6,%eax
  2637. c0101de6: 0f b7 c0 movzwl %ax,%eax
  2638. c0101de9: 83 ec 08 sub $0x8,%esp
  2639. c0101dec: 52 push %edx
  2640. c0101ded: 50 push %eax
  2641. c0101dee: e8 45 fb ff ff call c0101938 <outb>
  2642. c0101df3: 83 c4 10 add $0x10,%esp
  2643. c0101df6: 0f b6 55 e4 movzbl -0x1c(%ebp),%edx
  2644. c0101dfa: 8b 45 0c mov 0xc(%ebp),%eax
  2645. c0101dfd: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2646. c0101e01: 83 c0 02 add $0x2,%eax
  2647. c0101e04: 0f b7 c0 movzwl %ax,%eax
  2648. c0101e07: 83 ec 08 sub $0x8,%esp
  2649. c0101e0a: 52 push %edx
  2650. c0101e0b: 50 push %eax
  2651. c0101e0c: e8 27 fb ff ff call c0101938 <outb>
  2652. c0101e11: 83 c4 10 add $0x10,%esp
  2653. c0101e14: 8b 45 10 mov 0x10(%ebp),%eax
  2654. c0101e17: 0f b6 d0 movzbl %al,%edx
  2655. c0101e1a: 8b 45 0c mov 0xc(%ebp),%eax
  2656. c0101e1d: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2657. c0101e21: 83 c0 03 add $0x3,%eax
  2658. c0101e24: 0f b7 c0 movzwl %ax,%eax
  2659. c0101e27: 83 ec 08 sub $0x8,%esp
  2660. c0101e2a: 52 push %edx
  2661. c0101e2b: 50 push %eax
  2662. c0101e2c: e8 07 fb ff ff call c0101938 <outb>
  2663. c0101e31: 83 c4 10 add $0x10,%esp
  2664. c0101e34: 8b 45 10 mov 0x10(%ebp),%eax
  2665. c0101e37: c1 e8 08 shr $0x8,%eax
  2666. c0101e3a: 0f b6 d0 movzbl %al,%edx
  2667. c0101e3d: 8b 45 0c mov 0xc(%ebp),%eax
  2668. c0101e40: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2669. c0101e44: 83 c0 04 add $0x4,%eax
  2670. c0101e47: 0f b7 c0 movzwl %ax,%eax
  2671. c0101e4a: 83 ec 08 sub $0x8,%esp
  2672. c0101e4d: 52 push %edx
  2673. c0101e4e: 50 push %eax
  2674. c0101e4f: e8 e4 fa ff ff call c0101938 <outb>
  2675. c0101e54: 83 c4 10 add $0x10,%esp
  2676. c0101e57: 8b 45 10 mov 0x10(%ebp),%eax
  2677. c0101e5a: c1 e8 10 shr $0x10,%eax
  2678. c0101e5d: 0f b6 d0 movzbl %al,%edx
  2679. c0101e60: 8b 45 0c mov 0xc(%ebp),%eax
  2680. c0101e63: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2681. c0101e67: 83 c0 05 add $0x5,%eax
  2682. c0101e6a: 0f b7 c0 movzwl %ax,%eax
  2683. c0101e6d: 83 ec 08 sub $0x8,%esp
  2684. c0101e70: 52 push %edx
  2685. c0101e71: 50 push %eax
  2686. c0101e72: e8 c1 fa ff ff call c0101938 <outb>
  2687. c0101e77: 83 c4 10 add $0x10,%esp
  2688. c0101e7a: 83 7d 18 00 cmpl $0x0,0x18(%ebp)
  2689. c0101e7e: 75 1d jne c0101e9d <ata_io+0xe5>
  2690. c0101e80: 8b 45 0c mov 0xc(%ebp),%eax
  2691. c0101e83: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2692. c0101e87: 83 c0 07 add $0x7,%eax
  2693. c0101e8a: 0f b7 c0 movzwl %ax,%eax
  2694. c0101e8d: 83 ec 08 sub $0x8,%esp
  2695. c0101e90: 6a 20 push $0x20
  2696. c0101e92: 50 push %eax
  2697. c0101e93: e8 a0 fa ff ff call c0101938 <outb>
  2698. c0101e98: 83 c4 10 add $0x10,%esp
  2699. c0101e9b: eb 1b jmp c0101eb8 <ata_io+0x100>
  2700. c0101e9d: 8b 45 0c mov 0xc(%ebp),%eax
  2701. c0101ea0: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2702. c0101ea4: 83 c0 07 add $0x7,%eax
  2703. c0101ea7: 0f b7 c0 movzwl %ax,%eax
  2704. c0101eaa: 83 ec 08 sub $0x8,%esp
  2705. c0101ead: 6a 30 push $0x30
  2706. c0101eaf: 50 push %eax
  2707. c0101eb0: e8 83 fa ff ff call c0101938 <outb>
  2708. c0101eb5: 83 c4 10 add $0x10,%esp
  2709. c0101eb8: c6 45 f0 00 movb $0x0,-0x10(%ebp)
  2710. c0101ebc: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
  2711. c0101ec3: eb 1d jmp c0101ee2 <ata_io+0x12a>
  2712. c0101ec5: 8b 45 0c mov 0xc(%ebp),%eax
  2713. c0101ec8: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2714. c0101ecc: 83 c0 07 add $0x7,%eax
  2715. c0101ecf: 0f b7 c0 movzwl %ax,%eax
  2716. c0101ed2: 83 ec 0c sub $0xc,%esp
  2717. c0101ed5: 50 push %eax
  2718. c0101ed6: e8 7c fa ff ff call c0101957 <inb>
  2719. c0101edb: 83 c4 10 add $0x10,%esp
  2720. c0101ede: 83 45 f4 01 addl $0x1,-0xc(%ebp)
  2721. c0101ee2: 83 7d f4 03 cmpl $0x3,-0xc(%ebp)
  2722. c0101ee6: 7e dd jle c0101ec5 <ata_io+0x10d>
  2723. c0101ee8: c6 45 ef 00 movb $0x0,-0x11(%ebp)
  2724. c0101eec: 0f b6 45 ef movzbl -0x11(%ebp),%eax
  2725. c0101ef0: 3a 45 e4 cmp -0x1c(%ebp),%al
  2726. c0101ef3: 72 0a jb c0101eff <ata_io+0x147>
  2727. c0101ef5: b8 00 00 00 00 mov $0x0,%eax
  2728. c0101efa: e9 f2 01 00 00 jmp c01020f1 <ata_io+0x339>
  2729. c0101eff: 8b 45 0c mov 0xc(%ebp),%eax
  2730. c0101f02: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2731. c0101f06: 83 c0 07 add $0x7,%eax
  2732. c0101f09: 0f b7 c0 movzwl %ax,%eax
  2733. c0101f0c: 83 ec 0c sub $0xc,%esp
  2734. c0101f0f: 50 push %eax
  2735. c0101f10: e8 42 fa ff ff call c0101957 <inb>
  2736. c0101f15: 83 c4 10 add $0x10,%esp
  2737. c0101f18: 88 45 f0 mov %al,-0x10(%ebp)
  2738. c0101f1b: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2739. c0101f1f: 84 c0 test %al,%al
  2740. c0101f21: 79 21 jns c0101f44 <ata_io+0x18c>
  2741. c0101f23: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2742. c0101f27: 83 e0 08 and $0x8,%eax
  2743. c0101f2a: 85 c0 test %eax,%eax
  2744. c0101f2c: 75 16 jne c0101f44 <ata_io+0x18c>
  2745. c0101f2e: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2746. c0101f32: 83 e0 01 and $0x1,%eax
  2747. c0101f35: 85 c0 test %eax,%eax
  2748. c0101f37: 75 0b jne c0101f44 <ata_io+0x18c>
  2749. c0101f39: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2750. c0101f3d: 83 e0 20 and $0x20,%eax
  2751. c0101f40: 85 c0 test %eax,%eax
  2752. c0101f42: 74 bb je c0101eff <ata_io+0x147>
  2753. c0101f44: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2754. c0101f48: 83 e0 01 and $0x1,%eax
  2755. c0101f4b: 85 c0 test %eax,%eax
  2756. c0101f4d: 75 0f jne c0101f5e <ata_io+0x1a6>
  2757. c0101f4f: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2758. c0101f53: 83 e0 20 and $0x20,%eax
  2759. c0101f56: 85 c0 test %eax,%eax
  2760. c0101f58: 0f 84 fc 00 00 00 je c010205a <ata_io+0x2a2>
  2761. c0101f5e: 0f b6 45 f0 movzbl -0x10(%ebp),%eax
  2762. c0101f62: 83 ec 04 sub $0x4,%esp
  2763. c0101f65: 50 push %eax
  2764. c0101f66: 68 b6 32 10 c0 push $0xc01032b6
  2765. c0101f6b: 6a 0c push $0xc
  2766. c0101f6d: e8 3e e4 ff ff call c01003b0 <kprintf>
  2767. c0101f72: 83 c4 10 add $0x10,%esp
  2768. c0101f75: 83 ec 0c sub $0xc,%esp
  2769. c0101f78: 68 f1 01 00 00 push $0x1f1
  2770. c0101f7d: e8 d5 f9 ff ff call c0101957 <inb>
  2771. c0101f82: 83 c4 10 add $0x10,%esp
  2772. c0101f85: 88 45 f1 mov %al,-0xf(%ebp)
  2773. c0101f88: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2774. c0101f8c: 83 e0 02 and $0x2,%eax
  2775. c0101f8f: 85 c0 test %eax,%eax
  2776. c0101f91: 74 12 je c0101fa5 <ata_io+0x1ed>
  2777. c0101f93: 83 ec 08 sub $0x8,%esp
  2778. c0101f96: 68 be 32 10 c0 push $0xc01032be
  2779. c0101f9b: 6a 04 push $0x4
  2780. c0101f9d: e8 0e e4 ff ff call c01003b0 <kprintf>
  2781. c0101fa2: 83 c4 10 add $0x10,%esp
  2782. c0101fa5: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2783. c0101fa9: 83 e0 04 and $0x4,%eax
  2784. c0101fac: 85 c0 test %eax,%eax
  2785. c0101fae: 74 12 je c0101fc2 <ata_io+0x20a>
  2786. c0101fb0: 83 ec 08 sub $0x8,%esp
  2787. c0101fb3: 68 c9 32 10 c0 push $0xc01032c9
  2788. c0101fb8: 6a 04 push $0x4
  2789. c0101fba: e8 f1 e3 ff ff call c01003b0 <kprintf>
  2790. c0101fbf: 83 c4 10 add $0x10,%esp
  2791. c0101fc2: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2792. c0101fc6: 83 e0 08 and $0x8,%eax
  2793. c0101fc9: 85 c0 test %eax,%eax
  2794. c0101fcb: 74 12 je c0101fdf <ata_io+0x227>
  2795. c0101fcd: 83 ec 08 sub $0x8,%esp
  2796. c0101fd0: 68 db 32 10 c0 push $0xc01032db
  2797. c0101fd5: 6a 04 push $0x4
  2798. c0101fd7: e8 d4 e3 ff ff call c01003b0 <kprintf>
  2799. c0101fdc: 83 c4 10 add $0x10,%esp
  2800. c0101fdf: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2801. c0101fe3: 83 e0 10 and $0x10,%eax
  2802. c0101fe6: 85 c0 test %eax,%eax
  2803. c0101fe8: 74 12 je c0101ffc <ata_io+0x244>
  2804. c0101fea: 83 ec 08 sub $0x8,%esp
  2805. c0101fed: 68 e6 32 10 c0 push $0xc01032e6
  2806. c0101ff2: 6a 04 push $0x4
  2807. c0101ff4: e8 b7 e3 ff ff call c01003b0 <kprintf>
  2808. c0101ff9: 83 c4 10 add $0x10,%esp
  2809. c0101ffc: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2810. c0102000: 83 e0 20 and $0x20,%eax
  2811. c0102003: 85 c0 test %eax,%eax
  2812. c0102005: 74 12 je c0102019 <ata_io+0x261>
  2813. c0102007: 83 ec 08 sub $0x8,%esp
  2814. c010200a: 68 fc 32 10 c0 push $0xc01032fc
  2815. c010200f: 6a 04 push $0x4
  2816. c0102011: e8 9a e3 ff ff call c01003b0 <kprintf>
  2817. c0102016: 83 c4 10 add $0x10,%esp
  2818. c0102019: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2819. c010201d: 83 e0 40 and $0x40,%eax
  2820. c0102020: 85 c0 test %eax,%eax
  2821. c0102022: 74 12 je c0102036 <ata_io+0x27e>
  2822. c0102024: 83 ec 08 sub $0x8,%esp
  2823. c0102027: 68 0d 33 10 c0 push $0xc010330d
  2824. c010202c: 6a 04 push $0x4
  2825. c010202e: e8 7d e3 ff ff call c01003b0 <kprintf>
  2826. c0102033: 83 c4 10 add $0x10,%esp
  2827. c0102036: 0f b6 45 f1 movzbl -0xf(%ebp),%eax
  2828. c010203a: 84 c0 test %al,%al
  2829. c010203c: 79 12 jns c0102050 <ata_io+0x298>
  2830. c010203e: 83 ec 08 sub $0x8,%esp
  2831. c0102041: 68 23 33 10 c0 push $0xc0103323
  2832. c0102046: 6a 04 push $0x4
  2833. c0102048: e8 63 e3 ff ff call c01003b0 <kprintf>
  2834. c010204d: 83 c4 10 add $0x10,%esp
  2835. c0102050: b8 ff ff ff ff mov $0xffffffff,%eax
  2836. c0102055: e9 97 00 00 00 jmp c01020f1 <ata_io+0x339>
  2837. c010205a: 66 c7 45 f2 00 00 movw $0x0,-0xe(%ebp)
  2838. c0102060: eb 78 jmp c01020da <ata_io+0x322>
  2839. c0102062: 83 7d 18 00 cmpl $0x0,0x18(%ebp)
  2840. c0102066: 75 33 jne c010209b <ata_io+0x2e3>
  2841. c0102068: 0f b6 45 ef movzbl -0x11(%ebp),%eax
  2842. c010206c: c1 e0 08 shl $0x8,%eax
  2843. c010206f: 89 c2 mov %eax,%edx
  2844. c0102071: 0f b7 45 f2 movzwl -0xe(%ebp),%eax
  2845. c0102075: 01 d0 add %edx,%eax
  2846. c0102077: 8d 14 00 lea (%eax,%eax,1),%edx
  2847. c010207a: 8b 45 08 mov 0x8(%ebp),%eax
  2848. c010207d: 8d 1c 02 lea (%edx,%eax,1),%ebx
  2849. c0102080: 8b 45 0c mov 0xc(%ebp),%eax
  2850. c0102083: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2851. c0102087: 0f b7 c0 movzwl %ax,%eax
  2852. c010208a: 83 ec 0c sub $0xc,%esp
  2853. c010208d: 50 push %eax
  2854. c010208e: e8 e1 f8 ff ff call c0101974 <inw>
  2855. c0102093: 83 c4 10 add $0x10,%esp
  2856. c0102096: 66 89 03 mov %ax,(%ebx)
  2857. c0102099: eb 34 jmp c01020cf <ata_io+0x317>
  2858. c010209b: 0f b6 45 ef movzbl -0x11(%ebp),%eax
  2859. c010209f: c1 e0 08 shl $0x8,%eax
  2860. c01020a2: 89 c2 mov %eax,%edx
  2861. c01020a4: 0f b7 45 f2 movzwl -0xe(%ebp),%eax
  2862. c01020a8: 01 d0 add %edx,%eax
  2863. c01020aa: 8d 14 00 lea (%eax,%eax,1),%edx
  2864. c01020ad: 8b 45 08 mov 0x8(%ebp),%eax
  2865. c01020b0: 01 d0 add %edx,%eax
  2866. c01020b2: 0f b7 00 movzwl (%eax),%eax
  2867. c01020b5: 0f b7 d0 movzwl %ax,%edx
  2868. c01020b8: 8b 45 0c mov 0xc(%ebp),%eax
  2869. c01020bb: 0f b7 40 10 movzwl 0x10(%eax),%eax
  2870. c01020bf: 0f b7 c0 movzwl %ax,%eax
  2871. c01020c2: 83 ec 08 sub $0x8,%esp
  2872. c01020c5: 52 push %edx
  2873. c01020c6: 50 push %eax
  2874. c01020c7: e8 c7 f8 ff ff call c0101993 <outw>
  2875. c01020cc: 83 c4 10 add $0x10,%esp
  2876. c01020cf: 0f b7 45 f2 movzwl -0xe(%ebp),%eax
  2877. c01020d3: 83 c0 01 add $0x1,%eax
  2878. c01020d6: 66 89 45 f2 mov %ax,-0xe(%ebp)
  2879. c01020da: 66 81 7d f2 ff 00 cmpw $0xff,-0xe(%ebp)
  2880. c01020e0: 76 80 jbe c0102062 <ata_io+0x2aa>
  2881. c01020e2: 0f b6 45 ef movzbl -0x11(%ebp),%eax
  2882. c01020e6: 83 c0 01 add $0x1,%eax
  2883. c01020e9: 88 45 ef mov %al,-0x11(%ebp)
  2884. c01020ec: e9 fb fd ff ff jmp c0101eec <ata_io+0x134>
  2885. c01020f1: 8b 5d fc mov -0x4(%ebp),%ebx
  2886. c01020f4: c9 leave
  2887. c01020f5: c3 ret
  2888.  
  2889. c01020f6 <ata_read>:
  2890. c01020f6: 55 push %ebp
  2891. c01020f7: 89 e5 mov %esp,%ebp
  2892. c01020f9: 83 ec 18 sub $0x18,%esp
  2893. c01020fc: 8b 45 14 mov 0x14(%ebp),%eax
  2894. c01020ff: 88 45 f4 mov %al,-0xc(%ebp)
  2895. c0102102: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  2896. c0102106: 83 ec 0c sub $0xc,%esp
  2897. c0102109: 6a 00 push $0x0
  2898. c010210b: 50 push %eax
  2899. c010210c: ff 75 10 pushl 0x10(%ebp)
  2900. c010210f: ff 75 0c pushl 0xc(%ebp)
  2901. c0102112: ff 75 08 pushl 0x8(%ebp)
  2902. c0102115: e8 9e fc ff ff call c0101db8 <ata_io>
  2903. c010211a: 83 c4 20 add $0x20,%esp
  2904. c010211d: c9 leave
  2905. c010211e: c3 ret
  2906.  
  2907. c010211f <ata_write>:
  2908. c010211f: 55 push %ebp
  2909. c0102120: 89 e5 mov %esp,%ebp
  2910. c0102122: 83 ec 18 sub $0x18,%esp
  2911. c0102125: 8b 45 14 mov 0x14(%ebp),%eax
  2912. c0102128: 88 45 f4 mov %al,-0xc(%ebp)
  2913. c010212b: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  2914. c010212f: 83 ec 0c sub $0xc,%esp
  2915. c0102132: 6a 01 push $0x1
  2916. c0102134: 50 push %eax
  2917. c0102135: ff 75 10 pushl 0x10(%ebp)
  2918. c0102138: ff 75 0c pushl 0xc(%ebp)
  2919. c010213b: ff 75 08 pushl 0x8(%ebp)
  2920. c010213e: e8 75 fc ff ff call c0101db8 <ata_io>
  2921. c0102143: 83 c4 20 add $0x20,%esp
  2922. c0102146: c9 leave
  2923. c0102147: c3 ret
  2924.  
  2925. c0102148 <check_signature>:
  2926. c0102148: 55 push %ebp
  2927. c0102149: 89 e5 mov %esp,%ebp
  2928. c010214b: 8b 45 08 mov 0x8(%ebp),%eax
  2929. c010214e: 0f b7 00 movzwl (%eax),%eax
  2930. c0102151: 66 3d 45 46 cmp $0x4645,%ax
  2931. c0102155: 75 34 jne c010218b <check_signature+0x43>
  2932. c0102157: 8b 45 08 mov 0x8(%ebp),%eax
  2933. c010215a: 83 c0 02 add $0x2,%eax
  2934. c010215d: 0f b7 00 movzwl (%eax),%eax
  2935. c0102160: 66 3d 49 20 cmp $0x2049,%ax
  2936. c0102164: 75 25 jne c010218b <check_signature+0x43>
  2937. c0102166: 8b 45 08 mov 0x8(%ebp),%eax
  2938. c0102169: 83 c0 04 add $0x4,%eax
  2939. c010216c: 0f b7 00 movzwl (%eax),%eax
  2940. c010216f: 66 3d 50 41 cmp $0x4150,%ax
  2941. c0102173: 75 16 jne c010218b <check_signature+0x43>
  2942. c0102175: 8b 45 08 mov 0x8(%ebp),%eax
  2943. c0102178: 83 c0 06 add $0x6,%eax
  2944. c010217b: 0f b7 00 movzwl (%eax),%eax
  2945. c010217e: 66 3d 52 54 cmp $0x5452,%ax
  2946. c0102182: 75 07 jne c010218b <check_signature+0x43>
  2947. c0102184: b8 01 00 00 00 mov $0x1,%eax
  2948. c0102189: eb 05 jmp c0102190 <check_signature+0x48>
  2949. c010218b: b8 00 00 00 00 mov $0x0,%eax
  2950. c0102190: 5d pop %ebp
  2951. c0102191: c3 ret
  2952.  
  2953. c0102192 <get_revision>:
  2954. c0102192: 55 push %ebp
  2955. c0102193: 89 e5 mov %esp,%ebp
  2956. c0102195: 8b 45 08 mov 0x8(%ebp),%eax
  2957. c0102198: 83 c0 08 add $0x8,%eax
  2958. c010219b: 0f b7 00 movzwl (%eax),%eax
  2959. c010219e: 0f b7 c0 movzwl %ax,%eax
  2960. c01021a1: c1 e0 10 shl $0x10,%eax
  2961. c01021a4: 89 c2 mov %eax,%edx
  2962. c01021a6: 8b 45 08 mov 0x8(%ebp),%eax
  2963. c01021a9: 83 c0 0a add $0xa,%eax
  2964. c01021ac: 0f b7 00 movzwl (%eax),%eax
  2965. c01021af: 0f b7 c0 movzwl %ax,%eax
  2966. c01021b2: 09 d0 or %edx,%eax
  2967. c01021b4: 5d pop %ebp
  2968. c01021b5: c3 ret
  2969.  
  2970. c01021b6 <get_header_size>:
  2971. c01021b6: 55 push %ebp
  2972. c01021b7: 89 e5 mov %esp,%ebp
  2973. c01021b9: 8b 45 08 mov 0x8(%ebp),%eax
  2974. c01021bc: 83 c0 0e add $0xe,%eax
  2975. c01021bf: 0f b7 00 movzwl (%eax),%eax
  2976. c01021c2: 0f b7 c0 movzwl %ax,%eax
  2977. c01021c5: c1 e0 10 shl $0x10,%eax
  2978. c01021c8: 89 c2 mov %eax,%edx
  2979. c01021ca: 8b 45 08 mov 0x8(%ebp),%eax
  2980. c01021cd: 83 c0 0c add $0xc,%eax
  2981. c01021d0: 0f b7 00 movzwl (%eax),%eax
  2982. c01021d3: 0f b7 c0 movzwl %ax,%eax
  2983. c01021d6: 09 d0 or %edx,%eax
  2984. c01021d8: 5d pop %ebp
  2985. c01021d9: c3 ret
  2986.  
  2987. c01021da <get_crc32>:
  2988. c01021da: 55 push %ebp
  2989. c01021db: 89 e5 mov %esp,%ebp
  2990. c01021dd: 8b 45 08 mov 0x8(%ebp),%eax
  2991. c01021e0: 83 c0 10 add $0x10,%eax
  2992. c01021e3: 0f b7 00 movzwl (%eax),%eax
  2993. c01021e6: 0f b7 c0 movzwl %ax,%eax
  2994. c01021e9: c1 e0 10 shl $0x10,%eax
  2995. c01021ec: 89 c2 mov %eax,%edx
  2996. c01021ee: 8b 45 08 mov 0x8(%ebp),%eax
  2997. c01021f1: 83 c0 12 add $0x12,%eax
  2998. c01021f4: 0f b7 00 movzwl (%eax),%eax
  2999. c01021f7: 0f b7 c0 movzwl %ax,%eax
  3000. c01021fa: 09 d0 or %edx,%eax
  3001. c01021fc: 5d pop %ebp
  3002. c01021fd: c3 ret
  3003.  
  3004. c01021fe <discover_gpt>:
  3005. c01021fe: 55 push %ebp
  3006. c01021ff: 89 e5 mov %esp,%ebp
  3007. c0102201: 81 ec 28 02 00 00 sub $0x228,%esp
  3008. c0102207: 8b 45 08 mov 0x8(%ebp),%eax
  3009. c010220a: 89 85 e4 fd ff ff mov %eax,-0x21c(%ebp)
  3010. c0102210: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  3011. c0102216: 89 45 f4 mov %eax,-0xc(%ebp)
  3012. c0102219: 31 c0 xor %eax,%eax
  3013. c010221b: 6a 01 push $0x1
  3014. c010221d: 6a 01 push $0x1
  3015. c010221f: ff b5 e4 fd ff ff pushl -0x21c(%ebp)
  3016. c0102225: 8d 85 f4 fd ff ff lea -0x20c(%ebp),%eax
  3017. c010222b: 50 push %eax
  3018. c010222c: e8 c5 fe ff ff call c01020f6 <ata_read>
  3019. c0102231: 83 c4 10 add $0x10,%esp
  3020. c0102234: 83 ec 0c sub $0xc,%esp
  3021. c0102237: 8d 85 f4 fd ff ff lea -0x20c(%ebp),%eax
  3022. c010223d: 50 push %eax
  3023. c010223e: e8 05 ff ff ff call c0102148 <check_signature>
  3024. c0102243: 83 c4 10 add $0x10,%esp
  3025. c0102246: 85 c0 test %eax,%eax
  3026. c0102248: 74 07 je c0102251 <discover_gpt+0x53>
  3027. c010224a: b8 00 00 00 00 mov $0x0,%eax
  3028. c010224f: eb 05 jmp c0102256 <discover_gpt+0x58>
  3029. c0102251: b8 fd ff ff ff mov $0xfffffffd,%eax
  3030. c0102256: 8b 55 f4 mov -0xc(%ebp),%edx
  3031. c0102259: 65 33 15 14 00 00 00 xor %gs:0x14,%edx
  3032. c0102260: 74 05 je c0102267 <discover_gpt+0x69>
  3033. c0102262: e8 df f0 ff ff call c0101346 <__stack_chk_fail>
  3034. c0102267: c9 leave
  3035. c0102268: c3 ret
  3036.  
  3037. c0102269 <uart_puts>:
  3038. c0102269: 55 push %ebp
  3039. c010226a: 89 e5 mov %esp,%ebp
  3040. c010226c: 83 ec 18 sub $0x18,%esp
  3041. c010226f: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
  3042. c0102276: eb 1e jmp c0102296 <uart_puts+0x2d>
  3043. c0102278: 8b 55 f4 mov -0xc(%ebp),%edx
  3044. c010227b: 8b 45 08 mov 0x8(%ebp),%eax
  3045. c010227e: 01 d0 add %edx,%eax
  3046. c0102280: 0f b6 00 movzbl (%eax),%eax
  3047. c0102283: 0f be c0 movsbl %al,%eax
  3048. c0102286: 83 ec 0c sub $0xc,%esp
  3049. c0102289: 50 push %eax
  3050. c010228a: e8 bf 02 00 00 call c010254e <uart_write>
  3051. c010228f: 83 c4 10 add $0x10,%esp
  3052. c0102292: 83 45 f4 01 addl $0x1,-0xc(%ebp)
  3053. c0102296: 8b 55 f4 mov -0xc(%ebp),%edx
  3054. c0102299: 8b 45 08 mov 0x8(%ebp),%eax
  3055. c010229c: 01 d0 add %edx,%eax
  3056. c010229e: 0f b6 00 movzbl (%eax),%eax
  3057. c01022a1: 84 c0 test %al,%al
  3058. c01022a3: 75 d3 jne c0102278 <uart_puts+0xf>
  3059. c01022a5: 90 nop
  3060. c01022a6: c9 leave
  3061. c01022a7: c3 ret
  3062.  
  3063. c01022a8 <uart_dump_frame>:
  3064. c01022a8: 55 push %ebp
  3065. c01022a9: 89 e5 mov %esp,%ebp
  3066. c01022ab: 83 ec 08 sub $0x8,%esp
  3067. c01022ae: 8b 45 08 mov 0x8(%ebp),%eax
  3068. c01022b1: 8b 48 08 mov 0x8(%eax),%ecx
  3069. c01022b4: 8b 45 08 mov 0x8(%ebp),%eax
  3070. c01022b7: 8b 50 04 mov 0x4(%eax),%edx
  3071. c01022ba: 8b 45 08 mov 0x8(%ebp),%eax
  3072. c01022bd: 8b 00 mov (%eax),%eax
  3073. c01022bf: 51 push %ecx
  3074. c01022c0: 52 push %edx
  3075. c01022c1: 50 push %eax
  3076. c01022c2: 68 30 33 10 c0 push $0xc0103330
  3077. c01022c7: e8 17 01 00 00 call c01023e3 <uart_printf>
  3078. c01022cc: 83 c4 10 add $0x10,%esp
  3079. c01022cf: 8b 45 08 mov 0x8(%ebp),%eax
  3080. c01022d2: 8b 48 14 mov 0x14(%eax),%ecx
  3081. c01022d5: 8b 45 08 mov 0x8(%ebp),%eax
  3082. c01022d8: 8b 50 10 mov 0x10(%eax),%edx
  3083. c01022db: 8b 45 08 mov 0x8(%ebp),%eax
  3084. c01022de: 8b 40 0c mov 0xc(%eax),%eax
  3085. c01022e1: 51 push %ecx
  3086. c01022e2: 52 push %edx
  3087. c01022e3: 50 push %eax
  3088. c01022e4: 68 50 33 10 c0 push $0xc0103350
  3089. c01022e9: e8 f5 00 00 00 call c01023e3 <uart_printf>
  3090. c01022ee: 83 c4 10 add $0x10,%esp
  3091. c01022f1: 8b 45 08 mov 0x8(%ebp),%eax
  3092. c01022f4: 8b 48 20 mov 0x20(%eax),%ecx
  3093. c01022f7: 8b 45 08 mov 0x8(%ebp),%eax
  3094. c01022fa: 8b 50 1c mov 0x1c(%eax),%edx
  3095. c01022fd: 8b 45 08 mov 0x8(%ebp),%eax
  3096. c0102300: 8b 40 18 mov 0x18(%eax),%eax
  3097. c0102303: 51 push %ecx
  3098. c0102304: 52 push %edx
  3099. c0102305: 50 push %eax
  3100. c0102306: 68 70 33 10 c0 push $0xc0103370
  3101. c010230b: e8 d3 00 00 00 call c01023e3 <uart_printf>
  3102. c0102310: 83 c4 10 add $0x10,%esp
  3103. c0102313: 8b 45 08 mov 0x8(%ebp),%eax
  3104. c0102316: 8b 48 2c mov 0x2c(%eax),%ecx
  3105. c0102319: 8b 45 08 mov 0x8(%ebp),%eax
  3106. c010231c: 8b 50 28 mov 0x28(%eax),%edx
  3107. c010231f: 8b 45 08 mov 0x8(%ebp),%eax
  3108. c0102322: 8b 40 24 mov 0x24(%eax),%eax
  3109. c0102325: 51 push %ecx
  3110. c0102326: 52 push %edx
  3111. c0102327: 50 push %eax
  3112. c0102328: 68 90 33 10 c0 push $0xc0103390
  3113. c010232d: e8 b1 00 00 00 call c01023e3 <uart_printf>
  3114. c0102332: 83 c4 10 add $0x10,%esp
  3115. c0102335: 8b 45 08 mov 0x8(%ebp),%eax
  3116. c0102338: 8b 50 34 mov 0x34(%eax),%edx
  3117. c010233b: 8b 45 08 mov 0x8(%ebp),%eax
  3118. c010233e: 8b 40 30 mov 0x30(%eax),%eax
  3119. c0102341: 83 ec 04 sub $0x4,%esp
  3120. c0102344: 52 push %edx
  3121. c0102345: 50 push %eax
  3122. c0102346: 68 af 33 10 c0 push $0xc01033af
  3123. c010234b: e8 93 00 00 00 call c01023e3 <uart_printf>
  3124. c0102350: 83 c4 10 add $0x10,%esp
  3125. c0102353: 90 nop
  3126. c0102354: c9 leave
  3127. c0102355: c3 ret
  3128.  
  3129. c0102356 <uart_puti>:
  3130. c0102356: 55 push %ebp
  3131. c0102357: 89 e5 mov %esp,%ebp
  3132. c0102359: 53 push %ebx
  3133. c010235a: 83 ec 54 sub $0x54,%esp
  3134. c010235d: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  3135. c0102363: 89 45 f4 mov %eax,-0xc(%ebp)
  3136. c0102366: 31 c0 xor %eax,%eax
  3137. c0102368: 83 7d 0c 01 cmpl $0x1,0xc(%ebp)
  3138. c010236c: 7e 5e jle c01023cc <uart_puti+0x76>
  3139. c010236e: 83 7d 0c 24 cmpl $0x24,0xc(%ebp)
  3140. c0102372: 7f 58 jg c01023cc <uart_puti+0x76>
  3141. c0102374: 8d 45 b3 lea -0x4d(%ebp),%eax
  3142. c0102377: 83 c0 40 add $0x40,%eax
  3143. c010237a: 89 45 ac mov %eax,-0x54(%ebp)
  3144. c010237d: 8b 45 ac mov -0x54(%ebp),%eax
  3145. c0102380: c6 00 00 movb $0x0,(%eax)
  3146. c0102383: 83 6d ac 01 subl $0x1,-0x54(%ebp)
  3147. c0102387: 8b 0d 44 51 10 c0 mov 0xc0105144,%ecx
  3148. c010238d: 8b 5d 0c mov 0xc(%ebp),%ebx
  3149. c0102390: 8b 45 08 mov 0x8(%ebp),%eax
  3150. c0102393: ba 00 00 00 00 mov $0x0,%edx
  3151. c0102398: f7 f3 div %ebx
  3152. c010239a: 89 d0 mov %edx,%eax
  3153. c010239c: 01 c8 add %ecx,%eax
  3154. c010239e: 0f b6 10 movzbl (%eax),%edx
  3155. c01023a1: 8b 45 ac mov -0x54(%ebp),%eax
  3156. c01023a4: 88 10 mov %dl,(%eax)
  3157. c01023a6: 8b 4d 0c mov 0xc(%ebp),%ecx
  3158. c01023a9: 8b 45 08 mov 0x8(%ebp),%eax
  3159. c01023ac: ba 00 00 00 00 mov $0x0,%edx
  3160. c01023b1: f7 f1 div %ecx
  3161. c01023b3: 89 45 08 mov %eax,0x8(%ebp)
  3162. c01023b6: 83 7d 08 00 cmpl $0x0,0x8(%ebp)
  3163. c01023ba: 75 c7 jne c0102383 <uart_puti+0x2d>
  3164. c01023bc: 83 ec 0c sub $0xc,%esp
  3165. c01023bf: ff 75 ac pushl -0x54(%ebp)
  3166. c01023c2: e8 a2 fe ff ff call c0102269 <uart_puts>
  3167. c01023c7: 83 c4 10 add $0x10,%esp
  3168. c01023ca: eb 01 jmp c01023cd <uart_puti+0x77>
  3169. c01023cc: 90 nop
  3170. c01023cd: 8b 45 f4 mov -0xc(%ebp),%eax
  3171. c01023d0: 65 33 05 14 00 00 00 xor %gs:0x14,%eax
  3172. c01023d7: 74 05 je c01023de <uart_puti+0x88>
  3173. c01023d9: e8 68 ef ff ff call c0101346 <__stack_chk_fail>
  3174. c01023de: 8b 5d fc mov -0x4(%ebp),%ebx
  3175. c01023e1: c9 leave
  3176. c01023e2: c3 ret
  3177.  
  3178. c01023e3 <uart_printf>:
  3179. c01023e3: 55 push %ebp
  3180. c01023e4: 89 e5 mov %esp,%ebp
  3181. c01023e6: 83 ec 28 sub $0x28,%esp
  3182. c01023e9: 8b 45 08 mov 0x8(%ebp),%eax
  3183. c01023ec: 89 45 e4 mov %eax,-0x1c(%ebp)
  3184. c01023ef: 65 a1 14 00 00 00 mov %gs:0x14,%eax
  3185. c01023f5: 89 45 f4 mov %eax,-0xc(%ebp)
  3186. c01023f8: 31 c0 xor %eax,%eax
  3187. c01023fa: 8d 45 0c lea 0xc(%ebp),%eax
  3188. c01023fd: 89 45 ec mov %eax,-0x14(%ebp)
  3189. c0102400: 8b 45 e4 mov -0x1c(%ebp),%eax
  3190. c0102403: 89 45 f0 mov %eax,-0x10(%ebp)
  3191. c0102406: e9 c3 00 00 00 jmp c01024ce <uart_printf+0xeb>
  3192. c010240b: 8b 45 f0 mov -0x10(%ebp),%eax
  3193. c010240e: 0f b6 00 movzbl (%eax),%eax
  3194. c0102411: 3c 25 cmp $0x25,%al
  3195. c0102413: 0f 85 9c 00 00 00 jne c01024b5 <uart_printf+0xd2>
  3196. c0102419: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  3197. c010241d: 8b 45 f0 mov -0x10(%ebp),%eax
  3198. c0102420: 0f b6 00 movzbl (%eax),%eax
  3199. c0102423: 0f be c0 movsbl %al,%eax
  3200. c0102426: 83 f8 64 cmp $0x64,%eax
  3201. c0102429: 74 1e je c0102449 <uart_printf+0x66>
  3202. c010242b: 83 f8 64 cmp $0x64,%eax
  3203. c010242e: 7f 0a jg c010243a <uart_printf+0x57>
  3204. c0102430: 83 f8 63 cmp $0x63,%eax
  3205. c0102433: 74 63 je c0102498 <uart_printf+0xb5>
  3206. c0102435: e9 90 00 00 00 jmp c01024ca <uart_printf+0xe7>
  3207. c010243a: 83 f8 73 cmp $0x73,%eax
  3208. c010243d: 74 40 je c010247f <uart_printf+0x9c>
  3209. c010243f: 83 f8 78 cmp $0x78,%eax
  3210. c0102442: 74 20 je c0102464 <uart_printf+0x81>
  3211. c0102444: e9 81 00 00 00 jmp c01024ca <uart_printf+0xe7>
  3212. c0102449: 8b 45 ec mov -0x14(%ebp),%eax
  3213. c010244c: 8d 50 04 lea 0x4(%eax),%edx
  3214. c010244f: 89 55 ec mov %edx,-0x14(%ebp)
  3215. c0102452: 8b 00 mov (%eax),%eax
  3216. c0102454: 83 ec 08 sub $0x8,%esp
  3217. c0102457: 6a 0a push $0xa
  3218. c0102459: 50 push %eax
  3219. c010245a: e8 f7 fe ff ff call c0102356 <uart_puti>
  3220. c010245f: 83 c4 10 add $0x10,%esp
  3221. c0102462: eb 66 jmp c01024ca <uart_printf+0xe7>
  3222. c0102464: 8b 45 ec mov -0x14(%ebp),%eax
  3223. c0102467: 8d 50 04 lea 0x4(%eax),%edx
  3224. c010246a: 89 55 ec mov %edx,-0x14(%ebp)
  3225. c010246d: 8b 00 mov (%eax),%eax
  3226. c010246f: 83 ec 08 sub $0x8,%esp
  3227. c0102472: 6a 10 push $0x10
  3228. c0102474: 50 push %eax
  3229. c0102475: e8 dc fe ff ff call c0102356 <uart_puti>
  3230. c010247a: 83 c4 10 add $0x10,%esp
  3231. c010247d: eb 4b jmp c01024ca <uart_printf+0xe7>
  3232. c010247f: 8b 45 ec mov -0x14(%ebp),%eax
  3233. c0102482: 8d 50 04 lea 0x4(%eax),%edx
  3234. c0102485: 89 55 ec mov %edx,-0x14(%ebp)
  3235. c0102488: 8b 00 mov (%eax),%eax
  3236. c010248a: 83 ec 0c sub $0xc,%esp
  3237. c010248d: 50 push %eax
  3238. c010248e: e8 d6 fd ff ff call c0102269 <uart_puts>
  3239. c0102493: 83 c4 10 add $0x10,%esp
  3240. c0102496: eb 32 jmp c01024ca <uart_printf+0xe7>
  3241. c0102498: 8b 45 ec mov -0x14(%ebp),%eax
  3242. c010249b: 8d 50 04 lea 0x4(%eax),%edx
  3243. c010249e: 89 55 ec mov %edx,-0x14(%ebp)
  3244. c01024a1: 8b 00 mov (%eax),%eax
  3245. c01024a3: 0f be c0 movsbl %al,%eax
  3246. c01024a6: 83 ec 0c sub $0xc,%esp
  3247. c01024a9: 50 push %eax
  3248. c01024aa: e8 9f 00 00 00 call c010254e <uart_write>
  3249. c01024af: 83 c4 10 add $0x10,%esp
  3250. c01024b2: 90 nop
  3251. c01024b3: eb 15 jmp c01024ca <uart_printf+0xe7>
  3252. c01024b5: 8b 45 f0 mov -0x10(%ebp),%eax
  3253. c01024b8: 0f b6 00 movzbl (%eax),%eax
  3254. c01024bb: 0f be c0 movsbl %al,%eax
  3255. c01024be: 83 ec 0c sub $0xc,%esp
  3256. c01024c1: 50 push %eax
  3257. c01024c2: e8 87 00 00 00 call c010254e <uart_write>
  3258. c01024c7: 83 c4 10 add $0x10,%esp
  3259. c01024ca: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  3260. c01024ce: 8b 45 f0 mov -0x10(%ebp),%eax
  3261. c01024d1: 0f b6 00 movzbl (%eax),%eax
  3262. c01024d4: 84 c0 test %al,%al
  3263. c01024d6: 0f 85 2f ff ff ff jne c010240b <uart_printf+0x28>
  3264. c01024dc: 90 nop
  3265. c01024dd: 8b 45 f4 mov -0xc(%ebp),%eax
  3266. c01024e0: 65 33 05 14 00 00 00 xor %gs:0x14,%eax
  3267. c01024e7: 74 05 je c01024ee <uart_printf+0x10b>
  3268. c01024e9: e8 58 ee ff ff call c0101346 <__stack_chk_fail>
  3269. c01024ee: c9 leave
  3270. c01024ef: c3 ret
  3271.  
  3272. c01024f0 <uart_received>:
  3273. c01024f0: 55 push %ebp
  3274. c01024f1: 89 e5 mov %esp,%ebp
  3275. c01024f3: 83 ec 08 sub $0x8,%esp
  3276. c01024f6: 83 ec 0c sub $0xc,%esp
  3277. c01024f9: 68 fd 03 00 00 push $0x3fd
  3278. c01024fe: e8 54 f4 ff ff call c0101957 <inb>
  3279. c0102503: 83 c4 10 add $0x10,%esp
  3280. c0102506: 0f b6 c0 movzbl %al,%eax
  3281. c0102509: 83 e0 01 and $0x1,%eax
  3282. c010250c: c9 leave
  3283. c010250d: c3 ret
  3284.  
  3285. c010250e <uart_read>:
  3286. c010250e: 55 push %ebp
  3287. c010250f: 89 e5 mov %esp,%ebp
  3288. c0102511: 83 ec 08 sub $0x8,%esp
  3289. c0102514: 90 nop
  3290. c0102515: e8 d6 ff ff ff call c01024f0 <uart_received>
  3291. c010251a: 85 c0 test %eax,%eax
  3292. c010251c: 74 f7 je c0102515 <uart_read+0x7>
  3293. c010251e: 83 ec 0c sub $0xc,%esp
  3294. c0102521: 68 f8 03 00 00 push $0x3f8
  3295. c0102526: e8 2c f4 ff ff call c0101957 <inb>
  3296. c010252b: 83 c4 10 add $0x10,%esp
  3297. c010252e: c9 leave
  3298. c010252f: c3 ret
  3299.  
  3300. c0102530 <uart_is_transmit_empty>:
  3301. c0102530: 55 push %ebp
  3302. c0102531: 89 e5 mov %esp,%ebp
  3303. c0102533: 83 ec 08 sub $0x8,%esp
  3304. c0102536: 83 ec 0c sub $0xc,%esp
  3305. c0102539: 68 fd 03 00 00 push $0x3fd
  3306. c010253e: e8 14 f4 ff ff call c0101957 <inb>
  3307. c0102543: 83 c4 10 add $0x10,%esp
  3308. c0102546: 0f b6 c0 movzbl %al,%eax
  3309. c0102549: 83 e0 20 and $0x20,%eax
  3310. c010254c: c9 leave
  3311. c010254d: c3 ret
  3312.  
  3313. c010254e <uart_write>:
  3314. c010254e: 55 push %ebp
  3315. c010254f: 89 e5 mov %esp,%ebp
  3316. c0102551: 83 ec 18 sub $0x18,%esp
  3317. c0102554: 8b 45 08 mov 0x8(%ebp),%eax
  3318. c0102557: 88 45 f4 mov %al,-0xc(%ebp)
  3319. c010255a: 90 nop
  3320. c010255b: e8 d0 ff ff ff call c0102530 <uart_is_transmit_empty>
  3321. c0102560: 85 c0 test %eax,%eax
  3322. c0102562: 74 f7 je c010255b <uart_write+0xd>
  3323. c0102564: 0f b6 45 f4 movzbl -0xc(%ebp),%eax
  3324. c0102568: 0f b6 c0 movzbl %al,%eax
  3325. c010256b: 83 ec 08 sub $0x8,%esp
  3326. c010256e: 50 push %eax
  3327. c010256f: 68 f8 03 00 00 push $0x3f8
  3328. c0102574: e8 bf f3 ff ff call c0101938 <outb>
  3329. c0102579: 83 c4 10 add $0x10,%esp
  3330. c010257c: 90 nop
  3331. c010257d: c9 leave
  3332. c010257e: c3 ret
  3333.  
  3334. c010257f <uart_init>:
  3335. c010257f: 55 push %ebp
  3336. c0102580: 89 e5 mov %esp,%ebp
  3337. c0102582: 83 ec 18 sub $0x18,%esp
  3338. c0102585: b8 00 c2 01 00 mov $0x1c200,%eax
  3339. c010258a: ba 00 00 00 00 mov $0x0,%edx
  3340. c010258f: f7 75 08 divl 0x8(%ebp)
  3341. c0102592: 66 89 45 f6 mov %ax,-0xa(%ebp)
  3342. c0102596: 83 ec 08 sub $0x8,%esp
  3343. c0102599: 6a 00 push $0x0
  3344. c010259b: 68 f9 03 00 00 push $0x3f9
  3345. c01025a0: e8 93 f3 ff ff call c0101938 <outb>
  3346. c01025a5: 83 c4 10 add $0x10,%esp
  3347. c01025a8: 83 ec 08 sub $0x8,%esp
  3348. c01025ab: 68 80 00 00 00 push $0x80
  3349. c01025b0: 68 fb 03 00 00 push $0x3fb
  3350. c01025b5: e8 7e f3 ff ff call c0101938 <outb>
  3351. c01025ba: 83 c4 10 add $0x10,%esp
  3352. c01025bd: 0f b7 45 f6 movzwl -0xa(%ebp),%eax
  3353. c01025c1: 0f b6 c0 movzbl %al,%eax
  3354. c01025c4: 83 ec 08 sub $0x8,%esp
  3355. c01025c7: 50 push %eax
  3356. c01025c8: 68 f8 03 00 00 push $0x3f8
  3357. c01025cd: e8 66 f3 ff ff call c0101938 <outb>
  3358. c01025d2: 83 c4 10 add $0x10,%esp
  3359. c01025d5: 0f b7 45 f6 movzwl -0xa(%ebp),%eax
  3360. c01025d9: 66 c1 e8 08 shr $0x8,%ax
  3361. c01025dd: 0f b6 c0 movzbl %al,%eax
  3362. c01025e0: 83 ec 08 sub $0x8,%esp
  3363. c01025e3: 50 push %eax
  3364. c01025e4: 68 f9 03 00 00 push $0x3f9
  3365. c01025e9: e8 4a f3 ff ff call c0101938 <outb>
  3366. c01025ee: 83 c4 10 add $0x10,%esp
  3367. c01025f1: 83 ec 08 sub $0x8,%esp
  3368. c01025f4: 6a 03 push $0x3
  3369. c01025f6: 68 fb 03 00 00 push $0x3fb
  3370. c01025fb: e8 38 f3 ff ff call c0101938 <outb>
  3371. c0102600: 83 c4 10 add $0x10,%esp
  3372. c0102603: 83 ec 08 sub $0x8,%esp
  3373. c0102606: 68 c7 00 00 00 push $0xc7
  3374. c010260b: 68 fa 03 00 00 push $0x3fa
  3375. c0102610: e8 23 f3 ff ff call c0101938 <outb>
  3376. c0102615: 83 c4 10 add $0x10,%esp
  3377. c0102618: 83 ec 08 sub $0x8,%esp
  3378. c010261b: 6a 0b push $0xb
  3379. c010261d: 68 fc 03 00 00 push $0x3fc
  3380. c0102622: e8 11 f3 ff ff call c0101938 <outb>
  3381. c0102627: 83 c4 10 add $0x10,%esp
  3382. c010262a: b8 00 00 00 00 mov $0x0,%eax
  3383. c010262f: c9 leave
  3384. c0102630: c3 ret
  3385.  
  3386. c0102631 <blank_directory>:
  3387. c0102631: 55 push %ebp
  3388. c0102632: 89 e5 mov %esp,%ebp
  3389. c0102634: 83 ec 10 sub $0x10,%esp
  3390. c0102637: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
  3391. c010263e: eb 19 jmp c0102659 <blank_directory+0x28>
  3392. c0102640: 8b 45 fc mov -0x4(%ebp),%eax
  3393. c0102643: 8d 14 85 00 00 00 00 lea 0x0(,%eax,4),%edx
  3394. c010264a: 8b 45 08 mov 0x8(%ebp),%eax
  3395. c010264d: 01 d0 add %edx,%eax
  3396. c010264f: c7 00 00 00 00 00 movl $0x0,(%eax)
  3397. c0102655: 83 45 fc 01 addl $0x1,-0x4(%ebp)
  3398. c0102659: 81 7d fc ff 03 00 00 cmpl $0x3ff,-0x4(%ebp)
  3399. c0102660: 7e de jle c0102640 <blank_directory+0xf>
  3400. c0102662: 90 nop
  3401. c0102663: c9 leave
  3402. c0102664: c3 ret
  3403.  
  3404. c0102665 <vmm_create_context>:
  3405. c0102665: 55 push %ebp
  3406. c0102666: 89 e5 mov %esp,%ebp
  3407. c0102668: 83 ec 18 sub $0x18,%esp
  3408. c010266b: 83 ec 0c sub $0xc,%esp
  3409. c010266e: 68 ec 33 10 c0 push $0xc01033ec
  3410. c0102673: e8 6b fd ff ff call c01023e3 <uart_printf>
  3411. c0102678: 83 c4 10 add $0x10,%esp
  3412. c010267b: e8 1e 04 00 00 call c0102a9e <pmm_alloc>
  3413. c0102680: 89 45 f4 mov %eax,-0xc(%ebp)
  3414. c0102683: 83 ec 0c sub $0xc,%esp
  3415. c0102686: 68 fc 33 10 c0 push $0xc01033fc
  3416. c010268b: e8 53 fd ff ff call c01023e3 <uart_printf>
  3417. c0102690: 83 c4 10 add $0x10,%esp
  3418. c0102693: 8b 45 f4 mov -0xc(%ebp),%eax
  3419. c0102696: 8b 00 mov (%eax),%eax
  3420. c0102698: 83 ec 0c sub $0xc,%esp
  3421. c010269b: 50 push %eax
  3422. c010269c: e8 90 ff ff ff call c0102631 <blank_directory>
  3423. c01026a1: 83 c4 10 add $0x10,%esp
  3424. c01026a4: 8b 45 f4 mov -0xc(%ebp),%eax
  3425. c01026a7: 8b 00 mov (%eax),%eax
  3426. c01026a9: 8d 90 00 10 00 00 lea 0x1000(%eax),%edx
  3427. c01026af: 8b 45 f4 mov -0xc(%ebp),%eax
  3428. c01026b2: 8b 00 mov (%eax),%eax
  3429. c01026b4: 89 02 mov %eax,(%edx)
  3430. c01026b6: 8b 45 f4 mov -0xc(%ebp),%eax
  3431. c01026b9: c9 leave
  3432. c01026ba: c3 ret
  3433.  
  3434. c01026bb <vmm_map_consecutive>:
  3435. c01026bb: 55 push %ebp
  3436. c01026bc: 89 e5 mov %esp,%ebp
  3437. c01026be: 83 ec 18 sub $0x18,%esp
  3438. c01026c1: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
  3439. c01026c8: eb 2b jmp c01026f5 <vmm_map_consecutive+0x3a>
  3440. c01026ca: e8 cf 03 00 00 call c0102a9e <pmm_alloc>
  3441. c01026cf: 89 45 f4 mov %eax,-0xc(%ebp)
  3442. c01026d2: 8b 45 10 mov 0x10(%ebp),%eax
  3443. c01026d5: c1 e0 0c shl $0xc,%eax
  3444. c01026d8: 89 c2 mov %eax,%edx
  3445. c01026da: 8b 45 0c mov 0xc(%ebp),%eax
  3446. c01026dd: 01 d0 add %edx,%eax
  3447. c01026df: 83 ec 04 sub $0x4,%esp
  3448. c01026e2: ff 75 f4 pushl -0xc(%ebp)
  3449. c01026e5: 50 push %eax
  3450. c01026e6: ff 75 08 pushl 0x8(%ebp)
  3451. c01026e9: e8 c7 01 00 00 call c01028b5 <vmm_map_page>
  3452. c01026ee: 83 c4 10 add $0x10,%esp
  3453. c01026f1: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  3454. c01026f5: 8b 45 f0 mov -0x10(%ebp),%eax
  3455. c01026f8: 3b 45 10 cmp 0x10(%ebp),%eax
  3456. c01026fb: 72 cd jb c01026ca <vmm_map_consecutive+0xf>
  3457. c01026fd: 8b 45 0c mov 0xc(%ebp),%eax
  3458. c0102700: c9 leave
  3459. c0102701: c3 ret
  3460.  
  3461. c0102702 <vmm_find_free_area>:
  3462. c0102702: 55 push %ebp
  3463. c0102703: 89 e5 mov %esp,%ebp
  3464. c0102705: 83 ec 18 sub $0x18,%esp
  3465. c0102708: 83 ec 08 sub $0x8,%esp
  3466. c010270b: ff 75 08 pushl 0x8(%ebp)
  3467. c010270e: 68 0b 34 10 c0 push $0xc010340b
  3468. c0102713: e8 cb fc ff ff call c01023e3 <uart_printf>
  3469. c0102718: 83 c4 10 add $0x10,%esp
  3470. c010271b: 8b 45 08 mov 0x8(%ebp),%eax
  3471. c010271e: 8b 00 mov (%eax),%eax
  3472. c0102720: 89 45 f4 mov %eax,-0xc(%ebp)
  3473. c0102723: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
  3474. c010272a: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
  3475. c0102731: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
  3476. c0102738: eb 68 jmp c01027a2 <vmm_find_free_area+0xa0>
  3477. c010273a: 83 ec 08 sub $0x8,%esp
  3478. c010273d: ff 75 f0 pushl -0x10(%ebp)
  3479. c0102740: 68 1b 34 10 c0 push $0xc010341b
  3480. c0102745: e8 99 fc ff ff call c01023e3 <uart_printf>
  3481. c010274a: 83 c4 10 add $0x10,%esp
  3482. c010274d: 8b 45 f0 mov -0x10(%ebp),%eax
  3483. c0102750: 8d 14 85 00 00 00 00 lea 0x0(,%eax,4),%edx
  3484. c0102757: 8b 45 f4 mov -0xc(%ebp),%eax
  3485. c010275a: 01 d0 add %edx,%eax
  3486. c010275c: 8b 00 mov (%eax),%eax
  3487. c010275e: 83 e0 01 and $0x1,%eax
  3488. c0102761: 85 c0 test %eax,%eax
  3489. c0102763: 74 2b je c0102790 <vmm_find_free_area+0x8e>
  3490. c0102765: 83 45 e8 01 addl $0x1,-0x18(%ebp)
  3491. c0102769: 83 7d ec 00 cmpl $0x0,-0x14(%ebp)
  3492. c010276d: 75 14 jne c0102783 <vmm_find_free_area+0x81>
  3493. c010276f: 8b 45 f0 mov -0x10(%ebp),%eax
  3494. c0102772: 8d 14 85 00 00 00 00 lea 0x0(,%eax,4),%edx
  3495. c0102779: 8b 45 f4 mov -0xc(%ebp),%eax
  3496. c010277c: 01 d0 add %edx,%eax
  3497. c010277e: 8b 00 mov (%eax),%eax
  3498. c0102780: 89 45 ec mov %eax,-0x14(%ebp)
  3499. c0102783: 8b 45 e8 mov -0x18(%ebp),%eax
  3500. c0102786: 3b 45 0c cmp 0xc(%ebp),%eax
  3501. c0102789: 72 13 jb c010279e <vmm_find_free_area+0x9c>
  3502. c010278b: 8b 45 ec mov -0x14(%ebp),%eax
  3503. c010278e: eb 20 jmp c01027b0 <vmm_find_free_area+0xae>
  3504. c0102790: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
  3505. c0102797: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp)
  3506. c010279e: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  3507. c01027a2: 81 7d f0 ff 03 00 00 cmpl $0x3ff,-0x10(%ebp)
  3508. c01027a9: 7e 8f jle c010273a <vmm_find_free_area+0x38>
  3509. c01027ab: b8 00 00 00 00 mov $0x0,%eax
  3510. c01027b0: c9 leave
  3511. c01027b1: c3 ret
  3512.  
  3513. c01027b2 <vmm_alloc_pages>:
  3514. c01027b2: 55 push %ebp
  3515. c01027b3: 89 e5 mov %esp,%ebp
  3516. c01027b5: 83 ec 18 sub $0x18,%esp
  3517. c01027b8: 83 ec 08 sub $0x8,%esp
  3518. c01027bb: ff 75 0c pushl 0xc(%ebp)
  3519. c01027be: 68 24 34 10 c0 push $0xc0103424
  3520. c01027c3: e8 1b fc ff ff call c01023e3 <uart_printf>
  3521. c01027c8: 83 c4 10 add $0x10,%esp
  3522. c01027cb: 83 ec 08 sub $0x8,%esp
  3523. c01027ce: ff 75 0c pushl 0xc(%ebp)
  3524. c01027d1: ff 75 08 pushl 0x8(%ebp)
  3525. c01027d4: e8 29 ff ff ff call c0102702 <vmm_find_free_area>
  3526. c01027d9: 83 c4 10 add $0x10,%esp
  3527. c01027dc: 89 45 f4 mov %eax,-0xc(%ebp)
  3528. c01027df: 83 ec 08 sub $0x8,%esp
  3529. c01027e2: ff 75 f4 pushl -0xc(%ebp)
  3530. c01027e5: 68 3a 34 10 c0 push $0xc010343a
  3531. c01027ea: e8 f4 fb ff ff call c01023e3 <uart_printf>
  3532. c01027ef: 83 c4 10 add $0x10,%esp
  3533. c01027f2: 83 7d f4 00 cmpl $0x0,-0xc(%ebp)
  3534. c01027f6: 75 07 jne c01027ff <vmm_alloc_pages+0x4d>
  3535. c01027f8: b8 00 00 00 00 mov $0x0,%eax
  3536. c01027fd: eb 17 jmp c0102816 <vmm_alloc_pages+0x64>
  3537. c01027ff: 83 ec 04 sub $0x4,%esp
  3538. c0102802: ff 75 0c pushl 0xc(%ebp)
  3539. c0102805: ff 75 f4 pushl -0xc(%ebp)
  3540. c0102808: ff 75 08 pushl 0x8(%ebp)
  3541. c010280b: e8 ab fe ff ff call c01026bb <vmm_map_consecutive>
  3542. c0102810: 83 c4 10 add $0x10,%esp
  3543. c0102813: 8b 45 f4 mov -0xc(%ebp),%eax
  3544. c0102816: c9 leave
  3545. c0102817: c3 ret
  3546.  
  3547. c0102818 <vmm_alloc>:
  3548. c0102818: 55 push %ebp
  3549. c0102819: 89 e5 mov %esp,%ebp
  3550. c010281b: 83 ec 18 sub $0x18,%esp
  3551. c010281e: 8b 45 0c mov 0xc(%ebp),%eax
  3552. c0102821: 83 e8 01 sub $0x1,%eax
  3553. c0102824: c1 e8 0c shr $0xc,%eax
  3554. c0102827: 83 c0 01 add $0x1,%eax
  3555. c010282a: 89 45 f4 mov %eax,-0xc(%ebp)
  3556. c010282d: 83 ec 08 sub $0x8,%esp
  3557. c0102830: ff 75 f4 pushl -0xc(%ebp)
  3558. c0102833: ff 75 08 pushl 0x8(%ebp)
  3559. c0102836: e8 77 ff ff ff call c01027b2 <vmm_alloc_pages>
  3560. c010283b: 83 c4 10 add $0x10,%esp
  3561. c010283e: c9 leave
  3562. c010283f: c3 ret
  3563.  
  3564. c0102840 <clear_flags>:
  3565. c0102840: 55 push %ebp
  3566. c0102841: 89 e5 mov %esp,%ebp
  3567. c0102843: 8b 45 08 mov 0x8(%ebp),%eax
  3568. c0102846: 25 00 f0 ff ff and $0xfffff000,%eax
  3569. c010284b: 5d pop %ebp
  3570. c010284c: c3 ret
  3571.  
  3572. c010284d <table_put>:
  3573. c010284d: 55 push %ebp
  3574. c010284e: 89 e5 mov %esp,%ebp
  3575. c0102850: 53 push %ebx
  3576. c0102851: 8b 45 0c mov 0xc(%ebp),%eax
  3577. c0102854: 8d 14 85 00 00 00 00 lea 0x0(,%eax,4),%edx
  3578. c010285b: 8b 45 08 mov 0x8(%ebp),%eax
  3579. c010285e: 8d 1c 02 lea (%edx,%eax,1),%ebx
  3580. c0102861: ff 75 10 pushl 0x10(%ebp)
  3581. c0102864: e8 d7 ff ff ff call c0102840 <clear_flags>
  3582. c0102869: 83 c4 04 add $0x4,%esp
  3583. c010286c: 0b 45 14 or 0x14(%ebp),%eax
  3584. c010286f: 89 03 mov %eax,(%ebx)
  3585. c0102871: 90 nop
  3586. c0102872: 8b 5d fc mov -0x4(%ebp),%ebx
  3587. c0102875: c9 leave
  3588. c0102876: c3 ret
  3589.  
  3590. c0102877 <directory_put>:
  3591. c0102877: 55 push %ebp
  3592. c0102878: 89 e5 mov %esp,%ebp
  3593. c010287a: 53 push %ebx
  3594. c010287b: 8b 45 08 mov 0x8(%ebp),%eax
  3595. c010287e: 8b 00 mov (%eax),%eax
  3596. c0102880: 8b 55 0c mov 0xc(%ebp),%edx
  3597. c0102883: c1 e2 02 shl $0x2,%edx
  3598. c0102886: 8d 1c 10 lea (%eax,%edx,1),%ebx
  3599. c0102889: ff 75 10 pushl 0x10(%ebp)
  3600. c010288c: e8 af ff ff ff call c0102840 <clear_flags>
  3601. c0102891: 83 c4 04 add $0x4,%esp
  3602. c0102894: 0b 45 14 or 0x14(%ebp),%eax
  3603. c0102897: 89 03 mov %eax,(%ebx)
  3604. c0102899: 90 nop
  3605. c010289a: 8b 5d fc mov -0x4(%ebp),%ebx
  3606. c010289d: c9 leave
  3607. c010289e: c3 ret
  3608.  
  3609. c010289f <invalidate_tlb>:
  3610. c010289f: 55 push %ebp
  3611. c01028a0: 89 e5 mov %esp,%ebp
  3612. c01028a2: 8b 45 08 mov 0x8(%ebp),%eax
  3613. c01028a5: 0f 01 38 invlpg (%eax)
  3614. c01028a8: 90 nop
  3615. c01028a9: 5d pop %ebp
  3616. c01028aa: c3 ret
  3617.  
  3618. c01028ab <vmm_get_virtual>:
  3619. c01028ab: 55 push %ebp
  3620. c01028ac: 89 e5 mov %esp,%ebp
  3621. c01028ae: b8 00 00 00 00 mov $0x0,%eax
  3622. c01028b3: 5d pop %ebp
  3623. c01028b4: c3 ret
  3624.  
  3625. c01028b5 <vmm_map_page>:
  3626. c01028b5: 55 push %ebp
  3627. c01028b6: 89 e5 mov %esp,%ebp
  3628. c01028b8: 83 ec 28 sub $0x28,%esp
  3629. c01028bb: 8b 45 0c mov 0xc(%ebp),%eax
  3630. c01028be: c1 e8 0c shr $0xc,%eax
  3631. c01028c1: 89 45 e8 mov %eax,-0x18(%ebp)
  3632. c01028c4: 8b 45 e8 mov -0x18(%ebp),%eax
  3633. c01028c7: c1 e8 0a shr $0xa,%eax
  3634. c01028ca: 89 45 ec mov %eax,-0x14(%ebp)
  3635. c01028cd: 8b 45 e8 mov -0x18(%ebp),%eax
  3636. c01028d0: 25 ff 03 00 00 and $0x3ff,%eax
  3637. c01028d5: 89 45 f0 mov %eax,-0x10(%ebp)
  3638. c01028d8: ff 75 f0 pushl -0x10(%ebp)
  3639. c01028db: ff 75 ec pushl -0x14(%ebp)
  3640. c01028de: ff 75 e8 pushl -0x18(%ebp)
  3641. c01028e1: 68 54 34 10 c0 push $0xc0103454
  3642. c01028e6: e8 f8 fa ff ff call c01023e3 <uart_printf>
  3643. c01028eb: 83 c4 10 add $0x10,%esp
  3644. c01028ee: 8b 45 08 mov 0x8(%ebp),%eax
  3645. c01028f1: 8b 00 mov (%eax),%eax
  3646. c01028f3: 8b 55 ec mov -0x14(%ebp),%edx
  3647. c01028f6: c1 e2 02 shl $0x2,%edx
  3648. c01028f9: 01 d0 add %edx,%eax
  3649. c01028fb: 8b 00 mov (%eax),%eax
  3650. c01028fd: 83 e0 01 and $0x1,%eax
  3651. c0102900: 85 c0 test %eax,%eax
  3652. c0102902: 74 30 je c0102934 <vmm_map_page+0x7f>
  3653. c0102904: 83 ec 0c sub $0xc,%esp
  3654. c0102907: 68 79 34 10 c0 push $0xc0103479
  3655. c010290c: e8 58 f9 ff ff call c0102269 <uart_puts>
  3656. c0102911: 83 c4 10 add $0x10,%esp
  3657. c0102914: 8b 45 08 mov 0x8(%ebp),%eax
  3658. c0102917: 8b 00 mov (%eax),%eax
  3659. c0102919: 8b 55 ec mov -0x14(%ebp),%edx
  3660. c010291c: c1 e2 02 shl $0x2,%edx
  3661. c010291f: 01 d0 add %edx,%eax
  3662. c0102921: 8b 00 mov (%eax),%eax
  3663. c0102923: 83 ec 0c sub $0xc,%esp
  3664. c0102926: 50 push %eax
  3665. c0102927: e8 14 ff ff ff call c0102840 <clear_flags>
  3666. c010292c: 83 c4 10 add $0x10,%esp
  3667. c010292f: 89 45 e4 mov %eax,-0x1c(%ebp)
  3668. c0102932: eb 63 jmp c0102997 <vmm_map_page+0xe2>
  3669. c0102934: 83 ec 0c sub $0xc,%esp
  3670. c0102937: 68 83 34 10 c0 push $0xc0103483
  3671. c010293c: e8 28 f9 ff ff call c0102269 <uart_puts>
  3672. c0102941: 83 c4 10 add $0x10,%esp
  3673. c0102944: a1 48 51 10 c0 mov 0xc0105148,%eax
  3674. c0102949: 85 c0 test %eax,%eax
  3675. c010294b: 74 0a je c0102957 <vmm_map_page+0xa2>
  3676. c010294d: e8 4c 01 00 00 call c0102a9e <pmm_alloc>
  3677. c0102952: 89 45 e4 mov %eax,-0x1c(%ebp)
  3678. c0102955: eb 1c jmp c0102973 <vmm_map_page+0xbe>
  3679. c0102957: e8 42 01 00 00 call c0102a9e <pmm_alloc>
  3680. c010295c: 89 45 f4 mov %eax,-0xc(%ebp)
  3681. c010295f: 83 ec 08 sub $0x8,%esp
  3682. c0102962: ff 75 f4 pushl -0xc(%ebp)
  3683. c0102965: ff 75 08 pushl 0x8(%ebp)
  3684. c0102968: e8 3e ff ff ff call c01028ab <vmm_get_virtual>
  3685. c010296d: 83 c4 10 add $0x10,%esp
  3686. c0102970: 89 45 e4 mov %eax,-0x1c(%ebp)
  3687. c0102973: 83 ec 0c sub $0xc,%esp
  3688. c0102976: 68 fc 33 10 c0 push $0xc01033fc
  3689. c010297b: e8 e9 f8 ff ff call c0102269 <uart_puts>
  3690. c0102980: 83 c4 10 add $0x10,%esp
  3691. c0102983: 8b 45 e4 mov -0x1c(%ebp),%eax
  3692. c0102986: 6a 03 push $0x3
  3693. c0102988: 50 push %eax
  3694. c0102989: ff 75 ec pushl -0x14(%ebp)
  3695. c010298c: ff 75 08 pushl 0x8(%ebp)
  3696. c010298f: e8 e3 fe ff ff call c0102877 <directory_put>
  3697. c0102994: 83 c4 10 add $0x10,%esp
  3698. c0102997: 83 ec 0c sub $0xc,%esp
  3699. c010299a: ff 75 e4 pushl -0x1c(%ebp)
  3700. c010299d: e8 8f fc ff ff call c0102631 <blank_directory>
  3701. c01029a2: 83 c4 10 add $0x10,%esp
  3702. c01029a5: 83 ec 0c sub $0xc,%esp
  3703. c01029a8: 68 91 34 10 c0 push $0xc0103491
  3704. c01029ad: e8 b7 f8 ff ff call c0102269 <uart_puts>
  3705. c01029b2: 83 c4 10 add $0x10,%esp
  3706. c01029b5: 6a 03 push $0x3
  3707. c01029b7: ff 75 10 pushl 0x10(%ebp)
  3708. c01029ba: ff 75 f0 pushl -0x10(%ebp)
  3709. c01029bd: ff 75 e4 pushl -0x1c(%ebp)
  3710. c01029c0: e8 88 fe ff ff call c010284d <table_put>
  3711. c01029c5: 83 c4 10 add $0x10,%esp
  3712. c01029c8: 83 ec 0c sub $0xc,%esp
  3713. c01029cb: ff 75 e4 pushl -0x1c(%ebp)
  3714. c01029ce: e8 cc fe ff ff call c010289f <invalidate_tlb>
  3715. c01029d3: 83 c4 10 add $0x10,%esp
  3716. c01029d6: b8 00 00 00 00 mov $0x0,%eax
  3717. c01029db: c9 leave
  3718. c01029dc: c3 ret
  3719.  
  3720. c01029dd <init_paging>:
  3721. c01029dd: 55 push %ebp
  3722. c01029de: 89 e5 mov %esp,%ebp
  3723. c01029e0: 83 ec 18 sub $0x18,%esp
  3724. c01029e3: e8 7d fc ff ff call c0102665 <vmm_create_context>
  3725. c01029e8: a3 28 89 12 c0 mov %eax,0xc0128928
  3726. c01029ed: a1 28 89 12 c0 mov 0xc0128928,%eax
  3727. c01029f2: 89 c2 mov %eax,%edx
  3728. c01029f4: a1 28 89 12 c0 mov 0xc0128928,%eax
  3729. c01029f9: 83 ec 04 sub $0x4,%esp
  3730. c01029fc: 52 push %edx
  3731. c01029fd: 68 00 00 c0 3f push $0x3fc00000
  3732. c0102a02: 50 push %eax
  3733. c0102a03: e8 ad fe ff ff call c01028b5 <vmm_map_page>
  3734. c0102a08: 83 c4 10 add $0x10,%esp
  3735. c0102a0b: c7 45 f0 00 00 10 c0 movl $0xc0100000,-0x10(%ebp)
  3736. c0102a12: eb 26 jmp c0102a3a <init_paging+0x5d>
  3737. c0102a14: 8b 45 f0 mov -0x10(%ebp),%eax
  3738. c0102a17: 2d 00 00 00 40 sub $0x40000000,%eax
  3739. c0102a1c: 89 c2 mov %eax,%edx
  3740. c0102a1e: a1 28 89 12 c0 mov 0xc0128928,%eax
  3741. c0102a23: 83 ec 04 sub $0x4,%esp
  3742. c0102a26: ff 75 f0 pushl -0x10(%ebp)
  3743. c0102a29: 52 push %edx
  3744. c0102a2a: 50 push %eax
  3745. c0102a2b: e8 85 fe ff ff call c01028b5 <vmm_map_page>
  3746. c0102a30: 83 c4 10 add $0x10,%esp
  3747. c0102a33: 81 45 f0 00 10 00 00 addl $0x1000,-0x10(%ebp)
  3748. c0102a3a: b8 2c c9 12 c0 mov $0xc012c92c,%eax
  3749. c0102a3f: 39 45 f0 cmp %eax,-0x10(%ebp)
  3750. c0102a42: 72 d0 jb c0102a14 <init_paging+0x37>
  3751. c0102a44: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
  3752. c0102a4b: eb 1f jmp c0102a6c <init_paging+0x8f>
  3753. c0102a4d: 8b 55 f4 mov -0xc(%ebp),%edx
  3754. c0102a50: a1 28 89 12 c0 mov 0xc0128928,%eax
  3755. c0102a55: 83 ec 04 sub $0x4,%esp
  3756. c0102a58: ff 75 f4 pushl -0xc(%ebp)
  3757. c0102a5b: 52 push %edx
  3758. c0102a5c: 50 push %eax
  3759. c0102a5d: e8 53 fe ff ff call c01028b5 <vmm_map_page>
  3760. c0102a62: 83 c4 10 add $0x10,%esp
  3761. c0102a65: 81 45 f4 00 10 00 00 addl $0x1000,-0xc(%ebp)
  3762. c0102a6c: 81 7d f4 ff ff 3f 00 cmpl $0x3fffff,-0xc(%ebp)
  3763. c0102a73: 76 d8 jbe c0102a4d <init_paging+0x70>
  3764. c0102a75: a1 28 89 12 c0 mov 0xc0128928,%eax
  3765. c0102a7a: 8b 00 mov (%eax),%eax
  3766. c0102a7c: 83 ec 0c sub $0xc,%esp
  3767. c0102a7f: 50 push %eax
  3768. c0102a80: e8 ae d6 ff ff call c0100133 <load_page_directory>
  3769. c0102a85: 83 c4 10 add $0x10,%esp
  3770. c0102a88: e8 b4 d6 ff ff call c0100141 <enable_paging>
  3771. c0102a8d: c7 05 48 51 10 c0 00 movl $0x0,0xc0105148
  3772. c0102a94: 00 00 00
  3773. c0102a97: b8 00 00 00 00 mov $0x0,%eax
  3774. c0102a9c: c9 leave
  3775. c0102a9d: c3 ret
  3776.  
  3777. c0102a9e <pmm_alloc>:
  3778. c0102a9e: 55 push %ebp
  3779. c0102a9f: 89 e5 mov %esp,%ebp
  3780. c0102aa1: 53 push %ebx
  3781. c0102aa2: 83 ec 14 sub $0x14,%esp
  3782. c0102aa5: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
  3783. c0102aac: e9 92 00 00 00 jmp c0102b43 <pmm_alloc+0xa5>
  3784. c0102ab1: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
  3785. c0102ab8: eb 7b jmp c0102b35 <pmm_alloc+0x97>
  3786. c0102aba: 8b 45 f0 mov -0x10(%ebp),%eax
  3787. c0102abd: 8b 14 85 00 60 10 c0 mov -0x3fefa000(,%eax,4),%edx
  3788. c0102ac4: 8b 45 f4 mov -0xc(%ebp),%eax
  3789. c0102ac7: bb 01 00 00 00 mov $0x1,%ebx
  3790. c0102acc: 89 c1 mov %eax,%ecx
  3791. c0102ace: d3 e3 shl %cl,%ebx
  3792. c0102ad0: 89 d8 mov %ebx,%eax
  3793. c0102ad2: 21 d0 and %edx,%eax
  3794. c0102ad4: 85 c0 test %eax,%eax
  3795. c0102ad6: 74 59 je c0102b31 <pmm_alloc+0x93>
  3796. c0102ad8: 8b 45 f0 mov -0x10(%ebp),%eax
  3797. c0102adb: 8b 14 85 00 60 10 c0 mov -0x3fefa000(,%eax,4),%edx
  3798. c0102ae2: 8b 45 f4 mov -0xc(%ebp),%eax
  3799. c0102ae5: bb 01 00 00 00 mov $0x1,%ebx
  3800. c0102aea: 89 c1 mov %eax,%ecx
  3801. c0102aec: d3 e3 shl %cl,%ebx
  3802. c0102aee: 89 d8 mov %ebx,%eax
  3803. c0102af0: f7 d0 not %eax
  3804. c0102af2: 21 c2 and %eax,%edx
  3805. c0102af4: 8b 45 f0 mov -0x10(%ebp),%eax
  3806. c0102af7: 89 14 85 00 60 10 c0 mov %edx,-0x3fefa000(,%eax,4)
  3807. c0102afe: 8b 45 f0 mov -0x10(%ebp),%eax
  3808. c0102b01: c1 e0 05 shl $0x5,%eax
  3809. c0102b04: 89 c2 mov %eax,%edx
  3810. c0102b06: 8b 45 f4 mov -0xc(%ebp),%eax
  3811. c0102b09: 01 d0 add %edx,%eax
  3812. c0102b0b: c1 e0 0c shl $0xc,%eax
  3813. c0102b0e: 83 ec 08 sub $0x8,%esp
  3814. c0102b11: 50 push %eax
  3815. c0102b12: 68 a0 34 10 c0 push $0xc01034a0
  3816. c0102b17: e8 c7 f8 ff ff call c01023e3 <uart_printf>
  3817. c0102b1c: 83 c4 10 add $0x10,%esp
  3818. c0102b1f: 8b 45 f0 mov -0x10(%ebp),%eax
  3819. c0102b22: c1 e0 05 shl $0x5,%eax
  3820. c0102b25: 89 c2 mov %eax,%edx
  3821. c0102b27: 8b 45 f4 mov -0xc(%ebp),%eax
  3822. c0102b2a: 01 d0 add %edx,%eax
  3823. c0102b2c: c1 e0 0c shl $0xc,%eax
  3824. c0102b2f: eb 34 jmp c0102b65 <pmm_alloc+0xc7>
  3825. c0102b31: 83 45 f4 01 addl $0x1,-0xc(%ebp)
  3826. c0102b35: 83 7d f4 1f cmpl $0x1f,-0xc(%ebp)
  3827. c0102b39: 0f 8e 7b ff ff ff jle c0102aba <pmm_alloc+0x1c>
  3828. c0102b3f: 83 45 f0 01 addl $0x1,-0x10(%ebp)
  3829. c0102b43: 81 7d f0 ff 7f 00 00 cmpl $0x7fff,-0x10(%ebp)
  3830. c0102b4a: 0f 8e 61 ff ff ff jle c0102ab1 <pmm_alloc+0x13>
  3831. c0102b50: 83 ec 0c sub $0xc,%esp
  3832. c0102b53: 68 ac 34 10 c0 push $0xc01034ac
  3833. c0102b58: e8 0c f7 ff ff call c0102269 <uart_puts>
  3834. c0102b5d: 83 c4 10 add $0x10,%esp
  3835. c0102b60: b8 00 00 00 00 mov $0x0,%eax
  3836. c0102b65: 8b 5d fc mov -0x4(%ebp),%ebx
  3837. c0102b68: c9 leave
  3838. c0102b69: c3 ret
  3839.  
  3840. c0102b6a <pmm_free>:
  3841. c0102b6a: 55 push %ebp
  3842. c0102b6b: 89 e5 mov %esp,%ebp
  3843. c0102b6d: 53 push %ebx
  3844. c0102b6e: 83 ec 10 sub $0x10,%esp
  3845. c0102b71: 8b 45 08 mov 0x8(%ebp),%eax
  3846. c0102b74: c1 e8 0c shr $0xc,%eax
  3847. c0102b77: 89 45 f8 mov %eax,-0x8(%ebp)
  3848. c0102b7a: 8b 45 f8 mov -0x8(%ebp),%eax
  3849. c0102b7d: c1 e8 05 shr $0x5,%eax
  3850. c0102b80: 8b 14 85 00 60 10 c0 mov -0x3fefa000(,%eax,4),%edx
  3851. c0102b87: 8b 4d f8 mov -0x8(%ebp),%ecx
  3852. c0102b8a: 83 e1 1f and $0x1f,%ecx
  3853. c0102b8d: bb 01 00 00 00 mov $0x1,%ebx
  3854. c0102b92: d3 e3 shl %cl,%ebx
  3855. c0102b94: 89 d9 mov %ebx,%ecx
  3856. c0102b96: 09 ca or %ecx,%edx
  3857. c0102b98: 89 14 85 00 60 10 c0 mov %edx,-0x3fefa000(,%eax,4)
  3858. c0102b9f: 90 nop
  3859. c0102ba0: 83 c4 10 add $0x10,%esp
  3860. c0102ba3: 5b pop %ebx
  3861. c0102ba4: 5d pop %ebp
  3862. c0102ba5: c3 ret
  3863.  
  3864. c0102ba6 <pmm_mark_used>:
  3865. c0102ba6: 55 push %ebp
  3866. c0102ba7: 89 e5 mov %esp,%ebp
  3867. c0102ba9: 53 push %ebx
  3868. c0102baa: 83 ec 14 sub $0x14,%esp
  3869. c0102bad: 8b 45 08 mov 0x8(%ebp),%eax
  3870. c0102bb0: c1 e8 0c shr $0xc,%eax
  3871. c0102bb3: 89 45 f4 mov %eax,-0xc(%ebp)
  3872. c0102bb6: 8b 45 f4 mov -0xc(%ebp),%eax
  3873. c0102bb9: c1 e8 05 shr $0x5,%eax
  3874. c0102bbc: 50 push %eax
  3875. c0102bbd: ff 75 f4 pushl -0xc(%ebp)
  3876. c0102bc0: ff 75 08 pushl 0x8(%ebp)
  3877. c0102bc3: 68 bc 34 10 c0 push $0xc01034bc
  3878. c0102bc8: e8 16 f8 ff ff call c01023e3 <uart_printf>
  3879. c0102bcd: 83 c4 10 add $0x10,%esp
  3880. c0102bd0: 8b 45 f4 mov -0xc(%ebp),%eax
  3881. c0102bd3: c1 e8 05 shr $0x5,%eax
  3882. c0102bd6: 8b 14 85 00 60 10 c0 mov -0x3fefa000(,%eax,4),%edx
  3883. c0102bdd: 8b 4d f4 mov -0xc(%ebp),%ecx
  3884. c0102be0: 83 e1 1f and $0x1f,%ecx
  3885. c0102be3: bb 01 00 00 00 mov $0x1,%ebx
  3886. c0102be8: d3 e3 shl %cl,%ebx
  3887. c0102bea: 89 d9 mov %ebx,%ecx
  3888. c0102bec: f7 d1 not %ecx
  3889. c0102bee: 21 ca and %ecx,%edx
  3890. c0102bf0: 89 14 85 00 60 10 c0 mov %edx,-0x3fefa000(,%eax,4)
  3891. c0102bf7: 90 nop
  3892. c0102bf8: 8b 5d fc mov -0x4(%ebp),%ebx
  3893. c0102bfb: c9 leave
  3894. c0102bfc: c3 ret
  3895.  
  3896. c0102bfd <dump_free_bits>:
  3897. c0102bfd: 55 push %ebp
  3898. c0102bfe: 89 e5 mov %esp,%ebp
  3899. c0102c00: 83 ec 18 sub $0x18,%esp
  3900. c0102c03: fa cli
  3901. c0102c04: 83 ec 0c sub $0xc,%esp
  3902. c0102c07: 68 db 34 10 c0 push $0xc01034db
  3903. c0102c0c: e8 58 f6 ff ff call c0102269 <uart_puts>
  3904. c0102c11: 83 c4 10 add $0x10,%esp
  3905. c0102c14: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
  3906. c0102c1b: eb 42 jmp c0102c5f <dump_free_bits+0x62>
  3907. c0102c1d: 8b 45 f4 mov -0xc(%ebp),%eax
  3908. c0102c20: 8b 04 85 00 60 10 c0 mov -0x3fefa000(,%eax,4),%eax
  3909. c0102c27: 83 ec 08 sub $0x8,%esp
  3910. c0102c2a: 50 push %eax
  3911. c0102c2b: 68 e9 34 10 c0 push $0xc01034e9
  3912. c0102c30: e8 ae f7 ff ff call c01023e3 <uart_printf>
  3913. c0102c35: 83 c4 10 add $0x10,%esp
  3914. c0102c38: 83 7d f4 00 cmpl $0x0,-0xc(%ebp)
  3915. c0102c3c: 74 1d je c0102c5b <dump_free_bits+0x5e>
  3916. c0102c3e: 8b 45 f4 mov -0xc(%ebp),%eax
  3917. c0102c41: 83 e0 3f and $0x3f,%eax
  3918. c0102c44: 85 c0 test %eax,%eax
  3919. c0102c46: 75 13 jne c0102c5b <dump_free_bits+0x5e>
  3920. c0102c48: 83 ec 08 sub $0x8,%esp
  3921. c0102c4b: ff 75 f4 pushl -0xc(%ebp)
  3922. c0102c4e: 68 ed 34 10 c0 push $0xc01034ed
  3923. c0102c53: e8 8b f7 ff ff call c01023e3 <uart_printf>
  3924. c0102c58: 83 c4 10 add $0x10,%esp
  3925. c0102c5b: 83 45 f4 01 addl $0x1,-0xc(%ebp)
  3926. c0102c5f: 81 7d f4 ff 7f 00 00 cmpl $0x7fff,-0xc(%ebp)
  3927. c0102c66: 7e b5 jle c0102c1d <dump_free_bits+0x20>
  3928. c0102c68: fb sti
  3929. c0102c69: 90 nop
  3930. c0102c6a: c9 leave
  3931. c0102c6b: c3 ret
  3932.  
  3933. c0102c6c <pmm_init>:
  3934. c0102c6c: 55 push %ebp
  3935. c0102c6d: 89 e5 mov %esp,%ebp
  3936. c0102c6f: 83 ec 38 sub $0x38,%esp
  3937. c0102c72: 8b 45 08 mov 0x8(%ebp),%eax
  3938. c0102c75: 8b 40 30 mov 0x30(%eax),%eax
  3939. c0102c78: 89 45 d4 mov %eax,-0x2c(%ebp)
  3940. c0102c7b: 8b 45 08 mov 0x8(%ebp),%eax
  3941. c0102c7e: 8b 40 30 mov 0x30(%eax),%eax
  3942. c0102c81: 89 c2 mov %eax,%edx
  3943. c0102c83: 8b 45 08 mov 0x8(%ebp),%eax
  3944. c0102c86: 8b 40 2c mov 0x2c(%eax),%eax
  3945. c0102c89: 01 d0 add %edx,%eax
  3946. c0102c8b: 89 45 ec mov %eax,-0x14(%ebp)
  3947. c0102c8e: 8b 45 08 mov 0x8(%ebp),%eax
  3948. c0102c91: 8b 40 2c mov 0x2c(%eax),%eax
  3949. c0102c94: ff 75 ec pushl -0x14(%ebp)
  3950. c0102c97: 50 push %eax
  3951. c0102c98: ff 75 d4 pushl -0x2c(%ebp)
  3952. c0102c9b: 68 f8 34 10 c0 push $0xc01034f8
  3953. c0102ca0: e8 3e f7 ff ff call c01023e3 <uart_printf>
  3954. c0102ca5: 83 c4 10 add $0x10,%esp
  3955. c0102ca8: c7 45 d8 00 00 00 00 movl $0x0,-0x28(%ebp)
  3956. c0102caf: eb 12 jmp c0102cc3 <pmm_init+0x57>
  3957. c0102cb1: 8b 45 d8 mov -0x28(%ebp),%eax
  3958. c0102cb4: c7 04 85 00 60 10 c0 movl $0x0,-0x3fefa000(,%eax,4)
  3959. c0102cbb: 00 00 00 00
  3960. c0102cbf: 83 45 d8 01 addl $0x1,-0x28(%ebp)
  3961. c0102cc3: 81 7d d8 ff 7f 00 00 cmpl $0x7fff,-0x28(%ebp)
  3962. c0102cca: 7e e5 jle c0102cb1 <pmm_init+0x45>
  3963. c0102ccc: eb 64 jmp c0102d32 <pmm_init+0xc6>
  3964. c0102cce: 8b 45 d4 mov -0x2c(%ebp),%eax
  3965. c0102cd1: 8b 40 14 mov 0x14(%eax),%eax
  3966. c0102cd4: 83 f8 01 cmp $0x1,%eax
  3967. c0102cd7: 75 55 jne c0102d2e <pmm_init+0xc2>
  3968. c0102cd9: 8b 45 d4 mov -0x2c(%ebp),%eax
  3969. c0102cdc: 8b 50 08 mov 0x8(%eax),%edx
  3970. c0102cdf: 8b 40 04 mov 0x4(%eax),%eax
  3971. c0102ce2: 89 45 dc mov %eax,-0x24(%ebp)
  3972. c0102ce5: 8b 45 d4 mov -0x2c(%ebp),%eax
  3973. c0102ce8: 8b 50 10 mov 0x10(%eax),%edx
  3974. c0102ceb: 8b 40 0c mov 0xc(%eax),%eax
  3975. c0102cee: 89 c2 mov %eax,%edx
  3976. c0102cf0: 8b 45 dc mov -0x24(%ebp),%eax
  3977. c0102cf3: 01 d0 add %edx,%eax
  3978. c0102cf5: 89 45 f0 mov %eax,-0x10(%ebp)
  3979. c0102cf8: 83 ec 04 sub $0x4,%esp
  3980. c0102cfb: ff 75 f0 pushl -0x10(%ebp)
  3981. c0102cfe: ff 75 dc pushl -0x24(%ebp)
  3982. c0102d01: 68 22 35 10 c0 push $0xc0103522
  3983. c0102d06: e8 d8 f6 ff ff call c01023e3 <uart_printf>
  3984. c0102d0b: 83 c4 10 add $0x10,%esp
  3985. c0102d0e: eb 16 jmp c0102d26 <pmm_init+0xba>
  3986. c0102d10: 8b 45 dc mov -0x24(%ebp),%eax
  3987. c0102d13: 83 ec 0c sub $0xc,%esp
  3988. c0102d16: 50 push %eax
  3989. c0102d17: e8 4e fe ff ff call c0102b6a <pmm_free>
  3990. c0102d1c: 83 c4 10 add $0x10,%esp
  3991. c0102d1f: 81 45 dc 00 10 00 00 addl $0x1000,-0x24(%ebp)
  3992. c0102d26: 8b 45 dc mov -0x24(%ebp),%eax
  3993. c0102d29: 3b 45 f0 cmp -0x10(%ebp),%eax
  3994. c0102d2c: 72 e2 jb c0102d10 <pmm_init+0xa4>
  3995. c0102d2e: 83 45 d4 18 addl $0x18,-0x2c(%ebp)
  3996. c0102d32: 8b 45 d4 mov -0x2c(%ebp),%eax
  3997. c0102d35: 3b 45 ec cmp -0x14(%ebp),%eax
  3998. c0102d38: 72 94 jb c0102cce <pmm_init+0x62>
  3999. c0102d3a: ba 2c c9 12 c0 mov $0xc012c92c,%edx
  4000. c0102d3f: b8 00 00 10 c0 mov $0xc0100000,%eax
  4001. c0102d44: 83 ec 04 sub $0x4,%esp
  4002. c0102d47: 52 push %edx
  4003. c0102d48: 50 push %eax
  4004. c0102d49: 68 3e 35 10 c0 push $0xc010353e
  4005. c0102d4e: e8 90 f6 ff ff call c01023e3 <uart_printf>
  4006. c0102d53: 83 c4 10 add $0x10,%esp
  4007. c0102d56: c7 45 e0 00 00 10 c0 movl $0xc0100000,-0x20(%ebp)
  4008. c0102d5d: eb 16 jmp c0102d75 <pmm_init+0x109>
  4009. c0102d5f: 8b 45 e0 mov -0x20(%ebp),%eax
  4010. c0102d62: 83 ec 0c sub $0xc,%esp
  4011. c0102d65: 50 push %eax
  4012. c0102d66: e8 3b fe ff ff call c0102ba6 <pmm_mark_used>
  4013. c0102d6b: 83 c4 10 add $0x10,%esp
  4014. c0102d6e: 81 45 e0 00 10 00 00 addl $0x1000,-0x20(%ebp)
  4015. c0102d75: b8 2c c9 12 c0 mov $0xc012c92c,%eax
  4016. c0102d7a: 39 45 e0 cmp %eax,-0x20(%ebp)
  4017. c0102d7d: 72 e0 jb c0102d5f <pmm_init+0xf3>
  4018. c0102d7f: 83 ec 08 sub $0x8,%esp
  4019. c0102d82: 68 00 00 40 00 push $0x400000
  4020. c0102d87: 68 58 35 10 c0 push $0xc0103558
  4021. c0102d8c: e8 52 f6 ff ff call c01023e3 <uart_printf>
  4022. c0102d91: 83 c4 10 add $0x10,%esp
  4023. c0102d94: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp)
  4024. c0102d9b: eb 16 jmp c0102db3 <pmm_init+0x147>
  4025. c0102d9d: 8b 45 e4 mov -0x1c(%ebp),%eax
  4026. c0102da0: c1 e0 0c shl $0xc,%eax
  4027. c0102da3: 83 ec 0c sub $0xc,%esp
  4028. c0102da6: 50 push %eax
  4029. c0102da7: e8 fa fd ff ff call c0102ba6 <pmm_mark_used>
  4030. c0102dac: 83 c4 10 add $0x10,%esp
  4031. c0102daf: 83 45 e4 01 addl $0x1,-0x1c(%ebp)
  4032. c0102db3: 81 7d e4 ff 03 00 00 cmpl $0x3ff,-0x1c(%ebp)
  4033. c0102dba: 7e e1 jle c0102d9d <pmm_init+0x131>
  4034. c0102dbc: 8b 45 08 mov 0x8(%ebp),%eax
  4035. c0102dbf: 8b 40 18 mov 0x18(%eax),%eax
  4036. c0102dc2: 89 45 f4 mov %eax,-0xc(%ebp)
  4037. c0102dc5: 83 ec 08 sub $0x8,%esp
  4038. c0102dc8: ff 75 08 pushl 0x8(%ebp)
  4039. c0102dcb: 68 71 35 10 c0 push $0xc0103571
  4040. c0102dd0: e8 0e f6 ff ff call c01023e3 <uart_printf>
  4041. c0102dd5: 83 c4 10 add $0x10,%esp
  4042. c0102dd8: 83 ec 0c sub $0xc,%esp
  4043. c0102ddb: ff 75 08 pushl 0x8(%ebp)
  4044. c0102dde: e8 c3 fd ff ff call c0102ba6 <pmm_mark_used>
  4045. c0102de3: 83 c4 10 add $0x10,%esp
  4046. c0102de6: 83 ec 08 sub $0x8,%esp
  4047. c0102de9: ff 75 f4 pushl -0xc(%ebp)
  4048. c0102dec: 68 71 35 10 c0 push $0xc0103571
  4049. c0102df1: e8 ed f5 ff ff call c01023e3 <uart_printf>
  4050. c0102df6: 83 c4 10 add $0x10,%esp
  4051. c0102df9: 83 ec 0c sub $0xc,%esp
  4052. c0102dfc: ff 75 f4 pushl -0xc(%ebp)
  4053. c0102dff: e8 a2 fd ff ff call c0102ba6 <pmm_mark_used>
  4054. c0102e04: 83 c4 10 add $0x10,%esp
  4055. c0102e07: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp)
  4056. c0102e0e: eb 56 jmp c0102e66 <pmm_init+0x1fa>
  4057. c0102e10: 8b 45 e8 mov -0x18(%ebp),%eax
  4058. c0102e13: c1 e0 04 shl $0x4,%eax
  4059. c0102e16: 89 c2 mov %eax,%edx
  4060. c0102e18: 8b 45 f4 mov -0xc(%ebp),%eax
  4061. c0102e1b: 01 d0 add %edx,%eax
  4062. c0102e1d: 8b 00 mov (%eax),%eax
  4063. c0102e1f: 89 45 e0 mov %eax,-0x20(%ebp)
  4064. c0102e22: eb 29 jmp c0102e4d <pmm_init+0x1e1>
  4065. c0102e24: 83 ec 08 sub $0x8,%esp
  4066. c0102e27: ff 75 e0 pushl -0x20(%ebp)
  4067. c0102e2a: 68 71 35 10 c0 push $0xc0103571
  4068. c0102e2f: e8 af f5 ff ff call c01023e3 <uart_printf>
  4069. c0102e34: 83 c4 10 add $0x10,%esp
  4070. c0102e37: 8b 45 e0 mov -0x20(%ebp),%eax
  4071. c0102e3a: 83 ec 0c sub $0xc,%esp
  4072. c0102e3d: 50 push %eax
  4073. c0102e3e: e8 63 fd ff ff call c0102ba6 <pmm_mark_used>
  4074. c0102e43: 83 c4 10 add $0x10,%esp
  4075. c0102e46: 81 45 e0 00 10 00 00 addl $0x1000,-0x20(%ebp)
  4076. c0102e4d: 8b 45 e8 mov -0x18(%ebp),%eax
  4077. c0102e50: c1 e0 04 shl $0x4,%eax
  4078. c0102e53: 89 c2 mov %eax,%edx
  4079. c0102e55: 8b 45 f4 mov -0xc(%ebp),%eax
  4080. c0102e58: 01 d0 add %edx,%eax
  4081. c0102e5a: 8b 40 04 mov 0x4(%eax),%eax
  4082. c0102e5d: 3b 45 e0 cmp -0x20(%ebp),%eax
  4083. c0102e60: 77 c2 ja c0102e24 <pmm_init+0x1b8>
  4084. c0102e62: 83 45 e8 01 addl $0x1,-0x18(%ebp)
  4085. c0102e66: 8b 45 08 mov 0x8(%ebp),%eax
  4086. c0102e69: 8b 50 14 mov 0x14(%eax),%edx
  4087. c0102e6c: 8b 45 e8 mov -0x18(%ebp),%eax
  4088. c0102e6f: 39 c2 cmp %eax,%edx
  4089. c0102e71: 77 9d ja c0102e10 <pmm_init+0x1a4>
  4090. c0102e73: b8 2c c9 12 c0 mov $0xc012c92c,%eax
  4091. c0102e78: 83 ec 04 sub $0x4,%esp
  4092. c0102e7b: 50 push %eax
  4093. c0102e7c: ff 75 e0 pushl -0x20(%ebp)
  4094. c0102e7f: 68 80 35 10 c0 push $0xc0103580
  4095. c0102e84: e8 5a f5 ff ff call c01023e3 <uart_printf>
  4096. c0102e89: 83 c4 10 add $0x10,%esp
  4097. c0102e8c: 90 nop
  4098. c0102e8d: c9 leave
  4099. c0102e8e: c3 ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement