Skip to content

Instantly share code, notes, and snippets.

@ScriptedDeveloper
Last active April 3, 2022 13:36
Show Gist options
  • Save ScriptedDeveloper/462a27a4c23a0ccefb46187d211a1646 to your computer and use it in GitHub Desktop.
Save ScriptedDeveloper/462a27a4c23a0ccefb46187d211a1646 to your computer and use it in GitHub Desktop.
kernel.bin: file format elf32-i386
Disassembly of section .text:
00001000 <idt_loader>:
1000: 0f 01 1d 40 18 01 00 lidtl 0x11840
1007: c3 ret
1008: 66 90 xchg %ax,%ax
100a: 66 90 xchg %ax,%ax
100c: 66 90 xchg %ax,%ax
100e: 66 90 xchg %ax,%ax
00001010 <gdt_flush>:
1010: 66 b8 10 00 mov $0x10,%ax
1014: 0f 01 15 48 18 01 00 lgdtl 0x11848
101b: 8e d8 mov %eax,%ds
101d: 8e c0 mov %eax,%es
101f: 8e e0 mov %eax,%fs
1021: 8e e8 mov %eax,%gs
1023: 8e d0 mov %eax,%ss
1025: ea 2c 10 00 00 08 00 ljmp $0x8,$0x102c
0000102c <flush>:
102c: c3 ret
102d: 66 90 xchg %ax,%ax
102f: 90 nop
1030: 02 b0 ad 1b 00 00 add 0x1bad(%eax),%dh
1036: 00 00 add %al,(%eax)
1038: fe 4f 52 decb 0x52(%edi)
103b: e4 .byte 0xe4
0000103c <start>:
103c: bc 20 10 01 00 mov $0x11020,%esp
1041: fa cli
1042: 50 push %eax
1043: 53 push %ebx
1044: e8 ce 0b 00 00 call 1c17 <kmain>
00001049 <print>:
1049: 55 push %ebp
104a: 89 e5 mov %esp,%ebp
104c: 83 ec 18 sub $0x18,%esp
104f: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
1056: e9 be 00 00 00 jmp 1119 <print+0xd0>
105b: 8b 15 24 10 01 00 mov 0x11024,%edx
1061: 89 d0 mov %edx,%eax
1063: c1 e0 02 shl $0x2,%eax
1066: 01 d0 add %edx,%eax
1068: c1 e0 04 shl $0x4,%eax
106b: 89 c2 mov %eax,%edx
106d: a1 20 10 01 00 mov 0x11020,%eax
1072: 01 d0 add %edx,%eax
1074: 89 45 f0 mov %eax,-0x10(%ebp)
1077: a1 20 10 01 00 mov 0x11020,%eax
107c: 83 c0 01 add $0x1,%eax
107f: a3 20 10 01 00 mov %eax,0x11020
1084: 8b 55 f4 mov -0xc(%ebp),%edx
1087: 8b 45 08 mov 0x8(%ebp),%eax
108a: 01 d0 add %edx,%eax
108c: 0f b6 00 movzbl (%eax),%eax
108f: 3c 0a cmp $0xa,%al
1091: 75 26 jne 10b9 <print+0x70>
1093: c7 05 20 10 01 00 00 movl $0x0,0x11020
109a: 00 00 00
109d: a1 24 10 01 00 mov 0x11024,%eax
10a2: 83 c0 01 add $0x1,%eax
10a5: a3 24 10 01 00 mov %eax,0x11024
10aa: a1 24 10 01 00 mov 0x11024,%eax
10af: 83 c0 01 add $0x1,%eax
10b2: a3 24 10 01 00 mov %eax,0x11024
10b7: eb 5c jmp 1115 <print+0xcc>
10b9: 8b 55 f4 mov -0xc(%ebp),%edx
10bc: 8b 45 08 mov 0x8(%ebp),%eax
10bf: 01 d0 add %edx,%eax
10c1: 0f b6 00 movzbl (%eax),%eax
10c4: 3c 1b cmp $0x1b,%al
10c6: 75 17 jne 10df <print+0x96>
10c8: e8 62 00 00 00 call 112f <terminal_clear_screen>
10cd: 83 ec 0c sub $0xc,%esp
10d0: 68 00 30 00 00 push $0x3000
10d5: e8 6f ff ff ff call 1049 <print>
10da: 83 c4 10 add $0x10,%esp
10dd: eb 36 jmp 1115 <print+0xcc>
10df: 8b 55 f4 mov -0xc(%ebp),%edx
10e2: 8b 45 08 mov 0x8(%ebp),%eax
10e5: 01 d0 add %edx,%eax
10e7: 8b 0d 00 50 00 00 mov 0x5000,%ecx
10ed: 8b 55 f0 mov -0x10(%ebp),%edx
10f0: 01 ca add %ecx,%edx
10f2: 0f b6 00 movzbl (%eax),%eax
10f5: 88 02 mov %al,(%edx)
10f7: a1 20 10 01 00 mov 0x11020,%eax
10fc: 83 c0 01 add $0x1,%eax
10ff: a3 20 10 01 00 mov %eax,0x11020
1104: 8b 15 00 50 00 00 mov 0x5000,%edx
110a: 8b 45 f0 mov -0x10(%ebp),%eax
110d: 83 c0 01 add $0x1,%eax
1110: 01 d0 add %edx,%eax
1112: c6 00 0f movb $0xf,(%eax)
1115: 83 45 f4 01 addl $0x1,-0xc(%ebp)
1119: 8b 55 f4 mov -0xc(%ebp),%edx
111c: 8b 45 08 mov 0x8(%ebp),%eax
111f: 01 d0 add %edx,%eax
1121: 0f b6 00 movzbl (%eax),%eax
1124: 84 c0 test %al,%al
1126: 0f 85 2f ff ff ff jne 105b <print+0x12>
112c: 90 nop
112d: c9 leave
112e: c3 ret
0000112f <terminal_clear_screen>:
112f: 55 push %ebp
1130: 89 e5 mov %esp,%ebp
1132: 83 ec 10 sub $0x10,%esp
1135: c7 05 20 10 01 00 00 movl $0x0,0x11020
113c: 00 00 00
113f: c7 05 24 10 01 00 00 movl $0x0,0x11024
1146: 00 00 00
1149: c7 45 f8 a0 0f 00 00 movl $0xfa0,-0x8(%ebp)
1150: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
1157: eb 12 jmp 116b <terminal_clear_screen+0x3c>
1159: 8b 15 00 50 00 00 mov 0x5000,%edx
115f: 8b 45 fc mov -0x4(%ebp),%eax
1162: 01 d0 add %edx,%eax
1164: c6 00 00 movb $0x0,(%eax)
1167: 83 45 fc 01 addl $0x1,-0x4(%ebp)
116b: 8b 45 fc mov -0x4(%ebp),%eax
116e: 3b 45 f8 cmp -0x8(%ebp),%eax
1171: 7c e6 jl 1159 <terminal_clear_screen+0x2a>
1173: 90 nop
1174: c9 leave
1175: c3 ret
00001176 <throw_exception1>:
1176: 55 push %ebp
1177: 89 e5 mov %esp,%ebp
1179: 83 ec 08 sub $0x8,%esp
117c: 83 ec 0c sub $0xc,%esp
117f: 68 0c 30 00 00 push $0x300c
1184: e8 60 0a 00 00 call 1be9 <kpanic>
1189: 83 c4 10 add $0x10,%esp
118c: 90 nop
118d: c9 leave
118e: c3 ret
0000118f <throw_exception2>:
118f: 55 push %ebp
1190: 89 e5 mov %esp,%ebp
1192: 83 ec 08 sub $0x8,%esp
1195: 83 ec 0c sub $0xc,%esp
1198: 68 1c 30 00 00 push $0x301c
119d: e8 47 0a 00 00 call 1be9 <kpanic>
11a2: 83 c4 10 add $0x10,%esp
11a5: 90 nop
11a6: c9 leave
11a7: c3 ret
000011a8 <throw_exception3>:
11a8: 55 push %ebp
11a9: 89 e5 mov %esp,%ebp
11ab: 83 ec 08 sub $0x8,%esp
11ae: 83 ec 0c sub $0xc,%esp
11b1: 68 22 30 00 00 push $0x3022
11b6: e8 2e 0a 00 00 call 1be9 <kpanic>
11bb: 83 c4 10 add $0x10,%esp
11be: 90 nop
11bf: c9 leave
11c0: c3 ret
000011c1 <throw_exception4>:
11c1: 55 push %ebp
11c2: 89 e5 mov %esp,%ebp
11c4: 83 ec 08 sub $0x8,%esp
11c7: 83 ec 0c sub $0xc,%esp
11ca: 68 39 30 00 00 push $0x3039
11cf: e8 15 0a 00 00 call 1be9 <kpanic>
11d4: 83 c4 10 add $0x10,%esp
11d7: 90 nop
11d8: c9 leave
11d9: c3 ret
000011da <throw_exception5>:
11da: 55 push %ebp
11db: 89 e5 mov %esp,%ebp
11dd: 83 ec 08 sub $0x8,%esp
11e0: 83 ec 0c sub $0xc,%esp
11e3: 68 44 30 00 00 push $0x3044
11e8: e8 fc 09 00 00 call 1be9 <kpanic>
11ed: 83 c4 10 add $0x10,%esp
11f0: 90 nop
11f1: c9 leave
11f2: c3 ret
000011f3 <throw_exception6>:
11f3: 55 push %ebp
11f4: 89 e5 mov %esp,%ebp
11f6: 83 ec 08 sub $0x8,%esp
11f9: 83 ec 0c sub $0xc,%esp
11fc: 68 4d 30 00 00 push $0x304d
1201: e8 e3 09 00 00 call 1be9 <kpanic>
1206: 83 c4 10 add $0x10,%esp
1209: 90 nop
120a: c9 leave
120b: c3 ret
0000120c <throw_exception7>:
120c: 55 push %ebp
120d: 89 e5 mov %esp,%ebp
120f: 83 ec 08 sub $0x8,%esp
1212: 83 ec 0c sub $0xc,%esp
1215: 68 62 30 00 00 push $0x3062
121a: e8 ca 09 00 00 call 1be9 <kpanic>
121f: 83 c4 10 add $0x10,%esp
1222: 90 nop
1223: c9 leave
1224: c3 ret
00001225 <throw_exception8>:
1225: 55 push %ebp
1226: 89 e5 mov %esp,%ebp
1228: 83 ec 08 sub $0x8,%esp
122b: 83 ec 0c sub $0xc,%esp
122e: 68 71 30 00 00 push $0x3071
1233: e8 b1 09 00 00 call 1be9 <kpanic>
1238: 83 c4 10 add $0x10,%esp
123b: 90 nop
123c: c9 leave
123d: c3 ret
0000123e <throw_exception9>:
123e: 55 push %ebp
123f: 89 e5 mov %esp,%ebp
1241: 83 ec 08 sub $0x8,%esp
1244: 83 ec 0c sub $0xc,%esp
1247: 68 86 30 00 00 push $0x3086
124c: e8 98 09 00 00 call 1be9 <kpanic>
1251: 83 c4 10 add $0x10,%esp
1254: 90 nop
1255: c9 leave
1256: c3 ret
00001257 <throw_exception11>:
1257: 55 push %ebp
1258: 89 e5 mov %esp,%ebp
125a: 83 ec 08 sub $0x8,%esp
125d: 83 ec 0c sub $0xc,%esp
1260: 68 93 30 00 00 push $0x3093
1265: e8 7f 09 00 00 call 1be9 <kpanic>
126a: 83 c4 10 add $0x10,%esp
126d: 90 nop
126e: c9 leave
126f: c3 ret
00001270 <throw_exception12>:
1270: 55 push %ebp
1271: 89 e5 mov %esp,%ebp
1273: 83 ec 08 sub $0x8,%esp
1276: 83 ec 0c sub $0xc,%esp
1279: 68 9f 30 00 00 push $0x309f
127e: e8 66 09 00 00 call 1be9 <kpanic>
1283: 83 c4 10 add $0x10,%esp
1286: 90 nop
1287: c9 leave
1288: c3 ret
00001289 <throw_exception13>:
1289: 55 push %ebp
128a: 89 e5 mov %esp,%ebp
128c: 83 ec 08 sub $0x8,%esp
128f: 83 ec 0c sub $0xc,%esp
1292: 68 b3 30 00 00 push $0x30b3
1297: e8 4d 09 00 00 call 1be9 <kpanic>
129c: 83 c4 10 add $0x10,%esp
129f: 90 nop
12a0: c9 leave
12a1: c3 ret
000012a2 <throw_exception14>:
12a2: 55 push %ebp
12a3: 89 e5 mov %esp,%ebp
12a5: 83 ec 08 sub $0x8,%esp
12a8: 83 ec 0c sub $0xc,%esp
12ab: 68 c7 30 00 00 push $0x30c7
12b0: e8 34 09 00 00 call 1be9 <kpanic>
12b5: 83 c4 10 add $0x10,%esp
12b8: 90 nop
12b9: c9 leave
12ba: c3 ret
000012bb <throw_exception15>:
12bb: 55 push %ebp
12bc: 89 e5 mov %esp,%ebp
12be: 83 ec 08 sub $0x8,%esp
12c1: 83 ec 0c sub $0xc,%esp
12c4: 68 e0 30 00 00 push $0x30e0
12c9: e8 1b 09 00 00 call 1be9 <kpanic>
12ce: 83 c4 10 add $0x10,%esp
12d1: 90 nop
12d2: c9 leave
12d3: c3 ret
000012d4 <throw_exception17>:
12d4: 55 push %ebp
12d5: 89 e5 mov %esp,%ebp
12d7: 83 ec 08 sub $0x8,%esp
12da: 83 ec 0c sub $0xc,%esp
12dd: 68 eb 30 00 00 push $0x30eb
12e2: e8 02 09 00 00 call 1be9 <kpanic>
12e7: 83 c4 10 add $0x10,%esp
12ea: 90 nop
12eb: c9 leave
12ec: c3 ret
000012ed <throw_exception18>:
12ed: 55 push %ebp
12ee: 89 e5 mov %esp,%ebp
12f0: 83 ec 08 sub $0x8,%esp
12f3: 83 ec 0c sub $0xc,%esp
12f6: 68 08 31 00 00 push $0x3108
12fb: e8 e9 08 00 00 call 1be9 <kpanic>
1300: 83 c4 10 add $0x10,%esp
1303: 90 nop
1304: c9 leave
1305: c3 ret
00001306 <throw_exception19>:
1306: 55 push %ebp
1307: 89 e5 mov %esp,%ebp
1309: 83 ec 08 sub $0x8,%esp
130c: 83 ec 0c sub $0xc,%esp
130f: 68 18 31 00 00 push $0x3118
1314: e8 d0 08 00 00 call 1be9 <kpanic>
1319: 83 c4 10 add $0x10,%esp
131c: 90 nop
131d: c9 leave
131e: c3 ret
0000131f <throw_exception20>:
131f: 55 push %ebp
1320: 89 e5 mov %esp,%ebp
1322: 83 ec 08 sub $0x8,%esp
1325: 83 ec 0c sub $0xc,%esp
1328: 68 26 31 00 00 push $0x3126
132d: e8 b7 08 00 00 call 1be9 <kpanic>
1332: 83 c4 10 add $0x10,%esp
1335: 90 nop
1336: c9 leave
1337: c3 ret
00001338 <throw_exception21>:
1338: 55 push %ebp
1339: 89 e5 mov %esp,%ebp
133b: 83 ec 08 sub $0x8,%esp
133e: 83 ec 0c sub $0xc,%esp
1341: 68 44 31 00 00 push $0x3144
1346: e8 9e 08 00 00 call 1be9 <kpanic>
134b: 83 c4 10 add $0x10,%esp
134e: 90 nop
134f: c9 leave
1350: c3 ret
00001351 <throw_exception22>:
1351: 55 push %ebp
1352: 89 e5 mov %esp,%ebp
1354: 83 ec 08 sub $0x8,%esp
1357: 83 ec 0c sub $0xc,%esp
135a: 68 5d 31 00 00 push $0x315d
135f: e8 85 08 00 00 call 1be9 <kpanic>
1364: 83 c4 10 add $0x10,%esp
1367: 90 nop
1368: c9 leave
1369: c3 ret
0000136a <throw_exception24>:
136a: 55 push %ebp
136b: 89 e5 mov %esp,%ebp
136d: 83 ec 08 sub $0x8,%esp
1370: 83 ec 0c sub $0xc,%esp
1373: 68 7c 31 00 00 push $0x317c
1378: e8 6c 08 00 00 call 1be9 <kpanic>
137d: 83 c4 10 add $0x10,%esp
1380: 90 nop
1381: c9 leave
1382: c3 ret
00001383 <throw_exception25>:
1383: 55 push %ebp
1384: 89 e5 mov %esp,%ebp
1386: 83 ec 08 sub $0x8,%esp
1389: 83 ec 0c sub $0xc,%esp
138c: 68 9b 31 00 00 push $0x319b
1391: e8 53 08 00 00 call 1be9 <kpanic>
1396: 83 c4 10 add $0x10,%esp
1399: 90 nop
139a: c9 leave
139b: c3 ret
0000139c <throw_exception26>:
139c: 55 push %ebp
139d: 89 e5 mov %esp,%ebp
139f: 83 ec 08 sub $0x8,%esp
13a2: 83 ec 0c sub $0xc,%esp
13a5: 68 b7 31 00 00 push $0x31b7
13aa: e8 3a 08 00 00 call 1be9 <kpanic>
13af: 83 c4 10 add $0x10,%esp
13b2: 90 nop
13b3: c9 leave
13b4: c3 ret
000013b5 <throw_exception27>:
13b5: 55 push %ebp
13b6: 89 e5 mov %esp,%ebp
13b8: 83 ec 08 sub $0x8,%esp
13bb: e8 6f fd ff ff call 112f <terminal_clear_screen>
13c0: 83 ec 0c sub $0xc,%esp
13c3: 68 c4 31 00 00 push $0x31c4
13c8: e8 1c 08 00 00 call 1be9 <kpanic>
13cd: 83 c4 10 add $0x10,%esp
13d0: 90 nop
13d1: c9 leave
13d2: c3 ret
000013d3 <isr_init>:
13d3: 55 push %ebp
13d4: 89 e5 mov %esp,%ebp
13d6: 83 ec 08 sub $0x8,%esp
13d9: b8 76 11 00 00 mov $0x1176,%eax
13de: ba 00 00 00 00 mov $0x0,%edx
13e3: 83 ec 0c sub $0xc,%esp
13e6: 68 8e 00 00 00 push $0x8e
13eb: 6a 08 push $0x8
13ed: 52 push %edx
13ee: 50 push %eax
13ef: 6a 00 push $0x0
13f1: e8 e6 02 00 00 call 16dc <idt_set_desc>
13f6: 83 c4 20 add $0x20,%esp
13f9: b8 8f 11 00 00 mov $0x118f,%eax
13fe: ba 00 00 00 00 mov $0x0,%edx
1403: 83 ec 0c sub $0xc,%esp
1406: 68 8e 00 00 00 push $0x8e
140b: 6a 08 push $0x8
140d: 52 push %edx
140e: 50 push %eax
140f: 6a 01 push $0x1
1411: e8 c6 02 00 00 call 16dc <idt_set_desc>
1416: 83 c4 20 add $0x20,%esp
1419: b8 a8 11 00 00 mov $0x11a8,%eax
141e: ba 00 00 00 00 mov $0x0,%edx
1423: 83 ec 0c sub $0xc,%esp
1426: 68 8e 00 00 00 push $0x8e
142b: 6a 08 push $0x8
142d: 52 push %edx
142e: 50 push %eax
142f: 6a 02 push $0x2
1431: e8 a6 02 00 00 call 16dc <idt_set_desc>
1436: 83 c4 20 add $0x20,%esp
1439: b8 c1 11 00 00 mov $0x11c1,%eax
143e: ba 00 00 00 00 mov $0x0,%edx
1443: 83 ec 0c sub $0xc,%esp
1446: 68 8e 00 00 00 push $0x8e
144b: 6a 08 push $0x8
144d: 52 push %edx
144e: 50 push %eax
144f: 6a 03 push $0x3
1451: e8 86 02 00 00 call 16dc <idt_set_desc>
1456: 83 c4 20 add $0x20,%esp
1459: b8 da 11 00 00 mov $0x11da,%eax
145e: ba 00 00 00 00 mov $0x0,%edx
1463: 83 ec 0c sub $0xc,%esp
1466: 68 8e 00 00 00 push $0x8e
146b: 6a 08 push $0x8
146d: 52 push %edx
146e: 50 push %eax
146f: 6a 04 push $0x4
1471: e8 66 02 00 00 call 16dc <idt_set_desc>
1476: 83 c4 20 add $0x20,%esp
1479: b8 f3 11 00 00 mov $0x11f3,%eax
147e: ba 00 00 00 00 mov $0x0,%edx
1483: 83 ec 0c sub $0xc,%esp
1486: 68 8e 00 00 00 push $0x8e
148b: 6a 08 push $0x8
148d: 52 push %edx
148e: 50 push %eax
148f: 6a 05 push $0x5
1491: e8 46 02 00 00 call 16dc <idt_set_desc>
1496: 83 c4 20 add $0x20,%esp
1499: b8 0c 12 00 00 mov $0x120c,%eax
149e: ba 00 00 00 00 mov $0x0,%edx
14a3: 83 ec 0c sub $0xc,%esp
14a6: 68 8e 00 00 00 push $0x8e
14ab: 6a 08 push $0x8
14ad: 52 push %edx
14ae: 50 push %eax
14af: 6a 06 push $0x6
14b1: e8 26 02 00 00 call 16dc <idt_set_desc>
14b6: 83 c4 20 add $0x20,%esp
14b9: b8 25 12 00 00 mov $0x1225,%eax
14be: ba 00 00 00 00 mov $0x0,%edx
14c3: 83 ec 0c sub $0xc,%esp
14c6: 68 8e 00 00 00 push $0x8e
14cb: 6a 08 push $0x8
14cd: 52 push %edx
14ce: 50 push %eax
14cf: 6a 07 push $0x7
14d1: e8 06 02 00 00 call 16dc <idt_set_desc>
14d6: 83 c4 20 add $0x20,%esp
14d9: b8 3e 12 00 00 mov $0x123e,%eax
14de: ba 00 00 00 00 mov $0x0,%edx
14e3: 83 ec 0c sub $0xc,%esp
14e6: 68 8e 00 00 00 push $0x8e
14eb: 6a 08 push $0x8
14ed: 52 push %edx
14ee: 50 push %eax
14ef: 6a 08 push $0x8
14f1: e8 e6 01 00 00 call 16dc <idt_set_desc>
14f6: 83 c4 20 add $0x20,%esp
14f9: b8 57 12 00 00 mov $0x1257,%eax
14fe: ba 00 00 00 00 mov $0x0,%edx
1503: 83 ec 0c sub $0xc,%esp
1506: 68 8e 00 00 00 push $0x8e
150b: 6a 08 push $0x8
150d: 52 push %edx
150e: 50 push %eax
150f: 6a 0a push $0xa
1511: e8 c6 01 00 00 call 16dc <idt_set_desc>
1516: 83 c4 20 add $0x20,%esp
1519: b8 70 12 00 00 mov $0x1270,%eax
151e: ba 00 00 00 00 mov $0x0,%edx
1523: 83 ec 0c sub $0xc,%esp
1526: 68 8e 00 00 00 push $0x8e
152b: 6a 08 push $0x8
152d: 52 push %edx
152e: 50 push %eax
152f: 6a 0b push $0xb
1531: e8 a6 01 00 00 call 16dc <idt_set_desc>
1536: 83 c4 20 add $0x20,%esp
1539: b8 89 12 00 00 mov $0x1289,%eax
153e: ba 00 00 00 00 mov $0x0,%edx
1543: 83 ec 0c sub $0xc,%esp
1546: 68 8e 00 00 00 push $0x8e
154b: 6a 08 push $0x8
154d: 52 push %edx
154e: 50 push %eax
154f: 6a 0c push $0xc
1551: e8 86 01 00 00 call 16dc <idt_set_desc>
1556: 83 c4 20 add $0x20,%esp
1559: b8 a2 12 00 00 mov $0x12a2,%eax
155e: ba 00 00 00 00 mov $0x0,%edx
1563: 83 ec 0c sub $0xc,%esp
1566: 68 8e 00 00 00 push $0x8e
156b: 6a 08 push $0x8
156d: 52 push %edx
156e: 50 push %eax
156f: 6a 0d push $0xd
1571: e8 66 01 00 00 call 16dc <idt_set_desc>
1576: 83 c4 20 add $0x20,%esp
1579: b8 bb 12 00 00 mov $0x12bb,%eax
157e: ba 00 00 00 00 mov $0x0,%edx
1583: 83 ec 0c sub $0xc,%esp
1586: 68 8e 00 00 00 push $0x8e
158b: 6a 08 push $0x8
158d: 52 push %edx
158e: 50 push %eax
158f: 6a 0e push $0xe
1591: e8 46 01 00 00 call 16dc <idt_set_desc>
1596: 83 c4 20 add $0x20,%esp
1599: b8 d4 12 00 00 mov $0x12d4,%eax
159e: ba 00 00 00 00 mov $0x0,%edx
15a3: 83 ec 0c sub $0xc,%esp
15a6: 68 8e 00 00 00 push $0x8e
15ab: 6a 08 push $0x8
15ad: 52 push %edx
15ae: 50 push %eax
15af: 6a 10 push $0x10
15b1: e8 26 01 00 00 call 16dc <idt_set_desc>
15b6: 83 c4 20 add $0x20,%esp
15b9: b8 ed 12 00 00 mov $0x12ed,%eax
15be: ba 00 00 00 00 mov $0x0,%edx
15c3: 83 ec 0c sub $0xc,%esp
15c6: 68 8e 00 00 00 push $0x8e
15cb: 6a 08 push $0x8
15cd: 52 push %edx
15ce: 50 push %eax
15cf: 6a 11 push $0x11
15d1: e8 06 01 00 00 call 16dc <idt_set_desc>
15d6: 83 c4 20 add $0x20,%esp
15d9: b8 06 13 00 00 mov $0x1306,%eax
15de: ba 00 00 00 00 mov $0x0,%edx
15e3: 83 ec 0c sub $0xc,%esp
15e6: 68 8e 00 00 00 push $0x8e
15eb: 6a 08 push $0x8
15ed: 52 push %edx
15ee: 50 push %eax
15ef: 6a 12 push $0x12
15f1: e8 e6 00 00 00 call 16dc <idt_set_desc>
15f6: 83 c4 20 add $0x20,%esp
15f9: b8 1f 13 00 00 mov $0x131f,%eax
15fe: ba 00 00 00 00 mov $0x0,%edx
1603: 83 ec 0c sub $0xc,%esp
1606: 68 8e 00 00 00 push $0x8e
160b: 6a 08 push $0x8
160d: 52 push %edx
160e: 50 push %eax
160f: 6a 13 push $0x13
1611: e8 c6 00 00 00 call 16dc <idt_set_desc>
1616: 83 c4 20 add $0x20,%esp
1619: b8 38 13 00 00 mov $0x1338,%eax
161e: ba 00 00 00 00 mov $0x0,%edx
1623: 83 ec 0c sub $0xc,%esp
1626: 68 8e 00 00 00 push $0x8e
162b: 6a 08 push $0x8
162d: 52 push %edx
162e: 50 push %eax
162f: 6a 14 push $0x14
1631: e8 a6 00 00 00 call 16dc <idt_set_desc>
1636: 83 c4 20 add $0x20,%esp
1639: b8 51 13 00 00 mov $0x1351,%eax
163e: ba 00 00 00 00 mov $0x0,%edx
1643: 83 ec 0c sub $0xc,%esp
1646: 68 8e 00 00 00 push $0x8e
164b: 6a 08 push $0x8
164d: 52 push %edx
164e: 50 push %eax
164f: 6a 15 push $0x15
1651: e8 86 00 00 00 call 16dc <idt_set_desc>
1656: 83 c4 20 add $0x20,%esp
1659: b8 6a 13 00 00 mov $0x136a,%eax
165e: ba 00 00 00 00 mov $0x0,%edx
1663: 83 ec 0c sub $0xc,%esp
1666: 68 8e 00 00 00 push $0x8e
166b: 6a 08 push $0x8
166d: 52 push %edx
166e: 50 push %eax
166f: 6a 17 push $0x17
1671: e8 66 00 00 00 call 16dc <idt_set_desc>
1676: 83 c4 20 add $0x20,%esp
1679: b8 83 13 00 00 mov $0x1383,%eax
167e: ba 00 00 00 00 mov $0x0,%edx
1683: 83 ec 0c sub $0xc,%esp
1686: 68 8e 00 00 00 push $0x8e
168b: 6a 08 push $0x8
168d: 52 push %edx
168e: 50 push %eax
168f: 6a 18 push $0x18
1691: e8 46 00 00 00 call 16dc <idt_set_desc>
1696: 83 c4 20 add $0x20,%esp
1699: b8 9c 13 00 00 mov $0x139c,%eax
169e: ba 00 00 00 00 mov $0x0,%edx
16a3: 83 ec 0c sub $0xc,%esp
16a6: 68 8e 00 00 00 push $0x8e
16ab: 6a 08 push $0x8
16ad: 52 push %edx
16ae: 50 push %eax
16af: 6a 19 push $0x19
16b1: e8 26 00 00 00 call 16dc <idt_set_desc>
16b6: 83 c4 20 add $0x20,%esp
16b9: b8 b5 13 00 00 mov $0x13b5,%eax
16be: ba 00 00 00 00 mov $0x0,%edx
16c3: 83 ec 0c sub $0xc,%esp
16c6: 68 8e 00 00 00 push $0x8e
16cb: 6a 08 push $0x8
16cd: 52 push %edx
16ce: 50 push %eax
16cf: 6a 1a push $0x1a
16d1: e8 06 00 00 00 call 16dc <idt_set_desc>
16d6: 83 c4 20 add $0x20,%esp
16d9: 90 nop
16da: c9 leave
16db: c3 ret
000016dc <idt_set_desc>:
16dc: 55 push %ebp
16dd: 89 e5 mov %esp,%ebp
16df: 83 ec 18 sub $0x18,%esp
16e2: 8b 45 08 mov 0x8(%ebp),%eax
16e5: 8b 55 14 mov 0x14(%ebp),%edx
16e8: 8b 4d 18 mov 0x18(%ebp),%ecx
16eb: 88 45 fc mov %al,-0x4(%ebp)
16ee: 8b 45 0c mov 0xc(%ebp),%eax
16f1: 89 45 f0 mov %eax,-0x10(%ebp)
16f4: 8b 45 10 mov 0x10(%ebp),%eax
16f7: 89 45 f4 mov %eax,-0xc(%ebp)
16fa: 89 d0 mov %edx,%eax
16fc: 66 89 45 f8 mov %ax,-0x8(%ebp)
1700: 89 c8 mov %ecx,%eax
1702: 88 45 ec mov %al,-0x14(%ebp)
1705: 8b 45 f0 mov -0x10(%ebp),%eax
1708: 8b 55 f4 mov -0xc(%ebp),%edx
170b: 0f ac d0 10 shrd $0x10,%edx,%eax
170f: c1 ea 10 shr $0x10,%edx
1712: 0f b6 4d fc movzbl -0x4(%ebp),%ecx
1716: 66 89 04 cd 46 10 01 mov %ax,0x11046(,%ecx,8)
171d: 00
171e: 0f b6 45 fc movzbl -0x4(%ebp),%eax
1722: 8b 55 f0 mov -0x10(%ebp),%edx
1725: 66 89 14 c5 40 10 01 mov %dx,0x11040(,%eax,8)
172c: 00
172d: 0f b6 45 fc movzbl -0x4(%ebp),%eax
1731: c6 04 c5 44 10 01 00 movb $0x0,0x11044(,%eax,8)
1738: 00
1739: 0f b6 45 fc movzbl -0x4(%ebp),%eax
173d: 0f b7 55 f8 movzwl -0x8(%ebp),%edx
1741: 66 89 14 c5 42 10 01 mov %dx,0x11042(,%eax,8)
1748: 00
1749: 0f b6 45 fc movzbl -0x4(%ebp),%eax
174d: 0f b6 55 ec movzbl -0x14(%ebp),%edx
1751: 88 14 c5 45 10 01 00 mov %dl,0x11045(,%eax,8)
1758: 90 nop
1759: c9 leave
175a: c3 ret
0000175b <idt_init>:
175b: 55 push %ebp
175c: 89 e5 mov %esp,%ebp
175e: 83 ec 08 sub $0x8,%esp
1761: b8 40 10 01 00 mov $0x11040,%eax
1766: a3 42 18 01 00 mov %eax,0x11842
176b: 66 c7 05 40 18 01 00 movw $0x7ff,0x11840
1772: ff 07
1774: 83 ec 04 sub $0x4,%esp
1777: 68 00 08 00 00 push $0x800
177c: 6a 00 push $0x0
177e: 68 40 10 01 00 push $0x11040
1783: e8 cc 02 00 00 call 1a54 <memset>
1788: 83 c4 10 add $0x10,%esp
178b: e8 70 f8 ff ff call 1000 <idt_loader>
1790: e8 3e fc ff ff call 13d3 <isr_init>
1795: 83 ec 0c sub $0xc,%esp
1798: 68 d8 31 00 00 push $0x31d8
179d: e8 a7 f8 ff ff call 1049 <print>
17a2: 83 c4 10 add $0x10,%esp
17a5: 90 nop
17a6: c9 leave
17a7: c3 ret
000017a8 <gdt_set_desc>:
17a8: 55 push %ebp
17a9: 89 e5 mov %esp,%ebp
17ab: 83 ec 18 sub $0x18,%esp
17ae: 8b 4d 1c mov 0x1c(%ebp),%ecx
17b1: 8b 55 20 mov 0x20(%ebp),%edx
17b4: 8b 45 0c mov 0xc(%ebp),%eax
17b7: 89 45 f8 mov %eax,-0x8(%ebp)
17ba: 8b 45 10 mov 0x10(%ebp),%eax
17bd: 89 45 fc mov %eax,-0x4(%ebp)
17c0: 8b 45 14 mov 0x14(%ebp),%eax
17c3: 89 45 f0 mov %eax,-0x10(%ebp)
17c6: 8b 45 18 mov 0x18(%ebp),%eax
17c9: 89 45 f4 mov %eax,-0xc(%ebp)
17cc: 89 c8 mov %ecx,%eax
17ce: 88 45 ec mov %al,-0x14(%ebp)
17d1: 89 d0 mov %edx,%eax
17d3: 88 45 e8 mov %al,-0x18(%ebp)
17d6: 8b 45 f8 mov -0x8(%ebp),%eax
17d9: 89 c2 mov %eax,%edx
17db: 8b 45 08 mov 0x8(%ebp),%eax
17de: 66 89 14 c5 52 18 01 mov %dx,0x11852(,%eax,8)
17e5: 00
17e6: 8b 45 f8 mov -0x8(%ebp),%eax
17e9: 8b 55 fc mov -0x4(%ebp),%edx
17ec: 0f ac d0 10 shrd $0x10,%edx,%eax
17f0: c1 ea 10 shr $0x10,%edx
17f3: 89 c2 mov %eax,%edx
17f5: 8b 45 08 mov 0x8(%ebp),%eax
17f8: 88 14 c5 54 18 01 00 mov %dl,0x11854(,%eax,8)
17ff: 8b 45 f8 mov -0x8(%ebp),%eax
1802: 8b 55 fc mov -0x4(%ebp),%edx
1805: 0f ac d0 18 shrd $0x18,%edx,%eax
1809: c1 ea 18 shr $0x18,%edx
180c: 89 c2 mov %eax,%edx
180e: 8b 45 08 mov 0x8(%ebp),%eax
1811: 88 14 c5 57 18 01 00 mov %dl,0x11857(,%eax,8)
1818: 8b 45 f0 mov -0x10(%ebp),%eax
181b: 89 c2 mov %eax,%edx
181d: 8b 45 08 mov 0x8(%ebp),%eax
1820: 66 89 14 c5 50 18 01 mov %dx,0x11850(,%eax,8)
1827: 00
1828: 8b 45 f0 mov -0x10(%ebp),%eax
182b: 8b 55 f4 mov -0xc(%ebp),%edx
182e: 0f ac d0 10 shrd $0x10,%edx,%eax
1832: c1 ea 10 shr $0x10,%edx
1835: 83 e0 0f and $0xf,%eax
1838: 89 c2 mov %eax,%edx
183a: 8b 45 08 mov 0x8(%ebp),%eax
183d: 88 14 c5 56 18 01 00 mov %dl,0x11856(,%eax,8)
1844: 8b 45 08 mov 0x8(%ebp),%eax
1847: 0f b6 04 c5 56 18 01 movzbl 0x11856(,%eax,8),%eax
184e: 00
184f: 89 c2 mov %eax,%edx
1851: 0f b6 45 e8 movzbl -0x18(%ebp),%eax
1855: 83 e0 f0 and $0xfffffff0,%eax
1858: 09 d0 or %edx,%eax
185a: 89 c2 mov %eax,%edx
185c: 8b 45 08 mov 0x8(%ebp),%eax
185f: 88 14 c5 56 18 01 00 mov %dl,0x11856(,%eax,8)
1866: 8b 45 08 mov 0x8(%ebp),%eax
1869: 0f b6 55 ec movzbl -0x14(%ebp),%edx
186d: 88 14 c5 55 18 01 00 mov %dl,0x11855(,%eax,8)
1874: 90 nop
1875: c9 leave
1876: c3 ret
00001877 <gdt_init>:
1877: 55 push %ebp
1878: 89 e5 mov %esp,%ebp
187a: 83 ec 08 sub $0x8,%esp
187d: b8 50 18 01 00 mov $0x11850,%eax
1882: a3 4a 18 01 00 mov %eax,0x1184a
1887: 66 c7 05 48 18 01 00 movw $0x27,0x11848
188e: 27 00
1890: 83 ec 04 sub $0x4,%esp
1893: 6a 00 push $0x0
1895: 6a 00 push $0x0
1897: 6a 00 push $0x0
1899: 6a 00 push $0x0
189b: 6a 00 push $0x0
189d: 6a 00 push $0x0
189f: 6a 00 push $0x0
18a1: e8 02 ff ff ff call 17a8 <gdt_set_desc>
18a6: 83 c4 20 add $0x20,%esp
18a9: 83 ec 04 sub $0x4,%esp
18ac: 68 cf 00 00 00 push $0xcf
18b1: 68 9a 00 00 00 push $0x9a
18b6: 6a 00 push $0x0
18b8: 6a ff push $0xffffffff
18ba: 6a 00 push $0x0
18bc: 6a 00 push $0x0
18be: 6a 01 push $0x1
18c0: e8 e3 fe ff ff call 17a8 <gdt_set_desc>
18c5: 83 c4 20 add $0x20,%esp
18c8: 83 ec 04 sub $0x4,%esp
18cb: 68 cf 00 00 00 push $0xcf
18d0: 68 92 00 00 00 push $0x92
18d5: 6a 00 push $0x0
18d7: 6a ff push $0xffffffff
18d9: 6a 00 push $0x0
18db: 6a 00 push $0x0
18dd: 6a 02 push $0x2
18df: e8 c4 fe ff ff call 17a8 <gdt_set_desc>
18e4: 83 c4 20 add $0x20,%esp
18e7: 83 ec 04 sub $0x4,%esp
18ea: 68 cf 00 00 00 push $0xcf
18ef: 68 fa 00 00 00 push $0xfa
18f4: 6a 00 push $0x0
18f6: 6a ff push $0xffffffff
18f8: 6a 00 push $0x0
18fa: 6a 00 push $0x0
18fc: 6a 03 push $0x3
18fe: e8 a5 fe ff ff call 17a8 <gdt_set_desc>
1903: 83 c4 20 add $0x20,%esp
1906: 83 ec 04 sub $0x4,%esp
1909: 68 cf 00 00 00 push $0xcf
190e: 68 f2 00 00 00 push $0xf2
1913: 6a 00 push $0x0
1915: 6a ff push $0xffffffff
1917: 6a 00 push $0x0
1919: 6a 00 push $0x0
191b: 6a 04 push $0x4
191d: e8 86 fe ff ff call 17a8 <gdt_set_desc>
1922: 83 c4 20 add $0x20,%esp
1925: e8 e6 f6 ff ff call 1010 <gdt_flush>
192a: 83 ec 0c sub $0xc,%esp
192d: 68 f2 31 00 00 push $0x31f2
1932: e8 12 f7 ff ff call 1049 <print>
1937: 83 c4 10 add $0x10,%esp
193a: 90 nop
193b: c9 leave
193c: c3 ret
0000193d <strcmp>:
193d: 55 push %ebp
193e: 89 e5 mov %esp,%ebp
1940: 83 ec 18 sub $0x18,%esp
1943: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
194a: eb 45 jmp 1991 <strcmp+0x54>
194c: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
1953: eb 25 jmp 197a <strcmp+0x3d>
1955: 8b 55 f4 mov -0xc(%ebp),%edx
1958: 8b 45 08 mov 0x8(%ebp),%eax
195b: 01 d0 add %edx,%eax
195d: 0f b6 10 movzbl (%eax),%edx
1960: 8b 4d f4 mov -0xc(%ebp),%ecx
1963: 8b 45 0c mov 0xc(%ebp),%eax
1966: 01 c8 add %ecx,%eax
1968: 0f b6 00 movzbl (%eax),%eax
196b: 38 c2 cmp %al,%dl
196d: 74 07 je 1976 <strcmp+0x39>
196f: b8 01 00 00 00 mov $0x1,%eax
1974: eb 33 jmp 19a9 <strcmp+0x6c>
1976: 83 45 f4 01 addl $0x1,-0xc(%ebp)
197a: 83 ec 0c sub $0xc,%esp
197d: ff 75 0c push 0xc(%ebp)
1980: e8 a8 00 00 00 call 1a2d <kcharlen>
1985: 83 c4 10 add $0x10,%esp
1988: 39 45 f4 cmp %eax,-0xc(%ebp)
198b: 7c c8 jl 1955 <strcmp+0x18>
198d: 83 45 f4 01 addl $0x1,-0xc(%ebp)
1991: 83 ec 0c sub $0xc,%esp
1994: ff 75 08 push 0x8(%ebp)
1997: e8 91 00 00 00 call 1a2d <kcharlen>
199c: 83 c4 10 add $0x10,%esp
199f: 39 45 f4 cmp %eax,-0xc(%ebp)
19a2: 7c a8 jl 194c <strcmp+0xf>
19a4: b8 00 00 00 00 mov $0x0,%eax
19a9: c9 leave
19aa: c3 ret
000019ab <strncmp>:
19ab: 55 push %ebp
19ac: 89 e5 mov %esp,%ebp
19ae: 83 ec 08 sub $0x8,%esp
19b1: 83 ec 0c sub $0xc,%esp
19b4: ff 75 08 push 0x8(%ebp)
19b7: e8 71 00 00 00 call 1a2d <kcharlen>
19bc: 83 c4 10 add $0x10,%esp
19bf: 39 45 10 cmp %eax,0x10(%ebp)
19c2: 7f 13 jg 19d7 <strncmp+0x2c>
19c4: 83 ec 0c sub $0xc,%esp
19c7: ff 75 0c push 0xc(%ebp)
19ca: e8 5e 00 00 00 call 1a2d <kcharlen>
19cf: 83 c4 10 add $0x10,%esp
19d2: 39 45 10 cmp %eax,0x10(%ebp)
19d5: 7e 13 jle 19ea <strncmp+0x3f>
19d7: b8 02 00 00 00 mov $0x2,%eax
19dc: eb 4d jmp 1a2b <strncmp+0x80>
19de: 83 6d 10 01 subl $0x1,0x10(%ebp)
19e2: 83 45 0c 01 addl $0x1,0xc(%ebp)
19e6: 83 45 08 01 addl $0x1,0x8(%ebp)
19ea: 83 7d 10 00 cmpl $0x0,0x10(%ebp)
19ee: 7e 18 jle 1a08 <strncmp+0x5d>
19f0: 8b 45 08 mov 0x8(%ebp),%eax
19f3: 0f b6 00 movzbl (%eax),%eax
19f6: 84 c0 test %al,%al
19f8: 74 0e je 1a08 <strncmp+0x5d>
19fa: 8b 45 08 mov 0x8(%ebp),%eax
19fd: 0f b6 00 movzbl (%eax),%eax
1a00: 0f be c0 movsbl %al,%eax
1a03: 39 45 0c cmp %eax,0xc(%ebp)
1a06: 74 d6 je 19de <strncmp+0x33>
1a08: 83 7d 10 00 cmpl $0x0,0x10(%ebp)
1a0c: 75 07 jne 1a15 <strncmp+0x6a>
1a0e: b8 00 00 00 00 mov $0x0,%eax
1a13: eb 16 jmp 1a2b <strncmp+0x80>
1a15: 8b 45 08 mov 0x8(%ebp),%eax
1a18: 0f b6 00 movzbl (%eax),%eax
1a1b: 0f be d0 movsbl %al,%edx
1a1e: 8b 45 0c mov 0xc(%ebp),%eax
1a21: 0f b6 00 movzbl (%eax),%eax
1a24: 0f be c8 movsbl %al,%ecx
1a27: 89 d0 mov %edx,%eax
1a29: 29 c8 sub %ecx,%eax
1a2b: c9 leave
1a2c: c3 ret
00001a2d <kcharlen>:
1a2d: 55 push %ebp
1a2e: 89 e5 mov %esp,%ebp
1a30: 83 ec 10 sub $0x10,%esp
1a33: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%ebp)
1a3a: eb 04 jmp 1a40 <kcharlen+0x13>
1a3c: 83 45 fc 01 addl $0x1,-0x4(%ebp)
1a40: 8b 55 fc mov -0x4(%ebp),%edx
1a43: 8b 45 08 mov 0x8(%ebp),%eax
1a46: 01 d0 add %edx,%eax
1a48: 0f b6 00 movzbl (%eax),%eax
1a4b: 84 c0 test %al,%al
1a4d: 75 ed jne 1a3c <kcharlen+0xf>
1a4f: 8b 45 fc mov -0x4(%ebp),%eax
1a52: c9 leave
1a53: c3 ret
00001a54 <memset>:
1a54: 55 push %ebp
1a55: 89 e5 mov %esp,%ebp
1a57: 83 ec 10 sub $0x10,%esp
1a5a: 8b 45 08 mov 0x8(%ebp),%eax
1a5d: 89 45 f8 mov %eax,-0x8(%ebp)
1a60: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
1a67: eb 11 jmp 1a7a <memset+0x26>
1a69: 8b 55 f8 mov -0x8(%ebp),%edx
1a6c: 8b 45 fc mov -0x4(%ebp),%eax
1a6f: 01 d0 add %edx,%eax
1a71: 8b 55 0c mov 0xc(%ebp),%edx
1a74: 88 10 mov %dl,(%eax)
1a76: 83 45 fc 01 addl $0x1,-0x4(%ebp)
1a7a: 8b 45 fc mov -0x4(%ebp),%eax
1a7d: 3b 45 10 cmp 0x10(%ebp),%eax
1a80: 72 e7 jb 1a69 <memset+0x15>
1a82: 8b 45 08 mov 0x8(%ebp),%eax
1a85: c9 leave
1a86: c3 ret
00001a87 <itoa>:
1a87: 55 push %ebp
1a88: 89 e5 mov %esp,%ebp
1a8a: 83 ec 10 sub $0x10,%esp
1a8d: c7 45 fc 1e 00 00 00 movl $0x1e,-0x4(%ebp)
1a94: eb 29 jmp 1abf <itoa+0x38>
1a96: 8b 45 08 mov 0x8(%ebp),%eax
1a99: 99 cltd
1a9a: f7 7d 0c idivl 0xc(%ebp)
1a9d: 89 d0 mov %edx,%eax
1a9f: 0f b6 80 0c 32 00 00 movzbl 0x320c(%eax),%eax
1aa6: 8b 55 fc mov -0x4(%ebp),%edx
1aa9: 81 c2 80 18 01 00 add $0x11880,%edx
1aaf: 88 02 mov %al,(%edx)
1ab1: 83 6d fc 01 subl $0x1,-0x4(%ebp)
1ab5: 8b 45 08 mov 0x8(%ebp),%eax
1ab8: 99 cltd
1ab9: f7 7d 0c idivl 0xc(%ebp)
1abc: 89 45 08 mov %eax,0x8(%ebp)
1abf: 83 7d 08 00 cmpl $0x0,0x8(%ebp)
1ac3: 74 06 je 1acb <itoa+0x44>
1ac5: 83 7d fc 00 cmpl $0x0,-0x4(%ebp)
1ac9: 75 cb jne 1a96 <itoa+0xf>
1acb: 8b 45 fc mov -0x4(%ebp),%eax
1ace: 83 c0 01 add $0x1,%eax
1ad1: 05 80 18 01 00 add $0x11880,%eax
1ad6: c9 leave
1ad7: c3 ret
00001ad8 <lltoa>:
1ad8: 55 push %ebp
1ad9: 89 e5 mov %esp,%ebp
1adb: 57 push %edi
1adc: 56 push %esi
1add: 53 push %ebx
1ade: 83 ec 2c sub $0x2c,%esp
1ae1: 8b 45 08 mov 0x8(%ebp),%eax
1ae4: 89 45 d0 mov %eax,-0x30(%ebp)
1ae7: 8b 45 0c mov 0xc(%ebp),%eax
1aea: 89 45 d4 mov %eax,-0x2c(%ebp)
1aed: c7 45 e4 3e 00 00 00 movl $0x3e,-0x1c(%ebp)
1af4: 8b 45 d4 mov -0x2c(%ebp),%eax
1af7: c1 e8 1f shr $0x1f,%eax
1afa: 0f b6 c0 movzbl %al,%eax
1afd: 89 45 e0 mov %eax,-0x20(%ebp)
1b00: 83 7d e0 00 cmpl $0x0,-0x20(%ebp)
1b04: 74 0a je 1b10 <lltoa+0x38>
1b06: f7 5d d0 negl -0x30(%ebp)
1b09: 83 55 d4 00 adcl $0x0,-0x2c(%ebp)
1b0d: f7 5d d4 negl -0x2c(%ebp)
1b10: 8b 45 d0 mov -0x30(%ebp),%eax
1b13: 8b 55 d4 mov -0x2c(%ebp),%edx
1b16: 89 c1 mov %eax,%ecx
1b18: 89 d3 mov %edx,%ebx
1b1a: 89 d8 mov %ebx,%eax
1b1c: 09 c8 or %ecx,%eax
1b1e: 85 c0 test %eax,%eax
1b20: 75 51 jne 1b73 <lltoa+0x9b>
1b22: b8 1d 32 00 00 mov $0x321d,%eax
1b27: e9 80 00 00 00 jmp 1bac <lltoa+0xd4>
1b2c: 8b 45 10 mov 0x10(%ebp),%eax
1b2f: 99 cltd
1b30: 8b 4d d0 mov -0x30(%ebp),%ecx
1b33: 8b 5d d4 mov -0x2c(%ebp),%ebx
1b36: 52 push %edx
1b37: 50 push %eax
1b38: 53 push %ebx
1b39: 51 push %ecx
1b3a: e8 51 07 00 00 call 2290 <__moddi3>
1b3f: 83 c4 10 add $0x10,%esp
1b42: 05 0c 32 00 00 add $0x320c,%eax
1b47: 0f b6 00 movzbl (%eax),%eax
1b4a: 8b 55 e4 mov -0x1c(%ebp),%edx
1b4d: 81 c2 a0 18 01 00 add $0x118a0,%edx
1b53: 88 02 mov %al,(%edx)
1b55: 83 6d e4 01 subl $0x1,-0x1c(%ebp)
1b59: 8b 45 10 mov 0x10(%ebp),%eax
1b5c: 99 cltd
1b5d: 52 push %edx
1b5e: 50 push %eax
1b5f: ff 75 d4 push -0x2c(%ebp)
1b62: ff 75 d0 push -0x30(%ebp)
1b65: e8 e6 05 00 00 call 2150 <__divdi3>
1b6a: 83 c4 10 add $0x10,%esp
1b6d: 89 45 d0 mov %eax,-0x30(%ebp)
1b70: 89 55 d4 mov %edx,-0x2c(%ebp)
1b73: 8b 45 d0 mov -0x30(%ebp),%eax
1b76: 8b 55 d4 mov -0x2c(%ebp),%edx
1b79: 89 c6 mov %eax,%esi
1b7b: 89 d7 mov %edx,%edi
1b7d: 89 f8 mov %edi,%eax
1b7f: 09 f0 or %esi,%eax
1b81: 85 c0 test %eax,%eax
1b83: 74 06 je 1b8b <lltoa+0xb3>
1b85: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp)
1b89: 75 a1 jne 1b2c <lltoa+0x54>
1b8b: 83 7d e0 00 cmpl $0x0,-0x20(%ebp)
1b8f: 74 10 je 1ba1 <lltoa+0xc9>
1b91: 8b 45 e4 mov -0x1c(%ebp),%eax
1b94: 8d 50 ff lea -0x1(%eax),%edx
1b97: 89 55 e4 mov %edx,-0x1c(%ebp)
1b9a: c6 80 a0 18 01 00 2d movb $0x2d,0x118a0(%eax)
1ba1: 8b 45 e4 mov -0x1c(%ebp),%eax
1ba4: 83 c0 01 add $0x1,%eax
1ba7: 05 a0 18 01 00 add $0x118a0,%eax
1bac: 8d 65 f4 lea -0xc(%ebp),%esp
1baf: 5b pop %ebx
1bb0: 5e pop %esi
1bb1: 5f pop %edi
1bb2: 5d pop %ebp
1bb3: c3 ret
00001bb4 <khash>:
1bb4: 55 push %ebp
1bb5: 89 e5 mov %esp,%ebp
1bb7: 83 ec 10 sub $0x10,%esp
1bba: c7 45 fc 05 15 00 00 movl $0x1505,-0x4(%ebp)
1bc1: eb 09 jmp 1bcc <khash+0x18>
1bc3: 8b 45 fc mov -0x4(%ebp),%eax
1bc6: c1 e0 05 shl $0x5,%eax
1bc9: 01 45 fc add %eax,-0x4(%ebp)
1bcc: 8b 45 08 mov 0x8(%ebp),%eax
1bcf: 8d 50 01 lea 0x1(%eax),%edx
1bd2: 89 55 08 mov %edx,0x8(%ebp)
1bd5: 0f b6 00 movzbl (%eax),%eax
1bd8: 0f be c0 movsbl %al,%eax
1bdb: 89 45 f8 mov %eax,-0x8(%ebp)
1bde: 83 7d f8 00 cmpl $0x0,-0x8(%ebp)
1be2: 75 df jne 1bc3 <khash+0xf>
1be4: 8b 45 fc mov -0x4(%ebp),%eax
1be7: c9 leave
1be8: c3 ret
00001be9 <kpanic>:
1be9: 55 push %ebp
1bea: 89 e5 mov %esp,%ebp
1bec: 83 ec 08 sub $0x8,%esp
1bef: e8 3b f5 ff ff call 112f <terminal_clear_screen>
1bf4: 83 ec 0c sub $0xc,%esp
1bf7: 68 1f 32 00 00 push $0x321f
1bfc: e8 48 f4 ff ff call 1049 <print>
1c01: 83 c4 10 add $0x10,%esp
1c04: 83 ec 0c sub $0xc,%esp
1c07: ff 75 08 push 0x8(%ebp)
1c0a: e8 3a f4 ff ff call 1049 <print>
1c0f: 83 c4 10 add $0x10,%esp
1c12: fa cli
1c13: f4 hlt
1c14: 90 nop
1c15: c9 leave
1c16: c3 ret
00001c17 <kmain>:
1c17: 55 push %ebp
1c18: 89 e5 mov %esp,%ebp
1c1a: 83 ec 08 sub $0x8,%esp
1c1d: e8 0d f5 ff ff call 112f <terminal_clear_screen>
1c22: 81 7d 0c 02 b0 ad 2b cmpl $0x2badb002,0xc(%ebp)
1c29: 74 10 je 1c3b <kmain+0x24>
1c2b: 83 ec 0c sub $0xc,%esp
1c2e: 68 3d 32 00 00 push $0x323d
1c33: e8 b1 ff ff ff call 1be9 <kpanic>
1c38: 83 c4 10 add $0x10,%esp
1c3b: 8b 45 08 mov 0x8(%ebp),%eax
1c3e: a3 e0 18 01 00 mov %eax,0x118e0
1c43: e8 2f fc ff ff call 1877 <gdt_init>
1c48: e8 0e fb ff ff call 175b <idt_init>
1c4d: e8 07 00 00 00 call 1c59 <command_line>
1c52: e8 bf 01 00 00 call 1e16 <shell_init>
1c57: eb f9 jmp 1c52 <kmain+0x3b>
00001c59 <command_line>:
1c59: 55 push %ebp
1c5a: 89 e5 mov %esp,%ebp
1c5c: 83 ec 08 sub $0x8,%esp
1c5f: 83 ec 0c sub $0xc,%esp
1c62: 68 54 32 00 00 push $0x3254
1c67: e8 dd f3 ff ff call 1049 <print>
1c6c: 83 c4 10 add $0x10,%esp
1c6f: 90 nop
1c70: c9 leave
1c71: c3 ret
00001c72 <exception_invalid_usage>:
1c72: 55 push %ebp
1c73: 89 e5 mov %esp,%ebp
1c75: 83 ec 08 sub $0x8,%esp
1c78: 83 ec 0c sub $0xc,%esp
1c7b: 68 61 32 00 00 push $0x3261
1c80: e8 c4 f3 ff ff call 1049 <print>
1c85: 83 c4 10 add $0x10,%esp
1c88: e8 cc ff ff ff call 1c59 <command_line>
1c8d: 90 nop
1c8e: c9 leave
1c8f: c3 ret
00001c90 <shell_about>:
1c90: 55 push %ebp
1c91: 89 e5 mov %esp,%ebp
1c93: 83 ec 08 sub $0x8,%esp
1c96: 83 ec 0c sub $0xc,%esp
1c99: 68 78 32 00 00 push $0x3278
1c9e: e8 a6 f3 ff ff call 1049 <print>
1ca3: 83 c4 10 add $0x10,%esp
1ca6: e8 ae ff ff ff call 1c59 <command_line>
1cab: 90 nop
1cac: c9 leave
1cad: c3 ret
00001cae <shell_clear>:
1cae: 55 push %ebp
1caf: 89 e5 mov %esp,%ebp
1cb1: 83 ec 08 sub $0x8,%esp
1cb4: e8 76 f4 ff ff call 112f <terminal_clear_screen>
1cb9: e8 9b ff ff ff call 1c59 <command_line>
1cbe: 90 nop
1cbf: c9 leave
1cc0: c3 ret
00001cc1 <shell_echo>:
1cc1: 55 push %ebp
1cc2: 89 e5 mov %esp,%ebp
1cc4: 83 ec 08 sub $0x8,%esp
1cc7: 83 45 08 05 addl $0x5,0x8(%ebp)
1ccb: 83 ec 0c sub $0xc,%esp
1cce: 68 eb 32 00 00 push $0x32eb
1cd3: e8 71 f3 ff ff call 1049 <print>
1cd8: 83 c4 10 add $0x10,%esp
1cdb: 83 ec 0c sub $0xc,%esp
1cde: ff 75 08 push 0x8(%ebp)
1ce1: e8 63 f3 ff ff call 1049 <print>
1ce6: 83 c4 10 add $0x10,%esp
1ce9: e8 6b ff ff ff call 1c59 <command_line>
1cee: 90 nop
1cef: c9 leave
1cf0: c3 ret
00001cf1 <shell_totalmemory>:
1cf1: 55 push %ebp
1cf2: 89 e5 mov %esp,%ebp
1cf4: 83 ec 08 sub $0x8,%esp
1cf7: 83 ec 0c sub $0xc,%esp
1cfa: 68 ed 32 00 00 push $0x32ed
1cff: e8 45 f3 ff ff call 1049 <print>
1d04: 83 c4 10 add $0x10,%esp
1d07: a1 e0 18 01 00 mov 0x118e0,%eax
1d0c: 8b 50 04 mov 0x4(%eax),%edx
1d0f: a1 e0 18 01 00 mov 0x118e0,%eax
1d14: 8b 40 08 mov 0x8(%eax),%eax
1d17: 01 d0 add %edx,%eax
1d19: ba 00 00 00 00 mov $0x0,%edx
1d1e: 83 ec 04 sub $0x4,%esp
1d21: 6a 0a push $0xa
1d23: 52 push %edx
1d24: 50 push %eax
1d25: e8 ae fd ff ff call 1ad8 <lltoa>
1d2a: 83 c4 10 add $0x10,%esp
1d2d: 83 ec 0c sub $0xc,%esp
1d30: 50 push %eax
1d31: e8 13 f3 ff ff call 1049 <print>
1d36: 83 c4 10 add $0x10,%esp
1d39: 83 ec 0c sub $0xc,%esp
1d3c: 68 07 33 00 00 push $0x3307
1d41: e8 03 f3 ff ff call 1049 <print>
1d46: 83 c4 10 add $0x10,%esp
1d49: e8 0b ff ff ff call 1c59 <command_line>
1d4e: 90 nop
1d4f: c9 leave
1d50: c3 ret
00001d51 <shell_print_mmap>:
1d51: 55 push %ebp
1d52: 89 e5 mov %esp,%ebp
1d54: 83 ec 08 sub $0x8,%esp
1d57: 83 ec 0c sub $0xc,%esp
1d5a: 68 eb 32 00 00 push $0x32eb
1d5f: e8 e5 f2 ff ff call 1049 <print>
1d64: 83 c4 10 add $0x10,%esp
1d67: 83 ec 0c sub $0xc,%esp
1d6a: 68 0a 33 00 00 push $0x330a
1d6f: e8 d5 f2 ff ff call 1049 <print>
1d74: 83 c4 10 add $0x10,%esp
1d77: a1 e0 18 01 00 mov 0x118e0,%eax
1d7c: 8b 40 04 mov 0x4(%eax),%eax
1d7f: ba 00 00 00 00 mov $0x0,%edx
1d84: 83 ec 04 sub $0x4,%esp
1d87: 6a 0a push $0xa
1d89: 52 push %edx
1d8a: 50 push %eax
1d8b: e8 48 fd ff ff call 1ad8 <lltoa>
1d90: 83 c4 10 add $0x10,%esp
1d93: 83 ec 0c sub $0xc,%esp
1d96: 50 push %eax
1d97: e8 ad f2 ff ff call 1049 <print>
1d9c: 83 c4 10 add $0x10,%esp
1d9f: 83 ec 0c sub $0xc,%esp
1da2: 68 15 33 00 00 push $0x3315
1da7: e8 9d f2 ff ff call 1049 <print>
1dac: 83 c4 10 add $0x10,%esp
1daf: a1 e0 18 01 00 mov 0x118e0,%eax
1db4: 8b 40 08 mov 0x8(%eax),%eax
1db7: ba 00 00 00 00 mov $0x0,%edx
1dbc: 83 ec 04 sub $0x4,%esp
1dbf: 6a 0a push $0xa
1dc1: 52 push %edx
1dc2: 50 push %eax
1dc3: e8 10 fd ff ff call 1ad8 <lltoa>
1dc8: 83 c4 10 add $0x10,%esp
1dcb: 83 ec 0c sub $0xc,%esp
1dce: 50 push %eax
1dcf: e8 75 f2 ff ff call 1049 <print>
1dd4: 83 c4 10 add $0x10,%esp
1dd7: 83 ec 0c sub $0xc,%esp
1dda: 68 23 33 00 00 push $0x3323
1ddf: e8 65 f2 ff ff call 1049 <print>
1de4: 83 c4 10 add $0x10,%esp
1de7: a1 e0 18 01 00 mov 0x118e0,%eax
1dec: 8b 00 mov (%eax),%eax
1dee: ba 00 00 00 00 mov $0x0,%edx
1df3: 83 ec 04 sub $0x4,%esp
1df6: 6a 0a push $0xa
1df8: 52 push %edx
1df9: 50 push %eax
1dfa: e8 d9 fc ff ff call 1ad8 <lltoa>
1dff: 83 c4 10 add $0x10,%esp
1e02: 83 ec 0c sub $0xc,%esp
1e05: 50 push %eax
1e06: e8 3e f2 ff ff call 1049 <print>
1e0b: 83 c4 10 add $0x10,%esp
1e0e: e8 46 fe ff ff call 1c59 <command_line>
1e13: 90 nop
1e14: c9 leave
1e15: c3 ret
00001e16 <shell_init>:
1e16: 55 push %ebp
1e17: 89 e5 mov %esp,%ebp
1e19: 83 ec 28 sub $0x28,%esp
1e1c: 83 ec 0c sub $0xc,%esp
1e1f: 6a 01 push $0x1
1e21: e8 0c 02 00 00 call 2032 <keyboard_handler>
1e26: 83 c4 10 add $0x10,%esp
1e29: 89 45 f4 mov %eax,-0xc(%ebp)
1e2c: c7 45 dc 2d 33 00 00 movl $0x332d,-0x24(%ebp)
1e33: c7 45 e0 32 33 00 00 movl $0x3332,-0x20(%ebp)
1e3a: c7 45 e4 37 33 00 00 movl $0x3337,-0x1c(%ebp)
1e41: c7 45 e8 3d 33 00 00 movl $0x333d,-0x18(%ebp)
1e48: c7 45 ec 43 33 00 00 movl $0x3343,-0x14(%ebp)
1e4f: c7 45 f0 4c 33 00 00 movl $0x334c,-0x10(%ebp)
1e56: 8b 45 dc mov -0x24(%ebp),%eax
1e59: 83 ec 08 sub $0x8,%esp
1e5c: 50 push %eax
1e5d: ff 75 f4 push -0xc(%ebp)
1e60: e8 d8 fa ff ff call 193d <strcmp>
1e65: 83 c4 10 add $0x10,%esp
1e68: 85 c0 test %eax,%eax
1e6a: 75 1a jne 1e86 <shell_init+0x70>
1e6c: 83 ec 0c sub $0xc,%esp
1e6f: 68 54 33 00 00 push $0x3354
1e74: e8 d0 f1 ff ff call 1049 <print>
1e79: 83 c4 10 add $0x10,%esp
1e7c: e8 d8 fd ff ff call 1c59 <command_line>
1e81: e9 f2 00 00 00 jmp 1f78 <shell_init+0x162>
1e86: 8b 45 e0 mov -0x20(%ebp),%eax
1e89: 83 ec 04 sub $0x4,%esp
1e8c: 6a 04 push $0x4
1e8e: ff 75 f4 push -0xc(%ebp)
1e91: 50 push %eax
1e92: e8 14 fb ff ff call 19ab <strncmp>
1e97: 83 c4 10 add $0x10,%esp
1e9a: 85 c0 test %eax,%eax
1e9c: 75 30 jne 1ece <shell_init+0xb8>
1e9e: 83 ec 0c sub $0xc,%esp
1ea1: ff 75 f4 push -0xc(%ebp)
1ea4: e8 84 fb ff ff call 1a2d <kcharlen>
1ea9: 83 c4 10 add $0x10,%esp
1eac: 83 f8 04 cmp $0x4,%eax
1eaf: 7f 0a jg 1ebb <shell_init+0xa5>
1eb1: e8 bc fd ff ff call 1c72 <exception_invalid_usage>
1eb6: e9 bd 00 00 00 jmp 1f78 <shell_init+0x162>
1ebb: 83 ec 0c sub $0xc,%esp
1ebe: ff 75 f4 push -0xc(%ebp)
1ec1: e8 fb fd ff ff call 1cc1 <shell_echo>
1ec6: 83 c4 10 add $0x10,%esp
1ec9: e9 aa 00 00 00 jmp 1f78 <shell_init+0x162>
1ece: 8b 45 e4 mov -0x1c(%ebp),%eax
1ed1: 83 ec 08 sub $0x8,%esp
1ed4: 50 push %eax
1ed5: ff 75 f4 push -0xc(%ebp)
1ed8: e8 60 fa ff ff call 193d <strcmp>
1edd: 83 c4 10 add $0x10,%esp
1ee0: 85 c0 test %eax,%eax
1ee2: 75 0a jne 1eee <shell_init+0xd8>
1ee4: e8 a7 fd ff ff call 1c90 <shell_about>
1ee9: e9 8a 00 00 00 jmp 1f78 <shell_init+0x162>
1eee: 8b 45 e8 mov -0x18(%ebp),%eax
1ef1: 83 ec 08 sub $0x8,%esp
1ef4: 50 push %eax
1ef5: ff 75 f4 push -0xc(%ebp)
1ef8: e8 40 fa ff ff call 193d <strcmp>
1efd: 83 c4 10 add $0x10,%esp
1f00: 85 c0 test %eax,%eax
1f02: 75 07 jne 1f0b <shell_init+0xf5>
1f04: e8 a5 fd ff ff call 1cae <shell_clear>
1f09: eb 6d jmp 1f78 <shell_init+0x162>
1f0b: 8b 45 ec mov -0x14(%ebp),%eax
1f0e: 83 ec 08 sub $0x8,%esp
1f11: 50 push %eax
1f12: ff 75 f4 push -0xc(%ebp)
1f15: e8 23 fa ff ff call 193d <strcmp>
1f1a: 83 c4 10 add $0x10,%esp
1f1d: 85 c0 test %eax,%eax
1f1f: 75 07 jne 1f28 <shell_init+0x112>
1f21: e8 cb fd ff ff call 1cf1 <shell_totalmemory>
1f26: eb 50 jmp 1f78 <shell_init+0x162>
1f28: 8b 45 f0 mov -0x10(%ebp),%eax
1f2b: 83 ec 08 sub $0x8,%esp
1f2e: 50 push %eax
1f2f: ff 75 f4 push -0xc(%ebp)
1f32: e8 06 fa ff ff call 193d <strcmp>
1f37: 83 c4 10 add $0x10,%esp
1f3a: 85 c0 test %eax,%eax
1f3c: 75 07 jne 1f45 <shell_init+0x12f>
1f3e: e8 0e fe ff ff call 1d51 <shell_print_mmap>
1f43: eb 33 jmp 1f78 <shell_init+0x162>
1f45: 83 ec 08 sub $0x8,%esp
1f48: 68 1e 34 00 00 push $0x341e
1f4d: ff 75 f4 push -0xc(%ebp)
1f50: e8 e8 f9 ff ff call 193d <strcmp>
1f55: 83 c4 10 add $0x10,%esp
1f58: 85 c0 test %eax,%eax
1f5a: 74 1c je 1f78 <shell_init+0x162>
1f5c: 83 ec 0c sub $0xc,%esp
1f5f: 68 20 34 00 00 push $0x3420
1f64: e8 e0 f0 ff ff call 1049 <print>
1f69: 83 c4 10 add $0x10,%esp
1f6c: c7 45 f4 1e 34 00 00 movl $0x341e,-0xc(%ebp)
1f73: e8 e1 fc ff ff call 1c59 <command_line>
1f78: 90 nop
1f79: c9 leave
1f7a: c3 ret
00001f7b <inportb>:
1f7b: 55 push %ebp
1f7c: 89 e5 mov %esp,%ebp
1f7e: 83 ec 10 sub $0x10,%esp
1f81: 8b 45 08 mov 0x8(%ebp),%eax
1f84: 89 c2 mov %eax,%edx
1f86: ec in (%dx),%al
1f87: 88 45 ff mov %al,-0x1(%ebp)
1f8a: 0f b6 45 ff movzbl -0x1(%ebp),%eax
1f8e: c9 leave
1f8f: c3 ret
00001f90 <outportb>:
1f90: 55 push %ebp
1f91: 89 e5 mov %esp,%ebp
1f93: 83 ec 04 sub $0x4,%esp
1f96: 8b 45 0c mov 0xc(%ebp),%eax
1f99: 88 45 fc mov %al,-0x4(%ebp)
1f9c: 8b 55 08 mov 0x8(%ebp),%edx
1f9f: 0f b6 45 fc movzbl -0x4(%ebp),%eax
1fa3: ee out %al,(%dx)
1fa4: 90 nop
1fa5: c9 leave
1fa6: c3 ret
00001fa7 <init_pics>:
1fa7: 55 push %ebp
1fa8: 89 e5 mov %esp,%ebp
1faa: 6a 11 push $0x11
1fac: 6a 20 push $0x20
1fae: e8 dd ff ff ff call 1f90 <outportb>
1fb3: 83 c4 08 add $0x8,%esp
1fb6: 6a 11 push $0x11
1fb8: 68 00 a2 00 00 push $0xa200
1fbd: e8 ce ff ff ff call 1f90 <outportb>
1fc2: 83 c4 08 add $0x8,%esp
1fc5: 8b 45 08 mov 0x8(%ebp),%eax
1fc8: 0f b6 c0 movzbl %al,%eax
1fcb: 50 push %eax
1fcc: 6a 21 push $0x21
1fce: e8 bd ff ff ff call 1f90 <outportb>
1fd3: 83 c4 08 add $0x8,%esp
1fd6: 8b 45 0c mov 0xc(%ebp),%eax
1fd9: 0f b6 c0 movzbl %al,%eax
1fdc: 50 push %eax
1fdd: 68 01 a2 00 00 push $0xa201
1fe2: e8 a9 ff ff ff call 1f90 <outportb>
1fe7: 83 c4 08 add $0x8,%esp
1fea: 6a 04 push $0x4
1fec: 6a 21 push $0x21
1fee: e8 9d ff ff ff call 1f90 <outportb>
1ff3: 83 c4 08 add $0x8,%esp
1ff6: 6a 02 push $0x2
1ff8: 68 01 a2 00 00 push $0xa201
1ffd: e8 8e ff ff ff call 1f90 <outportb>
2002: 83 c4 08 add $0x8,%esp
2005: 6a 01 push $0x1
2007: 6a 21 push $0x21
2009: e8 82 ff ff ff call 1f90 <outportb>
200e: 83 c4 08 add $0x8,%esp
2011: 6a 01 push $0x1
2013: 68 01 a2 00 00 push $0xa201
2018: e8 73 ff ff ff call 1f90 <outportb>
201d: 83 c4 08 add $0x8,%esp
2020: 68 ff 00 00 00 push $0xff
2025: 6a 21 push $0x21
2027: e8 64 ff ff ff call 1f90 <outportb>
202c: 83 c4 08 add $0x8,%esp
202f: 90 nop
2030: c9 leave
2031: c3 ret
00002032 <keyboard_handler>:
2032: 55 push %ebp
2033: 89 e5 mov %esp,%ebp
2035: 83 ec 28 sub $0x28,%esp
2038: 8b 45 08 mov 0x8(%ebp),%eax
203b: 88 45 e4 mov %al,-0x1c(%ebp)
203e: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
2045: c6 45 ef 00 movb $0x0,-0x11(%ebp)
2049: 6a 28 push $0x28
204b: 6a 20 push $0x20
204d: e8 55 ff ff ff call 1fa7 <init_pics>
2052: 83 c4 08 add $0x8,%esp
2055: 6a 60 push $0x60
2057: e8 1f ff ff ff call 1f7b <inportb>
205c: 83 c4 04 add $0x4,%esp
205f: 0f b6 c0 movzbl %al,%eax
2062: 39 45 f4 cmp %eax,-0xc(%ebp)
2065: 0f 84 cd 00 00 00 je 2138 <keyboard_handler+0x106>
206b: 6a 60 push $0x60
206d: e8 09 ff ff ff call 1f7b <inportb>
2072: 83 c4 04 add $0x4,%esp
2075: 0f b6 c0 movzbl %al,%eax
2078: 89 45 f4 mov %eax,-0xc(%ebp)
207b: 83 7d f4 00 cmpl $0x0,-0xc(%ebp)
207f: 0f 8e b3 00 00 00 jle 2138 <keyboard_handler+0x106>
2085: 8b 45 f4 mov -0xc(%ebp),%eax
2088: 25 80 00 00 00 and $0x80,%eax
208d: 85 c0 test %eax,%eax
208f: 0f 85 a3 00 00 00 jne 2138 <keyboard_handler+0x106>
2095: 80 7d e4 00 cmpb $0x0,-0x1c(%ebp)
2099: 74 6a je 2105 <keyboard_handler+0xd3>
209b: 8b 45 f4 mov -0xc(%ebp),%eax
209e: 05 40 34 00 00 add $0x3440,%eax
20a3: 0f b6 00 movzbl (%eax),%eax
20a6: 3c 0a cmp $0xa,%al
20a8: 75 18 jne 20c2 <keyboard_handler+0x90>
20aa: 8b 15 e4 18 01 00 mov 0x118e4,%edx
20b0: 8b 45 f0 mov -0x10(%ebp),%eax
20b3: 01 d0 add %edx,%eax
20b5: c6 00 00 movb $0x0,(%eax)
20b8: a1 e4 18 01 00 mov 0x118e4,%eax
20bd: e9 85 00 00 00 jmp 2147 <keyboard_handler+0x115>
20c2: b8 40 34 00 00 mov $0x3440,%eax
20c7: 83 f8 08 cmp $0x8,%eax
20ca: 75 21 jne 20ed <keyboard_handler+0xbb>
20cc: 83 ec 0c sub $0xc,%esp
20cf: 6a 08 push $0x8
20d1: e8 73 ef ff ff call 1049 <print>
20d6: 83 c4 10 add $0x10,%esp
20d9: 8b 15 e4 18 01 00 mov 0x118e4,%edx
20df: 8b 45 f0 mov -0x10(%ebp),%eax
20e2: 01 d0 add %edx,%eax
20e4: c6 00 00 movb $0x0,(%eax)
20e7: c6 45 ef 01 movb $0x1,-0x11(%ebp)
20eb: eb 18 jmp 2105 <keyboard_handler+0xd3>
20ed: 8b 15 e4 18 01 00 mov 0x118e4,%edx
20f3: 8b 45 f0 mov -0x10(%ebp),%eax
20f6: 01 c2 add %eax,%edx
20f8: 8b 45 f4 mov -0xc(%ebp),%eax
20fb: 05 40 34 00 00 add $0x3440,%eax
2100: 0f b6 00 movzbl (%eax),%eax
2103: 88 02 mov %al,(%edx)
2105: 0f b6 45 ef movzbl -0x11(%ebp),%eax
2109: 83 f0 01 xor $0x1,%eax
210c: 84 c0 test %al,%al
210e: 74 24 je 2134 <keyboard_handler+0x102>
2110: 8b 45 f4 mov -0xc(%ebp),%eax
2113: 05 40 34 00 00 add $0x3440,%eax
2118: 0f b6 00 movzbl (%eax),%eax
211b: 0f be c0 movsbl %al,%eax
211e: 89 45 e8 mov %eax,-0x18(%ebp)
2121: 83 ec 0c sub $0xc,%esp
2124: 8d 45 e8 lea -0x18(%ebp),%eax
2127: 50 push %eax
2128: e8 1c ef ff ff call 1049 <print>
212d: 83 c4 10 add $0x10,%esp
2130: c6 45 ef 00 movb $0x0,-0x11(%ebp)
2134: 83 45 f0 01 addl $0x1,-0x10(%ebp)
2138: 83 7d f4 01 cmpl $0x1,-0xc(%ebp)
213c: 0f 85 07 ff ff ff jne 2049 <keyboard_handler+0x17>
2142: a1 e4 18 01 00 mov 0x118e4,%eax
2147: c9 leave
2148: c3 ret
2149: 66 90 xchg %ax,%ax
214b: 66 90 xchg %ax,%ax
214d: 66 90 xchg %ax,%ax
214f: 90 nop
00002150 <__divdi3>:
2150: f3 0f 1e fb endbr32
2154: 55 push %ebp
2155: 57 push %edi
2156: 56 push %esi
2157: 53 push %ebx
2158: 83 ec 1c sub $0x1c,%esp
215b: 8b 5c 24 34 mov 0x34(%esp),%ebx
215f: 8b 4c 24 30 mov 0x30(%esp),%ecx
2163: c7 44 24 08 00 00 00 movl $0x0,0x8(%esp)
216a: 00
216b: 8b 44 24 38 mov 0x38(%esp),%eax
216f: 8b 54 24 3c mov 0x3c(%esp),%edx
2173: 89 0c 24 mov %ecx,(%esp)
2176: 89 dd mov %ebx,%ebp
2178: 89 5c 24 04 mov %ebx,0x4(%esp)
217c: 85 db test %ebx,%ebx
217e: 79 18 jns 2198 <__divdi3+0x48>
2180: f7 d9 neg %ecx
2182: c7 44 24 08 ff ff ff movl $0xffffffff,0x8(%esp)
2189: ff
218a: 83 d3 00 adc $0x0,%ebx
218d: 89 0c 24 mov %ecx,(%esp)
2190: f7 db neg %ebx
2192: 89 5c 24 04 mov %ebx,0x4(%esp)
2196: 89 dd mov %ebx,%ebp
2198: 89 d3 mov %edx,%ebx
219a: 85 d2 test %edx,%edx
219c: 79 0d jns 21ab <__divdi3+0x5b>
219e: f7 d8 neg %eax
21a0: f7 54 24 08 notl 0x8(%esp)
21a4: 83 d2 00 adc $0x0,%edx
21a7: f7 da neg %edx
21a9: 89 d3 mov %edx,%ebx
21ab: 89 c7 mov %eax,%edi
21ad: 8b 04 24 mov (%esp),%eax
21b0: 85 db test %ebx,%ebx
21b2: 75 14 jne 21c8 <__divdi3+0x78>
21b4: 39 ef cmp %ebp,%edi
21b6: 76 58 jbe 2210 <__divdi3+0xc0>
21b8: 89 ea mov %ebp,%edx
21ba: 31 f6 xor %esi,%esi
21bc: f7 f7 div %edi
21be: 89 c5 mov %eax,%ebp
21c0: eb 0e jmp 21d0 <__divdi3+0x80>
21c2: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
21c8: 39 eb cmp %ebp,%ebx
21ca: 76 24 jbe 21f0 <__divdi3+0xa0>
21cc: 31 f6 xor %esi,%esi
21ce: 31 ed xor %ebp,%ebp
21d0: 8b 4c 24 08 mov 0x8(%esp),%ecx
21d4: 89 e8 mov %ebp,%eax
21d6: 89 f2 mov %esi,%edx
21d8: 85 c9 test %ecx,%ecx
21da: 74 07 je 21e3 <__divdi3+0x93>
21dc: f7 d8 neg %eax
21de: 83 d2 00 adc $0x0,%edx
21e1: f7 da neg %edx
21e3: 83 c4 1c add $0x1c,%esp
21e6: 5b pop %ebx
21e7: 5e pop %esi
21e8: 5f pop %edi
21e9: 5d pop %ebp
21ea: c3 ret
21eb: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
21ef: 90 nop
21f0: 0f bd f3 bsr %ebx,%esi
21f3: 83 f6 1f xor $0x1f,%esi
21f6: 75 38 jne 2230 <__divdi3+0xe0>
21f8: 39 eb cmp %ebp,%ebx
21fa: 72 07 jb 2203 <__divdi3+0xb3>
21fc: 31 ed xor %ebp,%ebp
21fe: 3b 3c 24 cmp (%esp),%edi
2201: 77 cd ja 21d0 <__divdi3+0x80>
2203: bd 01 00 00 00 mov $0x1,%ebp
2208: eb c6 jmp 21d0 <__divdi3+0x80>
220a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
2210: 85 ff test %edi,%edi
2212: 75 0b jne 221f <__divdi3+0xcf>
2214: b8 01 00 00 00 mov $0x1,%eax
2219: 31 d2 xor %edx,%edx
221b: f7 f3 div %ebx
221d: 89 c7 mov %eax,%edi
221f: 89 e8 mov %ebp,%eax
2221: 31 d2 xor %edx,%edx
2223: f7 f7 div %edi
2225: 89 c6 mov %eax,%esi
2227: 8b 04 24 mov (%esp),%eax
222a: f7 f7 div %edi
222c: 89 c5 mov %eax,%ebp
222e: eb a0 jmp 21d0 <__divdi3+0x80>
2230: b8 20 00 00 00 mov $0x20,%eax
2235: 89 f1 mov %esi,%ecx
2237: 89 fa mov %edi,%edx
2239: 29 f0 sub %esi,%eax
223b: d3 e3 shl %cl,%ebx
223d: 89 c1 mov %eax,%ecx
223f: d3 ea shr %cl,%edx
2241: 89 f1 mov %esi,%ecx
2243: 09 da or %ebx,%edx
2245: d3 e7 shl %cl,%edi
2247: 89 eb mov %ebp,%ebx
2249: 89 c1 mov %eax,%ecx
224b: d3 eb shr %cl,%ebx
224d: 89 54 24 0c mov %edx,0xc(%esp)
2251: 89 f1 mov %esi,%ecx
2253: 8b 14 24 mov (%esp),%edx
2256: d3 e5 shl %cl,%ebp
2258: 89 c1 mov %eax,%ecx
225a: d3 ea shr %cl,%edx
225c: 09 d5 or %edx,%ebp
225e: 89 da mov %ebx,%edx
2260: 89 e8 mov %ebp,%eax
2262: f7 74 24 0c divl 0xc(%esp)
2266: 89 d3 mov %edx,%ebx
2268: 89 c5 mov %eax,%ebp
226a: f7 e7 mul %edi
226c: 39 d3 cmp %edx,%ebx
226e: 72 0f jb 227f <__divdi3+0x12f>
2270: 8b 3c 24 mov (%esp),%edi
2273: 89 f1 mov %esi,%ecx
2275: d3 e7 shl %cl,%edi
2277: 39 c7 cmp %eax,%edi
2279: 73 07 jae 2282 <__divdi3+0x132>
227b: 39 d3 cmp %edx,%ebx
227d: 75 03 jne 2282 <__divdi3+0x132>
227f: 83 ed 01 sub $0x1,%ebp
2282: 31 f6 xor %esi,%esi
2284: e9 47 ff ff ff jmp 21d0 <__divdi3+0x80>
2289: 66 90 xchg %ax,%ax
228b: 66 90 xchg %ax,%ax
228d: 66 90 xchg %ax,%ax
228f: 90 nop
00002290 <__moddi3>:
2290: f3 0f 1e fb endbr32
2294: 55 push %ebp
2295: 57 push %edi
2296: 56 push %esi
2297: 53 push %ebx
2298: 83 ec 1c sub $0x1c,%esp
229b: 8b 54 24 34 mov 0x34(%esp),%edx
229f: 8b 44 24 30 mov 0x30(%esp),%eax
22a3: c7 04 24 00 00 00 00 movl $0x0,(%esp)
22aa: 8b 4c 24 38 mov 0x38(%esp),%ecx
22ae: 8b 5c 24 3c mov 0x3c(%esp),%ebx
22b2: 89 d6 mov %edx,%esi
22b4: 85 d2 test %edx,%edx
22b6: 79 10 jns 22c8 <__moddi3+0x38>
22b8: f7 d8 neg %eax
22ba: c7 04 24 ff ff ff ff movl $0xffffffff,(%esp)
22c1: 83 d2 00 adc $0x0,%edx
22c4: f7 da neg %edx
22c6: 89 d6 mov %edx,%esi
22c8: 89 df mov %ebx,%edi
22ca: 85 db test %ebx,%ebx
22cc: 79 09 jns 22d7 <__moddi3+0x47>
22ce: f7 d9 neg %ecx
22d0: 83 d3 00 adc $0x0,%ebx
22d3: f7 db neg %ebx
22d5: 89 df mov %ebx,%edi
22d7: 89 44 24 04 mov %eax,0x4(%esp)
22db: 89 cb mov %ecx,%ebx
22dd: 89 c5 mov %eax,%ebp
22df: 85 ff test %edi,%edi
22e1: 75 15 jne 22f8 <__moddi3+0x68>
22e3: 39 f3 cmp %esi,%ebx
22e5: 76 69 jbe 2350 <__moddi3+0xc0>
22e7: 89 f2 mov %esi,%edx
22e9: f7 f3 div %ebx
22eb: 89 d7 mov %edx,%edi
22ed: 31 ed xor %ebp,%ebp
22ef: eb 0f jmp 2300 <__moddi3+0x70>
22f1: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
22f8: 39 f7 cmp %esi,%edi
22fa: 76 24 jbe 2320 <__moddi3+0x90>
22fc: 89 c7 mov %eax,%edi
22fe: 89 f5 mov %esi,%ebp
2300: 8b 04 24 mov (%esp),%eax
2303: 85 c0 test %eax,%eax
2305: 74 07 je 230e <__moddi3+0x7e>
2307: f7 df neg %edi
2309: 83 d5 00 adc $0x0,%ebp
230c: f7 dd neg %ebp
230e: 89 f8 mov %edi,%eax
2310: 89 ea mov %ebp,%edx
2312: 83 c4 1c add $0x1c,%esp
2315: 5b pop %ebx
2316: 5e pop %esi
2317: 5f pop %edi
2318: 5d pop %ebp
2319: c3 ret
231a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
2320: 0f bd c7 bsr %edi,%eax
2323: 83 f0 1f xor $0x1f,%eax
2326: 89 44 24 08 mov %eax,0x8(%esp)
232a: 75 44 jne 2370 <__moddi3+0xe0>
232c: 39 f7 cmp %esi,%edi
232e: 0f 82 cc 00 00 00 jb 2400 <__moddi3+0x170>
2334: 3b 5c 24 04 cmp 0x4(%esp),%ebx
2338: 0f 86 c2 00 00 00 jbe 2400 <__moddi3+0x170>
233e: 8b 7c 24 04 mov 0x4(%esp),%edi
2342: 89 f5 mov %esi,%ebp
2344: eb ba jmp 2300 <__moddi3+0x70>
2346: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
234d: 8d 76 00 lea 0x0(%esi),%esi
2350: 85 db test %ebx,%ebx
2352: 75 0b jne 235f <__moddi3+0xcf>
2354: b8 01 00 00 00 mov $0x1,%eax
2359: 31 d2 xor %edx,%edx
235b: f7 f7 div %edi
235d: 89 c3 mov %eax,%ebx
235f: 89 f0 mov %esi,%eax
2361: 31 d2 xor %edx,%edx
2363: f7 f3 div %ebx
2365: 89 e8 mov %ebp,%eax
2367: f7 f3 div %ebx
2369: eb 80 jmp 22eb <__moddi3+0x5b>
236b: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
236f: 90 nop
2370: 8b 54 24 08 mov 0x8(%esp),%edx
2374: b8 20 00 00 00 mov $0x20,%eax
2379: 29 d0 sub %edx,%eax
237b: 89 d1 mov %edx,%ecx
237d: 89 c5 mov %eax,%ebp
237f: d3 e7 shl %cl,%edi
2381: 89 d8 mov %ebx,%eax
2383: 89 e9 mov %ebp,%ecx
2385: d3 e8 shr %cl,%eax
2387: 89 d1 mov %edx,%ecx
2389: d3 e3 shl %cl,%ebx
238b: 09 c7 or %eax,%edi
238d: 89 e9 mov %ebp,%ecx
238f: 89 d0 mov %edx,%eax
2391: 89 f2 mov %esi,%edx
2393: 89 5c 24 0c mov %ebx,0xc(%esp)
2397: 89 c3 mov %eax,%ebx
2399: d3 ea shr %cl,%edx
239b: 89 c1 mov %eax,%ecx
239d: 8b 44 24 04 mov 0x4(%esp),%eax
23a1: d3 e6 shl %cl,%esi
23a3: 89 e9 mov %ebp,%ecx
23a5: d3 e8 shr %cl,%eax
23a7: 89 d9 mov %ebx,%ecx
23a9: 09 f0 or %esi,%eax
23ab: 8b 74 24 04 mov 0x4(%esp),%esi
23af: f7 f7 div %edi
23b1: 89 d3 mov %edx,%ebx
23b3: d3 e6 shl %cl,%esi
23b5: f7 64 24 0c mull 0xc(%esp)
23b9: 89 44 24 04 mov %eax,0x4(%esp)
23bd: 89 d1 mov %edx,%ecx
23bf: 39 d3 cmp %edx,%ebx
23c1: 72 06 jb 23c9 <__moddi3+0x139>
23c3: 75 10 jne 23d5 <__moddi3+0x145>
23c5: 39 c6 cmp %eax,%esi
23c7: 73 0c jae 23d5 <__moddi3+0x145>
23c9: 2b 44 24 0c sub 0xc(%esp),%eax
23cd: 19 fa sbb %edi,%edx
23cf: 89 44 24 04 mov %eax,0x4(%esp)
23d3: 89 d1 mov %edx,%ecx
23d5: 8b 54 24 08 mov 0x8(%esp),%edx
23d9: 2b 74 24 04 sub 0x4(%esp),%esi
23dd: 19 cb sbb %ecx,%ebx
23df: 89 e9 mov %ebp,%ecx
23e1: 89 d8 mov %ebx,%eax
23e3: d3 e0 shl %cl,%eax
23e5: 89 d1 mov %edx,%ecx
23e7: d3 ee shr %cl,%esi
23e9: d3 eb shr %cl,%ebx
23eb: 09 f0 or %esi,%eax
23ed: 89 dd mov %ebx,%ebp
23ef: 89 c7 mov %eax,%edi
23f1: e9 0a ff ff ff jmp 2300 <__moddi3+0x70>
23f6: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
23fd: 8d 76 00 lea 0x0(%esi),%esi
2400: 29 dd sub %ebx,%ebp
2402: 19 fe sbb %edi,%esi
2404: 89 6c 24 04 mov %ebp,0x4(%esp)
2408: e9 31 ff ff ff jmp 233e <__moddi3+0xae>
kernel.bin: file format elf32-i386
Disassembly of section .text:
00001000 <idt_loader>:
1000: 0f 01 1d 40 18 01 00 lidtl 0x11840
1007: c3 ret
1008: 66 90 xchg %ax,%ax
100a: 66 90 xchg %ax,%ax
100c: 66 90 xchg %ax,%ax
100e: 66 90 xchg %ax,%ax
00001010 <gdt_flush>:
1010: 66 b8 10 00 mov $0x10,%ax
1014: 0f 01 15 48 18 01 00 lgdtl 0x11848
101b: 8e d8 mov %eax,%ds
101d: 8e c0 mov %eax,%es
101f: 8e e0 mov %eax,%fs
1021: 8e e8 mov %eax,%gs
1023: 8e d0 mov %eax,%ss
1025: ea 2c 10 00 00 08 00 ljmp $0x8,$0x102c
0000102c <flush>:
102c: c3 ret
102d: 66 90 xchg %ax,%ax
102f: 90 nop
1030: 02 b0 ad 1b 00 00 add 0x1bad(%eax),%dh
1036: 00 00 add %al,(%eax)
1038: fe 4f 52 decb 0x52(%edi)
103b: e4 .byte 0xe4
0000103c <start>:
103c: bc 20 10 01 00 mov $0x11020,%esp
1041: fa cli
1042: 50 push %eax
1043: 53 push %ebx
1044: e8 ce 0b 00 00 call 1c17 <kmain>
00001049 <print>:
1049: 55 push %ebp
104a: 89 e5 mov %esp,%ebp
104c: 83 ec 18 sub $0x18,%esp
104f: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
1056: e9 be 00 00 00 jmp 1119 <print+0xd0>
105b: 8b 15 24 10 01 00 mov 0x11024,%edx
1061: 89 d0 mov %edx,%eax
1063: c1 e0 02 shl $0x2,%eax
1066: 01 d0 add %edx,%eax
1068: c1 e0 04 shl $0x4,%eax
106b: 89 c2 mov %eax,%edx
106d: a1 20 10 01 00 mov 0x11020,%eax
1072: 01 d0 add %edx,%eax
1074: 89 45 f0 mov %eax,-0x10(%ebp)
1077: a1 20 10 01 00 mov 0x11020,%eax
107c: 83 c0 01 add $0x1,%eax
107f: a3 20 10 01 00 mov %eax,0x11020
1084: 8b 55 f4 mov -0xc(%ebp),%edx
1087: 8b 45 08 mov 0x8(%ebp),%eax
108a: 01 d0 add %edx,%eax
108c: 0f b6 00 movzbl (%eax),%eax
108f: 3c 0a cmp $0xa,%al
1091: 75 26 jne 10b9 <print+0x70>
1093: c7 05 20 10 01 00 00 movl $0x0,0x11020
109a: 00 00 00
109d: a1 24 10 01 00 mov 0x11024,%eax
10a2: 83 c0 01 add $0x1,%eax
10a5: a3 24 10 01 00 mov %eax,0x11024
10aa: a1 24 10 01 00 mov 0x11024,%eax
10af: 83 c0 01 add $0x1,%eax
10b2: a3 24 10 01 00 mov %eax,0x11024
10b7: eb 5c jmp 1115 <print+0xcc>
10b9: 8b 55 f4 mov -0xc(%ebp),%edx
10bc: 8b 45 08 mov 0x8(%ebp),%eax
10bf: 01 d0 add %edx,%eax
10c1: 0f b6 00 movzbl (%eax),%eax
10c4: 3c 1b cmp $0x1b,%al
10c6: 75 17 jne 10df <print+0x96>
10c8: e8 62 00 00 00 call 112f <terminal_clear_screen>
10cd: 83 ec 0c sub $0xc,%esp
10d0: 68 00 30 00 00 push $0x3000
10d5: e8 6f ff ff ff call 1049 <print>
10da: 83 c4 10 add $0x10,%esp
10dd: eb 36 jmp 1115 <print+0xcc>
10df: 8b 55 f4 mov -0xc(%ebp),%edx
10e2: 8b 45 08 mov 0x8(%ebp),%eax
10e5: 01 d0 add %edx,%eax
10e7: 8b 0d 00 50 00 00 mov 0x5000,%ecx
10ed: 8b 55 f0 mov -0x10(%ebp),%edx
10f0: 01 ca add %ecx,%edx
10f2: 0f b6 00 movzbl (%eax),%eax
10f5: 88 02 mov %al,(%edx)
10f7: a1 20 10 01 00 mov 0x11020,%eax
10fc: 83 c0 01 add $0x1,%eax
10ff: a3 20 10 01 00 mov %eax,0x11020
1104: 8b 15 00 50 00 00 mov 0x5000,%edx
110a: 8b 45 f0 mov -0x10(%ebp),%eax
110d: 83 c0 01 add $0x1,%eax
1110: 01 d0 add %edx,%eax
1112: c6 00 0f movb $0xf,(%eax)
1115: 83 45 f4 01 addl $0x1,-0xc(%ebp)
1119: 8b 55 f4 mov -0xc(%ebp),%edx
111c: 8b 45 08 mov 0x8(%ebp),%eax
111f: 01 d0 add %edx,%eax
1121: 0f b6 00 movzbl (%eax),%eax
1124: 84 c0 test %al,%al
1126: 0f 85 2f ff ff ff jne 105b <print+0x12>
112c: 90 nop
112d: c9 leave
112e: c3 ret
0000112f <terminal_clear_screen>:
112f: 55 push %ebp
1130: 89 e5 mov %esp,%ebp
1132: 83 ec 10 sub $0x10,%esp
1135: c7 05 20 10 01 00 00 movl $0x0,0x11020
113c: 00 00 00
113f: c7 05 24 10 01 00 00 movl $0x0,0x11024
1146: 00 00 00
1149: c7 45 f8 a0 0f 00 00 movl $0xfa0,-0x8(%ebp)
1150: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
1157: eb 12 jmp 116b <terminal_clear_screen+0x3c>
1159: 8b 15 00 50 00 00 mov 0x5000,%edx
115f: 8b 45 fc mov -0x4(%ebp),%eax
1162: 01 d0 add %edx,%eax
1164: c6 00 00 movb $0x0,(%eax)
1167: 83 45 fc 01 addl $0x1,-0x4(%ebp)
116b: 8b 45 fc mov -0x4(%ebp),%eax
116e: 3b 45 f8 cmp -0x8(%ebp),%eax
1171: 7c e6 jl 1159 <terminal_clear_screen+0x2a>
1173: 90 nop
1174: c9 leave
1175: c3 ret
00001176 <throw_exception1>:
1176: 55 push %ebp
1177: 89 e5 mov %esp,%ebp
1179: 83 ec 08 sub $0x8,%esp
117c: 83 ec 0c sub $0xc,%esp
117f: 68 0c 30 00 00 push $0x300c
1184: e8 60 0a 00 00 call 1be9 <kpanic>
1189: 83 c4 10 add $0x10,%esp
118c: 90 nop
118d: c9 leave
118e: c3 ret
0000118f <throw_exception2>:
118f: 55 push %ebp
1190: 89 e5 mov %esp,%ebp
1192: 83 ec 08 sub $0x8,%esp
1195: 83 ec 0c sub $0xc,%esp
1198: 68 1c 30 00 00 push $0x301c
119d: e8 47 0a 00 00 call 1be9 <kpanic>
11a2: 83 c4 10 add $0x10,%esp
11a5: 90 nop
11a6: c9 leave
11a7: c3 ret
000011a8 <throw_exception3>:
11a8: 55 push %ebp
11a9: 89 e5 mov %esp,%ebp
11ab: 83 ec 08 sub $0x8,%esp
11ae: 83 ec 0c sub $0xc,%esp
11b1: 68 22 30 00 00 push $0x3022
11b6: e8 2e 0a 00 00 call 1be9 <kpanic>
11bb: 83 c4 10 add $0x10,%esp
11be: 90 nop
11bf: c9 leave
11c0: c3 ret
000011c1 <throw_exception4>:
11c1: 55 push %ebp
11c2: 89 e5 mov %esp,%ebp
11c4: 83 ec 08 sub $0x8,%esp
11c7: 83 ec 0c sub $0xc,%esp
11ca: 68 39 30 00 00 push $0x3039
11cf: e8 15 0a 00 00 call 1be9 <kpanic>
11d4: 83 c4 10 add $0x10,%esp
11d7: 90 nop
11d8: c9 leave
11d9: c3 ret
000011da <throw_exception5>:
11da: 55 push %ebp
11db: 89 e5 mov %esp,%ebp
11dd: 83 ec 08 sub $0x8,%esp
11e0: 83 ec 0c sub $0xc,%esp
11e3: 68 44 30 00 00 push $0x3044
11e8: e8 fc 09 00 00 call 1be9 <kpanic>
11ed: 83 c4 10 add $0x10,%esp
11f0: 90 nop
11f1: c9 leave
11f2: c3 ret
000011f3 <throw_exception6>:
11f3: 55 push %ebp
11f4: 89 e5 mov %esp,%ebp
11f6: 83 ec 08 sub $0x8,%esp
11f9: 83 ec 0c sub $0xc,%esp
11fc: 68 4d 30 00 00 push $0x304d
1201: e8 e3 09 00 00 call 1be9 <kpanic>
1206: 83 c4 10 add $0x10,%esp
1209: 90 nop
120a: c9 leave
120b: c3 ret
0000120c <throw_exception7>:
120c: 55 push %ebp
120d: 89 e5 mov %esp,%ebp
120f: 83 ec 08 sub $0x8,%esp
1212: 83 ec 0c sub $0xc,%esp
1215: 68 62 30 00 00 push $0x3062
121a: e8 ca 09 00 00 call 1be9 <kpanic>
121f: 83 c4 10 add $0x10,%esp
1222: 90 nop
1223: c9 leave
1224: c3 ret
00001225 <throw_exception8>:
1225: 55 push %ebp
1226: 89 e5 mov %esp,%ebp
1228: 83 ec 08 sub $0x8,%esp
122b: 83 ec 0c sub $0xc,%esp
122e: 68 71 30 00 00 push $0x3071
1233: e8 b1 09 00 00 call 1be9 <kpanic>
1238: 83 c4 10 add $0x10,%esp
123b: 90 nop
123c: c9 leave
123d: c3 ret
0000123e <throw_exception9>:
123e: 55 push %ebp
123f: 89 e5 mov %esp,%ebp
1241: 83 ec 08 sub $0x8,%esp
1244: 83 ec 0c sub $0xc,%esp
1247: 68 86 30 00 00 push $0x3086
124c: e8 98 09 00 00 call 1be9 <kpanic>
1251: 83 c4 10 add $0x10,%esp
1254: 90 nop
1255: c9 leave
1256: c3 ret
00001257 <throw_exception11>:
1257: 55 push %ebp
1258: 89 e5 mov %esp,%ebp
125a: 83 ec 08 sub $0x8,%esp
125d: 83 ec 0c sub $0xc,%esp
1260: 68 93 30 00 00 push $0x3093
1265: e8 7f 09 00 00 call 1be9 <kpanic>
126a: 83 c4 10 add $0x10,%esp
126d: 90 nop
126e: c9 leave
126f: c3 ret
00001270 <throw_exception12>:
1270: 55 push %ebp
1271: 89 e5 mov %esp,%ebp
1273: 83 ec 08 sub $0x8,%esp
1276: 83 ec 0c sub $0xc,%esp
1279: 68 9f 30 00 00 push $0x309f
127e: e8 66 09 00 00 call 1be9 <kpanic>
1283: 83 c4 10 add $0x10,%esp
1286: 90 nop
1287: c9 leave
1288: c3 ret
00001289 <throw_exception13>:
1289: 55 push %ebp
128a: 89 e5 mov %esp,%ebp
128c: 83 ec 08 sub $0x8,%esp
128f: 83 ec 0c sub $0xc,%esp
1292: 68 b3 30 00 00 push $0x30b3
1297: e8 4d 09 00 00 call 1be9 <kpanic>
129c: 83 c4 10 add $0x10,%esp
129f: 90 nop
12a0: c9 leave
12a1: c3 ret
000012a2 <throw_exception14>:
12a2: 55 push %ebp
12a3: 89 e5 mov %esp,%ebp
12a5: 83 ec 08 sub $0x8,%esp
12a8: 83 ec 0c sub $0xc,%esp
12ab: 68 c7 30 00 00 push $0x30c7
12b0: e8 34 09 00 00 call 1be9 <kpanic>
12b5: 83 c4 10 add $0x10,%esp
12b8: 90 nop
12b9: c9 leave
12ba: c3 ret
000012bb <throw_exception15>:
12bb: 55 push %ebp
12bc: 89 e5 mov %esp,%ebp
12be: 83 ec 08 sub $0x8,%esp
12c1: 83 ec 0c sub $0xc,%esp
12c4: 68 e0 30 00 00 push $0x30e0
12c9: e8 1b 09 00 00 call 1be9 <kpanic>
12ce: 83 c4 10 add $0x10,%esp
12d1: 90 nop
12d2: c9 leave
12d3: c3 ret
000012d4 <throw_exception17>:
12d4: 55 push %ebp
12d5: 89 e5 mov %esp,%ebp
12d7: 83 ec 08 sub $0x8,%esp
12da: 83 ec 0c sub $0xc,%esp
12dd: 68 eb 30 00 00 push $0x30eb
12e2: e8 02 09 00 00 call 1be9 <kpanic>
12e7: 83 c4 10 add $0x10,%esp
12ea: 90 nop
12eb: c9 leave
12ec: c3 ret
000012ed <throw_exception18>:
12ed: 55 push %ebp
12ee: 89 e5 mov %esp,%ebp
12f0: 83 ec 08 sub $0x8,%esp
12f3: 83 ec 0c sub $0xc,%esp
12f6: 68 08 31 00 00 push $0x3108
12fb: e8 e9 08 00 00 call 1be9 <kpanic>
1300: 83 c4 10 add $0x10,%esp
1303: 90 nop
1304: c9 leave
1305: c3 ret
00001306 <throw_exception19>:
1306: 55 push %ebp
1307: 89 e5 mov %esp,%ebp
1309: 83 ec 08 sub $0x8,%esp
130c: 83 ec 0c sub $0xc,%esp
130f: 68 18 31 00 00 push $0x3118
1314: e8 d0 08 00 00 call 1be9 <kpanic>
1319: 83 c4 10 add $0x10,%esp
131c: 90 nop
131d: c9 leave
131e: c3 ret
0000131f <throw_exception20>:
131f: 55 push %ebp
1320: 89 e5 mov %esp,%ebp
1322: 83 ec 08 sub $0x8,%esp
1325: 83 ec 0c sub $0xc,%esp
1328: 68 26 31 00 00 push $0x3126
132d: e8 b7 08 00 00 call 1be9 <kpanic>
1332: 83 c4 10 add $0x10,%esp
1335: 90 nop
1336: c9 leave
1337: c3 ret
00001338 <throw_exception21>:
1338: 55 push %ebp
1339: 89 e5 mov %esp,%ebp
133b: 83 ec 08 sub $0x8,%esp
133e: 83 ec 0c sub $0xc,%esp
1341: 68 44 31 00 00 push $0x3144
1346: e8 9e 08 00 00 call 1be9 <kpanic>
134b: 83 c4 10 add $0x10,%esp
134e: 90 nop
134f: c9 leave
1350: c3 ret
00001351 <throw_exception22>:
1351: 55 push %ebp
1352: 89 e5 mov %esp,%ebp
1354: 83 ec 08 sub $0x8,%esp
1357: 83 ec 0c sub $0xc,%esp
135a: 68 5d 31 00 00 push $0x315d
135f: e8 85 08 00 00 call 1be9 <kpanic>
1364: 83 c4 10 add $0x10,%esp
1367: 90 nop
1368: c9 leave
1369: c3 ret
0000136a <throw_exception24>:
136a: 55 push %ebp
136b: 89 e5 mov %esp,%ebp
136d: 83 ec 08 sub $0x8,%esp
1370: 83 ec 0c sub $0xc,%esp
1373: 68 7c 31 00 00 push $0x317c
1378: e8 6c 08 00 00 call 1be9 <kpanic>
137d: 83 c4 10 add $0x10,%esp
1380: 90 nop
1381: c9 leave
1382: c3 ret
00001383 <throw_exception25>:
1383: 55 push %ebp
1384: 89 e5 mov %esp,%ebp
1386: 83 ec 08 sub $0x8,%esp
1389: 83 ec 0c sub $0xc,%esp
138c: 68 9b 31 00 00 push $0x319b
1391: e8 53 08 00 00 call 1be9 <kpanic>
1396: 83 c4 10 add $0x10,%esp
1399: 90 nop
139a: c9 leave
139b: c3 ret
0000139c <throw_exception26>:
139c: 55 push %ebp
139d: 89 e5 mov %esp,%ebp
139f: 83 ec 08 sub $0x8,%esp
13a2: 83 ec 0c sub $0xc,%esp
13a5: 68 b7 31 00 00 push $0x31b7
13aa: e8 3a 08 00 00 call 1be9 <kpanic>
13af: 83 c4 10 add $0x10,%esp
13b2: 90 nop
13b3: c9 leave
13b4: c3 ret
000013b5 <throw_exception27>:
13b5: 55 push %ebp
13b6: 89 e5 mov %esp,%ebp
13b8: 83 ec 08 sub $0x8,%esp
13bb: e8 6f fd ff ff call 112f <terminal_clear_screen>
13c0: 83 ec 0c sub $0xc,%esp
13c3: 68 c4 31 00 00 push $0x31c4
13c8: e8 1c 08 00 00 call 1be9 <kpanic>
13cd: 83 c4 10 add $0x10,%esp
13d0: 90 nop
13d1: c9 leave
13d2: c3 ret
000013d3 <isr_init>:
13d3: 55 push %ebp
13d4: 89 e5 mov %esp,%ebp
13d6: 83 ec 08 sub $0x8,%esp
13d9: b8 76 11 00 00 mov $0x1176,%eax
13de: ba 00 00 00 00 mov $0x0,%edx
13e3: 83 ec 0c sub $0xc,%esp
13e6: 68 8e 00 00 00 push $0x8e
13eb: 6a 08 push $0x8
13ed: 52 push %edx
13ee: 50 push %eax
13ef: 6a 00 push $0x0
13f1: e8 e6 02 00 00 call 16dc <idt_set_desc>
13f6: 83 c4 20 add $0x20,%esp
13f9: b8 8f 11 00 00 mov $0x118f,%eax
13fe: ba 00 00 00 00 mov $0x0,%edx
1403: 83 ec 0c sub $0xc,%esp
1406: 68 8e 00 00 00 push $0x8e
140b: 6a 08 push $0x8
140d: 52 push %edx
140e: 50 push %eax
140f: 6a 01 push $0x1
1411: e8 c6 02 00 00 call 16dc <idt_set_desc>
1416: 83 c4 20 add $0x20,%esp
1419: b8 a8 11 00 00 mov $0x11a8,%eax
141e: ba 00 00 00 00 mov $0x0,%edx
1423: 83 ec 0c sub $0xc,%esp
1426: 68 8e 00 00 00 push $0x8e
142b: 6a 08 push $0x8
142d: 52 push %edx
142e: 50 push %eax
142f: 6a 02 push $0x2
1431: e8 a6 02 00 00 call 16dc <idt_set_desc>
1436: 83 c4 20 add $0x20,%esp
1439: b8 c1 11 00 00 mov $0x11c1,%eax
143e: ba 00 00 00 00 mov $0x0,%edx
1443: 83 ec 0c sub $0xc,%esp
1446: 68 8e 00 00 00 push $0x8e
144b: 6a 08 push $0x8
144d: 52 push %edx
144e: 50 push %eax
144f: 6a 03 push $0x3
1451: e8 86 02 00 00 call 16dc <idt_set_desc>
1456: 83 c4 20 add $0x20,%esp
1459: b8 da 11 00 00 mov $0x11da,%eax
145e: ba 00 00 00 00 mov $0x0,%edx
1463: 83 ec 0c sub $0xc,%esp
1466: 68 8e 00 00 00 push $0x8e
146b: 6a 08 push $0x8
146d: 52 push %edx
146e: 50 push %eax
146f: 6a 04 push $0x4
1471: e8 66 02 00 00 call 16dc <idt_set_desc>
1476: 83 c4 20 add $0x20,%esp
1479: b8 f3 11 00 00 mov $0x11f3,%eax
147e: ba 00 00 00 00 mov $0x0,%edx
1483: 83 ec 0c sub $0xc,%esp
1486: 68 8e 00 00 00 push $0x8e
148b: 6a 08 push $0x8
148d: 52 push %edx
148e: 50 push %eax
148f: 6a 05 push $0x5
1491: e8 46 02 00 00 call 16dc <idt_set_desc>
1496: 83 c4 20 add $0x20,%esp
1499: b8 0c 12 00 00 mov $0x120c,%eax
149e: ba 00 00 00 00 mov $0x0,%edx
14a3: 83 ec 0c sub $0xc,%esp
14a6: 68 8e 00 00 00 push $0x8e
14ab: 6a 08 push $0x8
14ad: 52 push %edx
14ae: 50 push %eax
14af: 6a 06 push $0x6
14b1: e8 26 02 00 00 call 16dc <idt_set_desc>
14b6: 83 c4 20 add $0x20,%esp
14b9: b8 25 12 00 00 mov $0x1225,%eax
14be: ba 00 00 00 00 mov $0x0,%edx
14c3: 83 ec 0c sub $0xc,%esp
14c6: 68 8e 00 00 00 push $0x8e
14cb: 6a 08 push $0x8
14cd: 52 push %edx
14ce: 50 push %eax
14cf: 6a 07 push $0x7
14d1: e8 06 02 00 00 call 16dc <idt_set_desc>
14d6: 83 c4 20 add $0x20,%esp
14d9: b8 3e 12 00 00 mov $0x123e,%eax
14de: ba 00 00 00 00 mov $0x0,%edx
14e3: 83 ec 0c sub $0xc,%esp
14e6: 68 8e 00 00 00 push $0x8e
14eb: 6a 08 push $0x8
14ed: 52 push %edx
14ee: 50 push %eax
14ef: 6a 08 push $0x8
14f1: e8 e6 01 00 00 call 16dc <idt_set_desc>
14f6: 83 c4 20 add $0x20,%esp
14f9: b8 57 12 00 00 mov $0x1257,%eax
14fe: ba 00 00 00 00 mov $0x0,%edx
1503: 83 ec 0c sub $0xc,%esp
1506: 68 8e 00 00 00 push $0x8e
150b: 6a 08 push $0x8
150d: 52 push %edx
150e: 50 push %eax
150f: 6a 0a push $0xa
1511: e8 c6 01 00 00 call 16dc <idt_set_desc>
1516: 83 c4 20 add $0x20,%esp
1519: b8 70 12 00 00 mov $0x1270,%eax
151e: ba 00 00 00 00 mov $0x0,%edx
1523: 83 ec 0c sub $0xc,%esp
1526: 68 8e 00 00 00 push $0x8e
152b: 6a 08 push $0x8
152d: 52 push %edx
152e: 50 push %eax
152f: 6a 0b push $0xb
1531: e8 a6 01 00 00 call 16dc <idt_set_desc>
1536: 83 c4 20 add $0x20,%esp
1539: b8 89 12 00 00 mov $0x1289,%eax
153e: ba 00 00 00 00 mov $0x0,%edx
1543: 83 ec 0c sub $0xc,%esp
1546: 68 8e 00 00 00 push $0x8e
154b: 6a 08 push $0x8
154d: 52 push %edx
154e: 50 push %eax
154f: 6a 0c push $0xc
1551: e8 86 01 00 00 call 16dc <idt_set_desc>
1556: 83 c4 20 add $0x20,%esp
1559: b8 a2 12 00 00 mov $0x12a2,%eax
155e: ba 00 00 00 00 mov $0x0,%edx
1563: 83 ec 0c sub $0xc,%esp
1566: 68 8e 00 00 00 push $0x8e
156b: 6a 08 push $0x8
156d: 52 push %edx
156e: 50 push %eax
156f: 6a 0d push $0xd
1571: e8 66 01 00 00 call 16dc <idt_set_desc>
1576: 83 c4 20 add $0x20,%esp
1579: b8 bb 12 00 00 mov $0x12bb,%eax
157e: ba 00 00 00 00 mov $0x0,%edx
1583: 83 ec 0c sub $0xc,%esp
1586: 68 8e 00 00 00 push $0x8e
158b: 6a 08 push $0x8
158d: 52 push %edx
158e: 50 push %eax
158f: 6a 0e push $0xe
1591: e8 46 01 00 00 call 16dc <idt_set_desc>
1596: 83 c4 20 add $0x20,%esp
1599: b8 d4 12 00 00 mov $0x12d4,%eax
159e: ba 00 00 00 00 mov $0x0,%edx
15a3: 83 ec 0c sub $0xc,%esp
15a6: 68 8e 00 00 00 push $0x8e
15ab: 6a 08 push $0x8
15ad: 52 push %edx
15ae: 50 push %eax
15af: 6a 10 push $0x10
15b1: e8 26 01 00 00 call 16dc <idt_set_desc>
15b6: 83 c4 20 add $0x20,%esp
15b9: b8 ed 12 00 00 mov $0x12ed,%eax
15be: ba 00 00 00 00 mov $0x0,%edx
15c3: 83 ec 0c sub $0xc,%esp
15c6: 68 8e 00 00 00 push $0x8e
15cb: 6a 08 push $0x8
15cd: 52 push %edx
15ce: 50 push %eax
15cf: 6a 11 push $0x11
15d1: e8 06 01 00 00 call 16dc <idt_set_desc>
15d6: 83 c4 20 add $0x20,%esp
15d9: b8 06 13 00 00 mov $0x1306,%eax
15de: ba 00 00 00 00 mov $0x0,%edx
15e3: 83 ec 0c sub $0xc,%esp
15e6: 68 8e 00 00 00 push $0x8e
15eb: 6a 08 push $0x8
15ed: 52 push %edx
15ee: 50 push %eax
15ef: 6a 12 push $0x12
15f1: e8 e6 00 00 00 call 16dc <idt_set_desc>
15f6: 83 c4 20 add $0x20,%esp
15f9: b8 1f 13 00 00 mov $0x131f,%eax
15fe: ba 00 00 00 00 mov $0x0,%edx
1603: 83 ec 0c sub $0xc,%esp
1606: 68 8e 00 00 00 push $0x8e
160b: 6a 08 push $0x8
160d: 52 push %edx
160e: 50 push %eax
160f: 6a 13 push $0x13
1611: e8 c6 00 00 00 call 16dc <idt_set_desc>
1616: 83 c4 20 add $0x20,%esp
1619: b8 38 13 00 00 mov $0x1338,%eax
161e: ba 00 00 00 00 mov $0x0,%edx
1623: 83 ec 0c sub $0xc,%esp
1626: 68 8e 00 00 00 push $0x8e
162b: 6a 08 push $0x8
162d: 52 push %edx
162e: 50 push %eax
162f: 6a 14 push $0x14
1631: e8 a6 00 00 00 call 16dc <idt_set_desc>
1636: 83 c4 20 add $0x20,%esp
1639: b8 51 13 00 00 mov $0x1351,%eax
163e: ba 00 00 00 00 mov $0x0,%edx
1643: 83 ec 0c sub $0xc,%esp
1646: 68 8e 00 00 00 push $0x8e
164b: 6a 08 push $0x8
164d: 52 push %edx
164e: 50 push %eax
164f: 6a 15 push $0x15
1651: e8 86 00 00 00 call 16dc <idt_set_desc>
1656: 83 c4 20 add $0x20,%esp
1659: b8 6a 13 00 00 mov $0x136a,%eax
165e: ba 00 00 00 00 mov $0x0,%edx
1663: 83 ec 0c sub $0xc,%esp
1666: 68 8e 00 00 00 push $0x8e
166b: 6a 08 push $0x8
166d: 52 push %edx
166e: 50 push %eax
166f: 6a 17 push $0x17
1671: e8 66 00 00 00 call 16dc <idt_set_desc>
1676: 83 c4 20 add $0x20,%esp
1679: b8 83 13 00 00 mov $0x1383,%eax
167e: ba 00 00 00 00 mov $0x0,%edx
1683: 83 ec 0c sub $0xc,%esp
1686: 68 8e 00 00 00 push $0x8e
168b: 6a 08 push $0x8
168d: 52 push %edx
168e: 50 push %eax
168f: 6a 18 push $0x18
1691: e8 46 00 00 00 call 16dc <idt_set_desc>
1696: 83 c4 20 add $0x20,%esp
1699: b8 9c 13 00 00 mov $0x139c,%eax
169e: ba 00 00 00 00 mov $0x0,%edx
16a3: 83 ec 0c sub $0xc,%esp
16a6: 68 8e 00 00 00 push $0x8e
16ab: 6a 08 push $0x8
16ad: 52 push %edx
16ae: 50 push %eax
16af: 6a 19 push $0x19
16b1: e8 26 00 00 00 call 16dc <idt_set_desc>
16b6: 83 c4 20 add $0x20,%esp
16b9: b8 b5 13 00 00 mov $0x13b5,%eax
16be: ba 00 00 00 00 mov $0x0,%edx
16c3: 83 ec 0c sub $0xc,%esp
16c6: 68 8e 00 00 00 push $0x8e
16cb: 6a 08 push $0x8
16cd: 52 push %edx
16ce: 50 push %eax
16cf: 6a 1a push $0x1a
16d1: e8 06 00 00 00 call 16dc <idt_set_desc>
16d6: 83 c4 20 add $0x20,%esp
16d9: 90 nop
16da: c9 leave
16db: c3 ret
000016dc <idt_set_desc>:
16dc: 55 push %ebp
16dd: 89 e5 mov %esp,%ebp
16df: 83 ec 18 sub $0x18,%esp
16e2: 8b 45 08 mov 0x8(%ebp),%eax
16e5: 8b 55 14 mov 0x14(%ebp),%edx
16e8: 8b 4d 18 mov 0x18(%ebp),%ecx
16eb: 88 45 fc mov %al,-0x4(%ebp)
16ee: 8b 45 0c mov 0xc(%ebp),%eax
16f1: 89 45 f0 mov %eax,-0x10(%ebp)
16f4: 8b 45 10 mov 0x10(%ebp),%eax
16f7: 89 45 f4 mov %eax,-0xc(%ebp)
16fa: 89 d0 mov %edx,%eax
16fc: 66 89 45 f8 mov %ax,-0x8(%ebp)
1700: 89 c8 mov %ecx,%eax
1702: 88 45 ec mov %al,-0x14(%ebp)
1705: 8b 45 f0 mov -0x10(%ebp),%eax
1708: 8b 55 f4 mov -0xc(%ebp),%edx
170b: 0f ac d0 10 shrd $0x10,%edx,%eax
170f: c1 ea 10 shr $0x10,%edx
1712: 0f b6 4d fc movzbl -0x4(%ebp),%ecx
1716: 66 89 04 cd 46 10 01 mov %ax,0x11046(,%ecx,8)
171d: 00
171e: 0f b6 45 fc movzbl -0x4(%ebp),%eax
1722: 8b 55 f0 mov -0x10(%ebp),%edx
1725: 66 89 14 c5 40 10 01 mov %dx,0x11040(,%eax,8)
172c: 00
172d: 0f b6 45 fc movzbl -0x4(%ebp),%eax
1731: c6 04 c5 44 10 01 00 movb $0x0,0x11044(,%eax,8)
1738: 00
1739: 0f b6 45 fc movzbl -0x4(%ebp),%eax
173d: 0f b7 55 f8 movzwl -0x8(%ebp),%edx
1741: 66 89 14 c5 42 10 01 mov %dx,0x11042(,%eax,8)
1748: 00
1749: 0f b6 45 fc movzbl -0x4(%ebp),%eax
174d: 0f b6 55 ec movzbl -0x14(%ebp),%edx
1751: 88 14 c5 45 10 01 00 mov %dl,0x11045(,%eax,8)
1758: 90 nop
1759: c9 leave
175a: c3 ret
0000175b <idt_init>:
175b: 55 push %ebp
175c: 89 e5 mov %esp,%ebp
175e: 83 ec 08 sub $0x8,%esp
1761: b8 40 10 01 00 mov $0x11040,%eax
1766: a3 42 18 01 00 mov %eax,0x11842
176b: 66 c7 05 40 18 01 00 movw $0x7ff,0x11840
1772: ff 07
1774: 83 ec 04 sub $0x4,%esp
1777: 68 00 08 00 00 push $0x800
177c: 6a 00 push $0x0
177e: 68 40 10 01 00 push $0x11040
1783: e8 cc 02 00 00 call 1a54 <memset>
1788: 83 c4 10 add $0x10,%esp
178b: e8 70 f8 ff ff call 1000 <idt_loader>
1790: e8 3e fc ff ff call 13d3 <isr_init>
1795: 83 ec 0c sub $0xc,%esp
1798: 68 d8 31 00 00 push $0x31d8
179d: e8 a7 f8 ff ff call 1049 <print>
17a2: 83 c4 10 add $0x10,%esp
17a5: 90 nop
17a6: c9 leave
17a7: c3 ret
000017a8 <gdt_set_desc>:
17a8: 55 push %ebp
17a9: 89 e5 mov %esp,%ebp
17ab: 83 ec 18 sub $0x18,%esp
17ae: 8b 4d 1c mov 0x1c(%ebp),%ecx
17b1: 8b 55 20 mov 0x20(%ebp),%edx
17b4: 8b 45 0c mov 0xc(%ebp),%eax
17b7: 89 45 f8 mov %eax,-0x8(%ebp)
17ba: 8b 45 10 mov 0x10(%ebp),%eax
17bd: 89 45 fc mov %eax,-0x4(%ebp)
17c0: 8b 45 14 mov 0x14(%ebp),%eax
17c3: 89 45 f0 mov %eax,-0x10(%ebp)
17c6: 8b 45 18 mov 0x18(%ebp),%eax
17c9: 89 45 f4 mov %eax,-0xc(%ebp)
17cc: 89 c8 mov %ecx,%eax
17ce: 88 45 ec mov %al,-0x14(%ebp)
17d1: 89 d0 mov %edx,%eax
17d3: 88 45 e8 mov %al,-0x18(%ebp)
17d6: 8b 45 f8 mov -0x8(%ebp),%eax
17d9: 89 c2 mov %eax,%edx
17db: 8b 45 08 mov 0x8(%ebp),%eax
17de: 66 89 14 c5 52 18 01 mov %dx,0x11852(,%eax,8)
17e5: 00
17e6: 8b 45 f8 mov -0x8(%ebp),%eax
17e9: 8b 55 fc mov -0x4(%ebp),%edx
17ec: 0f ac d0 10 shrd $0x10,%edx,%eax
17f0: c1 ea 10 shr $0x10,%edx
17f3: 89 c2 mov %eax,%edx
17f5: 8b 45 08 mov 0x8(%ebp),%eax
17f8: 88 14 c5 54 18 01 00 mov %dl,0x11854(,%eax,8)
17ff: 8b 45 f8 mov -0x8(%ebp),%eax
1802: 8b 55 fc mov -0x4(%ebp),%edx
1805: 0f ac d0 18 shrd $0x18,%edx,%eax
1809: c1 ea 18 shr $0x18,%edx
180c: 89 c2 mov %eax,%edx
180e: 8b 45 08 mov 0x8(%ebp),%eax
1811: 88 14 c5 57 18 01 00 mov %dl,0x11857(,%eax,8)
1818: 8b 45 f0 mov -0x10(%ebp),%eax
181b: 89 c2 mov %eax,%edx
181d: 8b 45 08 mov 0x8(%ebp),%eax
1820: 66 89 14 c5 50 18 01 mov %dx,0x11850(,%eax,8)
1827: 00
1828: 8b 45 f0 mov -0x10(%ebp),%eax
182b: 8b 55 f4 mov -0xc(%ebp),%edx
182e: 0f ac d0 10 shrd $0x10,%edx,%eax
1832: c1 ea 10 shr $0x10,%edx
1835: 83 e0 0f and $0xf,%eax
1838: 89 c2 mov %eax,%edx
183a: 8b 45 08 mov 0x8(%ebp),%eax
183d: 88 14 c5 56 18 01 00 mov %dl,0x11856(,%eax,8)
1844: 8b 45 08 mov 0x8(%ebp),%eax
1847: 0f b6 04 c5 56 18 01 movzbl 0x11856(,%eax,8),%eax
184e: 00
184f: 89 c2 mov %eax,%edx
1851: 0f b6 45 e8 movzbl -0x18(%ebp),%eax
1855: 83 e0 f0 and $0xfffffff0,%eax
1858: 09 d0 or %edx,%eax
185a: 89 c2 mov %eax,%edx
185c: 8b 45 08 mov 0x8(%ebp),%eax
185f: 88 14 c5 56 18 01 00 mov %dl,0x11856(,%eax,8)
1866: 8b 45 08 mov 0x8(%ebp),%eax
1869: 0f b6 55 ec movzbl -0x14(%ebp),%edx
186d: 88 14 c5 55 18 01 00 mov %dl,0x11855(,%eax,8)
1874: 90 nop
1875: c9 leave
1876: c3 ret
00001877 <gdt_init>:
1877: 55 push %ebp
1878: 89 e5 mov %esp,%ebp
187a: 83 ec 08 sub $0x8,%esp
187d: b8 50 18 01 00 mov $0x11850,%eax
1882: a3 4a 18 01 00 mov %eax,0x1184a
1887: 66 c7 05 48 18 01 00 movw $0x27,0x11848
188e: 27 00
1890: 83 ec 04 sub $0x4,%esp
1893: 6a 00 push $0x0
1895: 6a 00 push $0x0
1897: 6a 00 push $0x0
1899: 6a 00 push $0x0
189b: 6a 00 push $0x0
189d: 6a 00 push $0x0
189f: 6a 00 push $0x0
18a1: e8 02 ff ff ff call 17a8 <gdt_set_desc>
18a6: 83 c4 20 add $0x20,%esp
18a9: 83 ec 04 sub $0x4,%esp
18ac: 68 cf 00 00 00 push $0xcf
18b1: 68 9a 00 00 00 push $0x9a
18b6: 6a 00 push $0x0
18b8: 6a ff push $0xffffffff
18ba: 6a 00 push $0x0
18bc: 6a 00 push $0x0
18be: 6a 01 push $0x1
18c0: e8 e3 fe ff ff call 17a8 <gdt_set_desc>
18c5: 83 c4 20 add $0x20,%esp
18c8: 83 ec 04 sub $0x4,%esp
18cb: 68 cf 00 00 00 push $0xcf
18d0: 68 92 00 00 00 push $0x92
18d5: 6a 00 push $0x0
18d7: 6a ff push $0xffffffff
18d9: 6a 00 push $0x0
18db: 6a 00 push $0x0
18dd: 6a 02 push $0x2
18df: e8 c4 fe ff ff call 17a8 <gdt_set_desc>
18e4: 83 c4 20 add $0x20,%esp
18e7: 83 ec 04 sub $0x4,%esp
18ea: 68 cf 00 00 00 push $0xcf
18ef: 68 fa 00 00 00 push $0xfa
18f4: 6a 00 push $0x0
18f6: 6a ff push $0xffffffff
18f8: 6a 00 push $0x0
18fa: 6a 00 push $0x0
18fc: 6a 03 push $0x3
18fe: e8 a5 fe ff ff call 17a8 <gdt_set_desc>
1903: 83 c4 20 add $0x20,%esp
1906: 83 ec 04 sub $0x4,%esp
1909: 68 cf 00 00 00 push $0xcf
190e: 68 f2 00 00 00 push $0xf2
1913: 6a 00 push $0x0
1915: 6a ff push $0xffffffff
1917: 6a 00 push $0x0
1919: 6a 00 push $0x0
191b: 6a 04 push $0x4
191d: e8 86 fe ff ff call 17a8 <gdt_set_desc>
1922: 83 c4 20 add $0x20,%esp
1925: e8 e6 f6 ff ff call 1010 <gdt_flush>
192a: 83 ec 0c sub $0xc,%esp
192d: 68 f2 31 00 00 push $0x31f2
1932: e8 12 f7 ff ff call 1049 <print>
1937: 83 c4 10 add $0x10,%esp
193a: 90 nop
193b: c9 leave
193c: c3 ret
0000193d <strcmp>:
193d: 55 push %ebp
193e: 89 e5 mov %esp,%ebp
1940: 83 ec 18 sub $0x18,%esp
1943: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp)
194a: eb 45 jmp 1991 <strcmp+0x54>
194c: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp)
1953: eb 25 jmp 197a <strcmp+0x3d>
1955: 8b 55 f4 mov -0xc(%ebp),%edx
1958: 8b 45 08 mov 0x8(%ebp),%eax
195b: 01 d0 add %edx,%eax
195d: 0f b6 10 movzbl (%eax),%edx
1960: 8b 4d f4 mov -0xc(%ebp),%ecx
1963: 8b 45 0c mov 0xc(%ebp),%eax
1966: 01 c8 add %ecx,%eax
1968: 0f b6 00 movzbl (%eax),%eax
196b: 38 c2 cmp %al,%dl
196d: 74 07 je 1976 <strcmp+0x39>
196f: b8 01 00 00 00 mov $0x1,%eax
1974: eb 33 jmp 19a9 <strcmp+0x6c>
1976: 83 45 f4 01 addl $0x1,-0xc(%ebp)
197a: 83 ec 0c sub $0xc,%esp
197d: ff 75 0c push 0xc(%ebp)
1980: e8 a8 00 00 00 call 1a2d <kcharlen>
1985: 83 c4 10 add $0x10,%esp
1988: 39 45 f4 cmp %eax,-0xc(%ebp)
198b: 7c c8 jl 1955 <strcmp+0x18>
198d: 83 45 f4 01 addl $0x1,-0xc(%ebp)
1991: 83 ec 0c sub $0xc,%esp
1994: ff 75 08 push 0x8(%ebp)
1997: e8 91 00 00 00 call 1a2d <kcharlen>
199c: 83 c4 10 add $0x10,%esp
199f: 39 45 f4 cmp %eax,-0xc(%ebp)
19a2: 7c a8 jl 194c <strcmp+0xf>
19a4: b8 00 00 00 00 mov $0x0,%eax
19a9: c9 leave
19aa: c3 ret
000019ab <strncmp>:
19ab: 55 push %ebp
19ac: 89 e5 mov %esp,%ebp
19ae: 83 ec 08 sub $0x8,%esp
19b1: 83 ec 0c sub $0xc,%esp
19b4: ff 75 08 push 0x8(%ebp)
19b7: e8 71 00 00 00 call 1a2d <kcharlen>
19bc: 83 c4 10 add $0x10,%esp
19bf: 39 45 10 cmp %eax,0x10(%ebp)
19c2: 7f 13 jg 19d7 <strncmp+0x2c>
19c4: 83 ec 0c sub $0xc,%esp
19c7: ff 75 0c push 0xc(%ebp)
19ca: e8 5e 00 00 00 call 1a2d <kcharlen>
19cf: 83 c4 10 add $0x10,%esp
19d2: 39 45 10 cmp %eax,0x10(%ebp)
19d5: 7e 13 jle 19ea <strncmp+0x3f>
19d7: b8 02 00 00 00 mov $0x2,%eax
19dc: eb 4d jmp 1a2b <strncmp+0x80>
19de: 83 6d 10 01 subl $0x1,0x10(%ebp)
19e2: 83 45 0c 01 addl $0x1,0xc(%ebp)
19e6: 83 45 08 01 addl $0x1,0x8(%ebp)
19ea: 83 7d 10 00 cmpl $0x0,0x10(%ebp)
19ee: 7e 18 jle 1a08 <strncmp+0x5d>
19f0: 8b 45 08 mov 0x8(%ebp),%eax
19f3: 0f b6 00 movzbl (%eax),%eax
19f6: 84 c0 test %al,%al
19f8: 74 0e je 1a08 <strncmp+0x5d>
19fa: 8b 45 08 mov 0x8(%ebp),%eax
19fd: 0f b6 00 movzbl (%eax),%eax
1a00: 0f be c0 movsbl %al,%eax
1a03: 39 45 0c cmp %eax,0xc(%ebp)
1a06: 74 d6 je 19de <strncmp+0x33>
1a08: 83 7d 10 00 cmpl $0x0,0x10(%ebp)
1a0c: 75 07 jne 1a15 <strncmp+0x6a>
1a0e: b8 00 00 00 00 mov $0x0,%eax
1a13: eb 16 jmp 1a2b <strncmp+0x80>
1a15: 8b 45 08 mov 0x8(%ebp),%eax
1a18: 0f b6 00 movzbl (%eax),%eax
1a1b: 0f be d0 movsbl %al,%edx
1a1e: 8b 45 0c mov 0xc(%ebp),%eax
1a21: 0f b6 00 movzbl (%eax),%eax
1a24: 0f be c8 movsbl %al,%ecx
1a27: 89 d0 mov %edx,%eax
1a29: 29 c8 sub %ecx,%eax
1a2b: c9 leave
1a2c: c3 ret
00001a2d <kcharlen>:
1a2d: 55 push %ebp
1a2e: 89 e5 mov %esp,%ebp
1a30: 83 ec 10 sub $0x10,%esp
1a33: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%ebp)
1a3a: eb 04 jmp 1a40 <kcharlen+0x13>
1a3c: 83 45 fc 01 addl $0x1,-0x4(%ebp)
1a40: 8b 55 fc mov -0x4(%ebp),%edx
1a43: 8b 45 08 mov 0x8(%ebp),%eax
1a46: 01 d0 add %edx,%eax
1a48: 0f b6 00 movzbl (%eax),%eax
1a4b: 84 c0 test %al,%al
1a4d: 75 ed jne 1a3c <kcharlen+0xf>
1a4f: 8b 45 fc mov -0x4(%ebp),%eax
1a52: c9 leave
1a53: c3 ret
00001a54 <memset>:
1a54: 55 push %ebp
1a55: 89 e5 mov %esp,%ebp
1a57: 83 ec 10 sub $0x10,%esp
1a5a: 8b 45 08 mov 0x8(%ebp),%eax
1a5d: 89 45 f8 mov %eax,-0x8(%ebp)
1a60: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
1a67: eb 11 jmp 1a7a <memset+0x26>
1a69: 8b 55 f8 mov -0x8(%ebp),%edx
1a6c: 8b 45 fc mov -0x4(%ebp),%eax
1a6f: 01 d0 add %edx,%eax
1a71: 8b 55 0c mov 0xc(%ebp),%edx
1a74: 88 10 mov %dl,(%eax)
1a76: 83 45 fc 01 addl $0x1,-0x4(%ebp)
1a7a: 8b 45 fc mov -0x4(%ebp),%eax
1a7d: 3b 45 10 cmp 0x10(%ebp),%eax
1a80: 72 e7 jb 1a69 <memset+0x15>
1a82: 8b 45 08 mov 0x8(%ebp),%eax
1a85: c9 leave
1a86: c3 ret
00001a87 <itoa>:
1a87: 55 push %ebp
1a88: 89 e5 mov %esp,%ebp
1a8a: 83 ec 10 sub $0x10,%esp
1a8d: c7 45 fc 1e 00 00 00 movl $0x1e,-0x4(%ebp)
1a94: eb 29 jmp 1abf <itoa+0x38>
1a96: 8b 45 08 mov 0x8(%ebp),%eax
1a99: 99 cltd
1a9a: f7 7d 0c idivl 0xc(%ebp)
1a9d: 89 d0 mov %edx,%eax
1a9f: 0f b6 80 0c 32 00 00 movzbl 0x320c(%eax),%eax
1aa6: 8b 55 fc mov -0x4(%ebp),%edx
1aa9: 81 c2 80 18 01 00 add $0x11880,%edx
1aaf: 88 02 mov %al,(%edx)
1ab1: 83 6d fc 01 subl $0x1,-0x4(%ebp)
1ab5: 8b 45 08 mov 0x8(%ebp),%eax
1ab8: 99 cltd
1ab9: f7 7d 0c idivl 0xc(%ebp)
1abc: 89 45 08 mov %eax,0x8(%ebp)
1abf: 83 7d 08 00 cmpl $0x0,0x8(%ebp)
1ac3: 74 06 je 1acb <itoa+0x44>
1ac5: 83 7d fc 00 cmpl $0x0,-0x4(%ebp)
1ac9: 75 cb jne 1a96 <itoa+0xf>
1acb: 8b 45 fc mov -0x4(%ebp),%eax
1ace: 83 c0 01 add $0x1,%eax
1ad1: 05 80 18 01 00 add $0x11880,%eax
1ad6: c9 leave
1ad7: c3 ret
00001ad8 <lltoa>:
1ad8: 55 push %ebp
1ad9: 89 e5 mov %esp,%ebp
1adb: 57 push %edi
1adc: 56 push %esi
1add: 53 push %ebx
1ade: 83 ec 2c sub $0x2c,%esp
1ae1: 8b 45 08 mov 0x8(%ebp),%eax
1ae4: 89 45 d0 mov %eax,-0x30(%ebp)
1ae7: 8b 45 0c mov 0xc(%ebp),%eax
1aea: 89 45 d4 mov %eax,-0x2c(%ebp)
1aed: c7 45 e4 3e 00 00 00 movl $0x3e,-0x1c(%ebp)
1af4: 8b 45 d4 mov -0x2c(%ebp),%eax
1af7: c1 e8 1f shr $0x1f,%eax
1afa: 0f b6 c0 movzbl %al,%eax
1afd: 89 45 e0 mov %eax,-0x20(%ebp)
1b00: 83 7d e0 00 cmpl $0x0,-0x20(%ebp)
1b04: 74 0a je 1b10 <lltoa+0x38>
1b06: f7 5d d0 negl -0x30(%ebp)
1b09: 83 55 d4 00 adcl $0x0,-0x2c(%ebp)
1b0d: f7 5d d4 negl -0x2c(%ebp)
1b10: 8b 45 d0 mov -0x30(%ebp),%eax
1b13: 8b 55 d4 mov -0x2c(%ebp),%edx
1b16: 89 c1 mov %eax,%ecx
1b18: 89 d3 mov %edx,%ebx
1b1a: 89 d8 mov %ebx,%eax
1b1c: 09 c8 or %ecx,%eax
1b1e: 85 c0 test %eax,%eax
1b20: 75 51 jne 1b73 <lltoa+0x9b>
1b22: b8 1d 32 00 00 mov $0x321d,%eax
1b27: e9 80 00 00 00 jmp 1bac <lltoa+0xd4>
1b2c: 8b 45 10 mov 0x10(%ebp),%eax
1b2f: 99 cltd
1b30: 8b 4d d0 mov -0x30(%ebp),%ecx
1b33: 8b 5d d4 mov -0x2c(%ebp),%ebx
1b36: 52 push %edx
1b37: 50 push %eax
1b38: 53 push %ebx
1b39: 51 push %ecx
1b3a: e8 71 07 00 00 call 22b0 <__moddi3>
1b3f: 83 c4 10 add $0x10,%esp
1b42: 05 0c 32 00 00 add $0x320c,%eax
1b47: 0f b6 00 movzbl (%eax),%eax
1b4a: 8b 55 e4 mov -0x1c(%ebp),%edx
1b4d: 81 c2 a0 18 01 00 add $0x118a0,%edx
1b53: 88 02 mov %al,(%edx)
1b55: 83 6d e4 01 subl $0x1,-0x1c(%ebp)
1b59: 8b 45 10 mov 0x10(%ebp),%eax
1b5c: 99 cltd
1b5d: 52 push %edx
1b5e: 50 push %eax
1b5f: ff 75 d4 push -0x2c(%ebp)
1b62: ff 75 d0 push -0x30(%ebp)
1b65: e8 06 06 00 00 call 2170 <__divdi3>
1b6a: 83 c4 10 add $0x10,%esp
1b6d: 89 45 d0 mov %eax,-0x30(%ebp)
1b70: 89 55 d4 mov %edx,-0x2c(%ebp)
1b73: 8b 45 d0 mov -0x30(%ebp),%eax
1b76: 8b 55 d4 mov -0x2c(%ebp),%edx
1b79: 89 c6 mov %eax,%esi
1b7b: 89 d7 mov %edx,%edi
1b7d: 89 f8 mov %edi,%eax
1b7f: 09 f0 or %esi,%eax
1b81: 85 c0 test %eax,%eax
1b83: 74 06 je 1b8b <lltoa+0xb3>
1b85: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp)
1b89: 75 a1 jne 1b2c <lltoa+0x54>
1b8b: 83 7d e0 00 cmpl $0x0,-0x20(%ebp)
1b8f: 74 10 je 1ba1 <lltoa+0xc9>
1b91: 8b 45 e4 mov -0x1c(%ebp),%eax
1b94: 8d 50 ff lea -0x1(%eax),%edx
1b97: 89 55 e4 mov %edx,-0x1c(%ebp)
1b9a: c6 80 a0 18 01 00 2d movb $0x2d,0x118a0(%eax)
1ba1: 8b 45 e4 mov -0x1c(%ebp),%eax
1ba4: 83 c0 01 add $0x1,%eax
1ba7: 05 a0 18 01 00 add $0x118a0,%eax
1bac: 8d 65 f4 lea -0xc(%ebp),%esp
1baf: 5b pop %ebx
1bb0: 5e pop %esi
1bb1: 5f pop %edi
1bb2: 5d pop %ebp
1bb3: c3 ret
00001bb4 <khash>:
1bb4: 55 push %ebp
1bb5: 89 e5 mov %esp,%ebp
1bb7: 83 ec 10 sub $0x10,%esp
1bba: c7 45 fc 05 15 00 00 movl $0x1505,-0x4(%ebp)
1bc1: eb 09 jmp 1bcc <khash+0x18>
1bc3: 8b 45 fc mov -0x4(%ebp),%eax
1bc6: c1 e0 05 shl $0x5,%eax
1bc9: 01 45 fc add %eax,-0x4(%ebp)
1bcc: 8b 45 08 mov 0x8(%ebp),%eax
1bcf: 8d 50 01 lea 0x1(%eax),%edx
1bd2: 89 55 08 mov %edx,0x8(%ebp)
1bd5: 0f b6 00 movzbl (%eax),%eax
1bd8: 0f be c0 movsbl %al,%eax
1bdb: 89 45 f8 mov %eax,-0x8(%ebp)
1bde: 83 7d f8 00 cmpl $0x0,-0x8(%ebp)
1be2: 75 df jne 1bc3 <khash+0xf>
1be4: 8b 45 fc mov -0x4(%ebp),%eax
1be7: c9 leave
1be8: c3 ret
00001be9 <kpanic>:
1be9: 55 push %ebp
1bea: 89 e5 mov %esp,%ebp
1bec: 83 ec 08 sub $0x8,%esp
1bef: e8 3b f5 ff ff call 112f <terminal_clear_screen>
1bf4: 83 ec 0c sub $0xc,%esp
1bf7: 68 1f 32 00 00 push $0x321f
1bfc: e8 48 f4 ff ff call 1049 <print>
1c01: 83 c4 10 add $0x10,%esp
1c04: 83 ec 0c sub $0xc,%esp
1c07: ff 75 08 push 0x8(%ebp)
1c0a: e8 3a f4 ff ff call 1049 <print>
1c0f: 83 c4 10 add $0x10,%esp
1c12: fa cli
1c13: f4 hlt
1c14: 90 nop
1c15: c9 leave
1c16: c3 ret
00001c17 <kmain>:
1c17: 55 push %ebp
1c18: 89 e5 mov %esp,%ebp
1c1a: 83 ec 08 sub $0x8,%esp
1c1d: 8b 45 08 mov 0x8(%ebp),%eax
1c20: 8b 00 mov (%eax),%eax
1c22: ba 00 00 00 00 mov $0x0,%edx
1c27: 83 ec 04 sub $0x4,%esp
1c2a: 6a 0a push $0xa
1c2c: 52 push %edx
1c2d: 50 push %eax
1c2e: e8 a5 fe ff ff call 1ad8 <lltoa>
1c33: 83 c4 10 add $0x10,%esp
1c36: 83 ec 0c sub $0xc,%esp
1c39: 50 push %eax
1c3a: e8 0a f4 ff ff call 1049 <print>
1c3f: 83 c4 10 add $0x10,%esp
1c42: e8 e8 f4 ff ff call 112f <terminal_clear_screen>
1c47: 81 7d 0c 02 b0 ad 2b cmpl $0x2badb002,0xc(%ebp)
1c4e: 74 10 je 1c60 <kmain+0x49>
1c50: 83 ec 0c sub $0xc,%esp
1c53: 68 3d 32 00 00 push $0x323d
1c58: e8 8c ff ff ff call 1be9 <kpanic>
1c5d: 83 c4 10 add $0x10,%esp
1c60: 8b 45 08 mov 0x8(%ebp),%eax
1c63: a3 e0 18 01 00 mov %eax,0x118e0
1c68: e8 0a fc ff ff call 1877 <gdt_init>
1c6d: e8 e9 fa ff ff call 175b <idt_init>
1c72: e8 07 00 00 00 call 1c7e <command_line>
1c77: e8 bf 01 00 00 call 1e3b <shell_init>
1c7c: eb f9 jmp 1c77 <kmain+0x60>
00001c7e <command_line>:
1c7e: 55 push %ebp
1c7f: 89 e5 mov %esp,%ebp
1c81: 83 ec 08 sub $0x8,%esp
1c84: 83 ec 0c sub $0xc,%esp
1c87: 68 54 32 00 00 push $0x3254
1c8c: e8 b8 f3 ff ff call 1049 <print>
1c91: 83 c4 10 add $0x10,%esp
1c94: 90 nop
1c95: c9 leave
1c96: c3 ret
00001c97 <exception_invalid_usage>:
1c97: 55 push %ebp
1c98: 89 e5 mov %esp,%ebp
1c9a: 83 ec 08 sub $0x8,%esp
1c9d: 83 ec 0c sub $0xc,%esp
1ca0: 68 61 32 00 00 push $0x3261
1ca5: e8 9f f3 ff ff call 1049 <print>
1caa: 83 c4 10 add $0x10,%esp
1cad: e8 cc ff ff ff call 1c7e <command_line>
1cb2: 90 nop
1cb3: c9 leave
1cb4: c3 ret
00001cb5 <shell_about>:
1cb5: 55 push %ebp
1cb6: 89 e5 mov %esp,%ebp
1cb8: 83 ec 08 sub $0x8,%esp
1cbb: 83 ec 0c sub $0xc,%esp
1cbe: 68 78 32 00 00 push $0x3278
1cc3: e8 81 f3 ff ff call 1049 <print>
1cc8: 83 c4 10 add $0x10,%esp
1ccb: e8 ae ff ff ff call 1c7e <command_line>
1cd0: 90 nop
1cd1: c9 leave
1cd2: c3 ret
00001cd3 <shell_clear>:
1cd3: 55 push %ebp
1cd4: 89 e5 mov %esp,%ebp
1cd6: 83 ec 08 sub $0x8,%esp
1cd9: e8 51 f4 ff ff call 112f <terminal_clear_screen>
1cde: e8 9b ff ff ff call 1c7e <command_line>
1ce3: 90 nop
1ce4: c9 leave
1ce5: c3 ret
00001ce6 <shell_echo>:
1ce6: 55 push %ebp
1ce7: 89 e5 mov %esp,%ebp
1ce9: 83 ec 08 sub $0x8,%esp
1cec: 83 45 08 05 addl $0x5,0x8(%ebp)
1cf0: 83 ec 0c sub $0xc,%esp
1cf3: 68 eb 32 00 00 push $0x32eb
1cf8: e8 4c f3 ff ff call 1049 <print>
1cfd: 83 c4 10 add $0x10,%esp
1d00: 83 ec 0c sub $0xc,%esp
1d03: ff 75 08 push 0x8(%ebp)
1d06: e8 3e f3 ff ff call 1049 <print>
1d0b: 83 c4 10 add $0x10,%esp
1d0e: e8 6b ff ff ff call 1c7e <command_line>
1d13: 90 nop
1d14: c9 leave
1d15: c3 ret
00001d16 <shell_totalmemory>:
1d16: 55 push %ebp
1d17: 89 e5 mov %esp,%ebp
1d19: 83 ec 08 sub $0x8,%esp
1d1c: 83 ec 0c sub $0xc,%esp
1d1f: 68 ed 32 00 00 push $0x32ed
1d24: e8 20 f3 ff ff call 1049 <print>
1d29: 83 c4 10 add $0x10,%esp
1d2c: a1 e0 18 01 00 mov 0x118e0,%eax
1d31: 8b 50 04 mov 0x4(%eax),%edx
1d34: a1 e0 18 01 00 mov 0x118e0,%eax
1d39: 8b 40 08 mov 0x8(%eax),%eax
1d3c: 01 d0 add %edx,%eax
1d3e: ba 00 00 00 00 mov $0x0,%edx
1d43: 83 ec 04 sub $0x4,%esp
1d46: 6a 0a push $0xa
1d48: 52 push %edx
1d49: 50 push %eax
1d4a: e8 89 fd ff ff call 1ad8 <lltoa>
1d4f: 83 c4 10 add $0x10,%esp
1d52: 83 ec 0c sub $0xc,%esp
1d55: 50 push %eax
1d56: e8 ee f2 ff ff call 1049 <print>
1d5b: 83 c4 10 add $0x10,%esp
1d5e: 83 ec 0c sub $0xc,%esp
1d61: 68 07 33 00 00 push $0x3307
1d66: e8 de f2 ff ff call 1049 <print>
1d6b: 83 c4 10 add $0x10,%esp
1d6e: e8 0b ff ff ff call 1c7e <command_line>
1d73: 90 nop
1d74: c9 leave
1d75: c3 ret
00001d76 <shell_print_mmap>:
1d76: 55 push %ebp
1d77: 89 e5 mov %esp,%ebp
1d79: 83 ec 08 sub $0x8,%esp
1d7c: 83 ec 0c sub $0xc,%esp
1d7f: 68 eb 32 00 00 push $0x32eb
1d84: e8 c0 f2 ff ff call 1049 <print>
1d89: 83 c4 10 add $0x10,%esp
1d8c: 83 ec 0c sub $0xc,%esp
1d8f: 68 0a 33 00 00 push $0x330a
1d94: e8 b0 f2 ff ff call 1049 <print>
1d99: 83 c4 10 add $0x10,%esp
1d9c: a1 e0 18 01 00 mov 0x118e0,%eax
1da1: 8b 40 04 mov 0x4(%eax),%eax
1da4: ba 00 00 00 00 mov $0x0,%edx
1da9: 83 ec 04 sub $0x4,%esp
1dac: 6a 0a push $0xa
1dae: 52 push %edx
1daf: 50 push %eax
1db0: e8 23 fd ff ff call 1ad8 <lltoa>
1db5: 83 c4 10 add $0x10,%esp
1db8: 83 ec 0c sub $0xc,%esp
1dbb: 50 push %eax
1dbc: e8 88 f2 ff ff call 1049 <print>
1dc1: 83 c4 10 add $0x10,%esp
1dc4: 83 ec 0c sub $0xc,%esp
1dc7: 68 15 33 00 00 push $0x3315
1dcc: e8 78 f2 ff ff call 1049 <print>
1dd1: 83 c4 10 add $0x10,%esp
1dd4: a1 e0 18 01 00 mov 0x118e0,%eax
1dd9: 8b 40 08 mov 0x8(%eax),%eax
1ddc: ba 00 00 00 00 mov $0x0,%edx
1de1: 83 ec 04 sub $0x4,%esp
1de4: 6a 0a push $0xa
1de6: 52 push %edx
1de7: 50 push %eax
1de8: e8 eb fc ff ff call 1ad8 <lltoa>
1ded: 83 c4 10 add $0x10,%esp
1df0: 83 ec 0c sub $0xc,%esp
1df3: 50 push %eax
1df4: e8 50 f2 ff ff call 1049 <print>
1df9: 83 c4 10 add $0x10,%esp
1dfc: 83 ec 0c sub $0xc,%esp
1dff: 68 23 33 00 00 push $0x3323
1e04: e8 40 f2 ff ff call 1049 <print>
1e09: 83 c4 10 add $0x10,%esp
1e0c: a1 e0 18 01 00 mov 0x118e0,%eax
1e11: 8b 00 mov (%eax),%eax
1e13: ba 00 00 00 00 mov $0x0,%edx
1e18: 83 ec 04 sub $0x4,%esp
1e1b: 6a 0a push $0xa
1e1d: 52 push %edx
1e1e: 50 push %eax
1e1f: e8 b4 fc ff ff call 1ad8 <lltoa>
1e24: 83 c4 10 add $0x10,%esp
1e27: 83 ec 0c sub $0xc,%esp
1e2a: 50 push %eax
1e2b: e8 19 f2 ff ff call 1049 <print>
1e30: 83 c4 10 add $0x10,%esp
1e33: e8 46 fe ff ff call 1c7e <command_line>
1e38: 90 nop
1e39: c9 leave
1e3a: c3 ret
00001e3b <shell_init>:
1e3b: 55 push %ebp
1e3c: 89 e5 mov %esp,%ebp
1e3e: 83 ec 28 sub $0x28,%esp
1e41: 83 ec 0c sub $0xc,%esp
1e44: 6a 01 push $0x1
1e46: e8 0c 02 00 00 call 2057 <keyboard_handler>
1e4b: 83 c4 10 add $0x10,%esp
1e4e: 89 45 f4 mov %eax,-0xc(%ebp)
1e51: c7 45 dc 2d 33 00 00 movl $0x332d,-0x24(%ebp)
1e58: c7 45 e0 32 33 00 00 movl $0x3332,-0x20(%ebp)
1e5f: c7 45 e4 37 33 00 00 movl $0x3337,-0x1c(%ebp)
1e66: c7 45 e8 3d 33 00 00 movl $0x333d,-0x18(%ebp)
1e6d: c7 45 ec 43 33 00 00 movl $0x3343,-0x14(%ebp)
1e74: c7 45 f0 4c 33 00 00 movl $0x334c,-0x10(%ebp)
1e7b: 8b 45 dc mov -0x24(%ebp),%eax
1e7e: 83 ec 08 sub $0x8,%esp
1e81: 50 push %eax
1e82: ff 75 f4 push -0xc(%ebp)
1e85: e8 b3 fa ff ff call 193d <strcmp>
1e8a: 83 c4 10 add $0x10,%esp
1e8d: 85 c0 test %eax,%eax
1e8f: 75 1a jne 1eab <shell_init+0x70>
1e91: 83 ec 0c sub $0xc,%esp
1e94: 68 54 33 00 00 push $0x3354
1e99: e8 ab f1 ff ff call 1049 <print>
1e9e: 83 c4 10 add $0x10,%esp
1ea1: e8 d8 fd ff ff call 1c7e <command_line>
1ea6: e9 f2 00 00 00 jmp 1f9d <shell_init+0x162>
1eab: 8b 45 e0 mov -0x20(%ebp),%eax
1eae: 83 ec 04 sub $0x4,%esp
1eb1: 6a 04 push $0x4
1eb3: ff 75 f4 push -0xc(%ebp)
1eb6: 50 push %eax
1eb7: e8 ef fa ff ff call 19ab <strncmp>
1ebc: 83 c4 10 add $0x10,%esp
1ebf: 85 c0 test %eax,%eax
1ec1: 75 30 jne 1ef3 <shell_init+0xb8>
1ec3: 83 ec 0c sub $0xc,%esp
1ec6: ff 75 f4 push -0xc(%ebp)
1ec9: e8 5f fb ff ff call 1a2d <kcharlen>
1ece: 83 c4 10 add $0x10,%esp
1ed1: 83 f8 04 cmp $0x4,%eax
1ed4: 7f 0a jg 1ee0 <shell_init+0xa5>
1ed6: e8 bc fd ff ff call 1c97 <exception_invalid_usage>
1edb: e9 bd 00 00 00 jmp 1f9d <shell_init+0x162>
1ee0: 83 ec 0c sub $0xc,%esp
1ee3: ff 75 f4 push -0xc(%ebp)
1ee6: e8 fb fd ff ff call 1ce6 <shell_echo>
1eeb: 83 c4 10 add $0x10,%esp
1eee: e9 aa 00 00 00 jmp 1f9d <shell_init+0x162>
1ef3: 8b 45 e4 mov -0x1c(%ebp),%eax
1ef6: 83 ec 08 sub $0x8,%esp
1ef9: 50 push %eax
1efa: ff 75 f4 push -0xc(%ebp)
1efd: e8 3b fa ff ff call 193d <strcmp>
1f02: 83 c4 10 add $0x10,%esp
1f05: 85 c0 test %eax,%eax
1f07: 75 0a jne 1f13 <shell_init+0xd8>
1f09: e8 a7 fd ff ff call 1cb5 <shell_about>
1f0e: e9 8a 00 00 00 jmp 1f9d <shell_init+0x162>
1f13: 8b 45 e8 mov -0x18(%ebp),%eax
1f16: 83 ec 08 sub $0x8,%esp
1f19: 50 push %eax
1f1a: ff 75 f4 push -0xc(%ebp)
1f1d: e8 1b fa ff ff call 193d <strcmp>
1f22: 83 c4 10 add $0x10,%esp
1f25: 85 c0 test %eax,%eax
1f27: 75 07 jne 1f30 <shell_init+0xf5>
1f29: e8 a5 fd ff ff call 1cd3 <shell_clear>
1f2e: eb 6d jmp 1f9d <shell_init+0x162>
1f30: 8b 45 ec mov -0x14(%ebp),%eax
1f33: 83 ec 08 sub $0x8,%esp
1f36: 50 push %eax
1f37: ff 75 f4 push -0xc(%ebp)
1f3a: e8 fe f9 ff ff call 193d <strcmp>
1f3f: 83 c4 10 add $0x10,%esp
1f42: 85 c0 test %eax,%eax
1f44: 75 07 jne 1f4d <shell_init+0x112>
1f46: e8 cb fd ff ff call 1d16 <shell_totalmemory>
1f4b: eb 50 jmp 1f9d <shell_init+0x162>
1f4d: 8b 45 f0 mov -0x10(%ebp),%eax
1f50: 83 ec 08 sub $0x8,%esp
1f53: 50 push %eax
1f54: ff 75 f4 push -0xc(%ebp)
1f57: e8 e1 f9 ff ff call 193d <strcmp>
1f5c: 83 c4 10 add $0x10,%esp
1f5f: 85 c0 test %eax,%eax
1f61: 75 07 jne 1f6a <shell_init+0x12f>
1f63: e8 0e fe ff ff call 1d76 <shell_print_mmap>
1f68: eb 33 jmp 1f9d <shell_init+0x162>
1f6a: 83 ec 08 sub $0x8,%esp
1f6d: 68 1e 34 00 00 push $0x341e
1f72: ff 75 f4 push -0xc(%ebp)
1f75: e8 c3 f9 ff ff call 193d <strcmp>
1f7a: 83 c4 10 add $0x10,%esp
1f7d: 85 c0 test %eax,%eax
1f7f: 74 1c je 1f9d <shell_init+0x162>
1f81: 83 ec 0c sub $0xc,%esp
1f84: 68 20 34 00 00 push $0x3420
1f89: e8 bb f0 ff ff call 1049 <print>
1f8e: 83 c4 10 add $0x10,%esp
1f91: c7 45 f4 1e 34 00 00 movl $0x341e,-0xc(%ebp)
1f98: e8 e1 fc ff ff call 1c7e <command_line>
1f9d: 90 nop
1f9e: c9 leave
1f9f: c3 ret
00001fa0 <inportb>:
1fa0: 55 push %ebp
1fa1: 89 e5 mov %esp,%ebp
1fa3: 83 ec 10 sub $0x10,%esp
1fa6: 8b 45 08 mov 0x8(%ebp),%eax
1fa9: 89 c2 mov %eax,%edx
1fab: ec in (%dx),%al
1fac: 88 45 ff mov %al,-0x1(%ebp)
1faf: 0f b6 45 ff movzbl -0x1(%ebp),%eax
1fb3: c9 leave
1fb4: c3 ret
00001fb5 <outportb>:
1fb5: 55 push %ebp
1fb6: 89 e5 mov %esp,%ebp
1fb8: 83 ec 04 sub $0x4,%esp
1fbb: 8b 45 0c mov 0xc(%ebp),%eax
1fbe: 88 45 fc mov %al,-0x4(%ebp)
1fc1: 8b 55 08 mov 0x8(%ebp),%edx
1fc4: 0f b6 45 fc movzbl -0x4(%ebp),%eax
1fc8: ee out %al,(%dx)
1fc9: 90 nop
1fca: c9 leave
1fcb: c3 ret
00001fcc <init_pics>:
1fcc: 55 push %ebp
1fcd: 89 e5 mov %esp,%ebp
1fcf: 6a 11 push $0x11
1fd1: 6a 20 push $0x20
1fd3: e8 dd ff ff ff call 1fb5 <outportb>
1fd8: 83 c4 08 add $0x8,%esp
1fdb: 6a 11 push $0x11
1fdd: 68 00 a2 00 00 push $0xa200
1fe2: e8 ce ff ff ff call 1fb5 <outportb>
1fe7: 83 c4 08 add $0x8,%esp
1fea: 8b 45 08 mov 0x8(%ebp),%eax
1fed: 0f b6 c0 movzbl %al,%eax
1ff0: 50 push %eax
1ff1: 6a 21 push $0x21
1ff3: e8 bd ff ff ff call 1fb5 <outportb>
1ff8: 83 c4 08 add $0x8,%esp
1ffb: 8b 45 0c mov 0xc(%ebp),%eax
1ffe: 0f b6 c0 movzbl %al,%eax
2001: 50 push %eax
2002: 68 01 a2 00 00 push $0xa201
2007: e8 a9 ff ff ff call 1fb5 <outportb>
200c: 83 c4 08 add $0x8,%esp
200f: 6a 04 push $0x4
2011: 6a 21 push $0x21
2013: e8 9d ff ff ff call 1fb5 <outportb>
2018: 83 c4 08 add $0x8,%esp
201b: 6a 02 push $0x2
201d: 68 01 a2 00 00 push $0xa201
2022: e8 8e ff ff ff call 1fb5 <outportb>