From 6c1c2e05ad56a3e7383863cfc0535bd13c93f83d Mon Sep 17 00:00:00 2001 From: ridethepig Date: Sun, 30 Oct 2022 00:18:22 +0800 Subject: [PATCH] load program ok --- .vscode/settings.json | 2 +- inc/elf.h | 4 +- kern.asm | 6164 +++++++++++++++++++++++++++++++++++++++++ kern/main.c | 58 +- 4 files changed, 6223 insertions(+), 5 deletions(-) create mode 100644 kern.asm diff --git a/.vscode/settings.json b/.vscode/settings.json index d264713..6df04d7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,6 @@ { "editor.detectIndentation": false, - "editor.tabSize": 8, + "editor.tabSize": 4, "editor.insertSpaces": false, "files.associations": { "*.h": "c", diff --git a/inc/elf.h b/inc/elf.h index 365d7f2..2f740aa 100644 --- a/inc/elf.h +++ b/inc/elf.h @@ -46,7 +46,9 @@ struct Secthdr { u32 sh_addralign; u32 sh_entsize; }; - +typedef struct Elf Elf32_Ehdr; +typedef struct Proghdr Elf32_Phdr; +typedef struct Secthdr Elf32_Shdr; // Values for Proghdr::p_type #define PT_LOAD 1 diff --git a/kern.asm b/kern.asm new file mode 100644 index 0000000..aa35f21 --- /dev/null +++ b/kern.asm @@ -0,0 +1,6164 @@ + +obj/kern/kernel.dbg: file format elf32-i386 +obj/kern/kernel.dbg + + +Disassembly of section .text: + +c0200000 <_start>: +_start(): +c0200000: bc c0 89 20 c0 mov $0xc02089c0,%esp +c0200005: e8 a3 17 00 00 call c02017ad +c020000a: 0f 01 15 00 de 20 c0 lgdtl 0xc020de00 +c0200011: 66 b8 1b 00 mov $0x1b,%ax +c0200015: 8e e8 mov %eax,%gs +c0200017: 66 b8 28 00 mov $0x28,%ax +c020001b: 0f 00 d0 lldt %ax +c020001e: 66 b8 20 00 mov $0x20,%ax +c0200022: 0f 00 d8 ltr %ax +c0200025: 0f 01 1d 08 de 20 c0 lidtl 0xc020de08 +c020002c: ea f7 0a 20 c0 08 00 ljmp $0x8,$0xc0200af7 +c0200033: 66 90 xchg %ax,%ax +c0200035: 66 90 xchg %ax,%ax +c0200037: 66 90 xchg %ax,%ax +c0200039: 66 90 xchg %ax,%ax +c020003b: 66 90 xchg %ax,%ax +c020003d: 66 90 xchg %ax,%ax +c020003f: 90 nop + +c0200040 : +save(): +c0200040: 60 pusha +c0200041: 1e push %ds +c0200042: 06 push %es +c0200043: 0f a0 push %fs +c0200045: 0f a8 push %gs +c0200047: 66 8c d2 mov %ss,%dx +c020004a: 8e da mov %edx,%ds +c020004c: 8e c2 mov %edx,%es +c020004e: 89 e0 mov %esp,%eax +c0200050: f7 40 38 03 00 00 00 testl $0x3,0x38(%eax) +c0200057: 74 0c je c0200065 +c0200059: bc c0 89 20 c0 mov $0xc02089c0,%esp +c020005e: 50 push %eax +c020005f: e8 ab 0f 00 00 call c020100f +c0200064: 58 pop %eax + +c0200065 : +save.1(): +c0200065: 50 push %eax +c0200066: 68 6e 00 20 c0 push $0xc020006e +c020006b: ff 60 30 jmp *0x30(%eax) + +c020006e : +restart(): +c020006e: 5c pop %esp +c020006f: 0f a9 pop %gs +c0200071: 0f a1 pop %fs +c0200073: 07 pop %es +c0200074: 1f pop %ds +c0200075: 61 popa +c0200076: 83 c4 04 add $0x4,%esp +c0200079: cf iret + +c020007a : +int_syscall(): +c020007a: e8 c1 ff ff ff call c0200040 +c020007f: fb sti +c0200080: e8 f5 1c 00 00 call c0201d7a +c0200085: fa cli +c0200086: c3 ret +c0200087: 90 nop +c0200088: 90 nop +c0200089: 90 nop +c020008a: 90 nop +c020008b: 90 nop +c020008c: 90 nop +c020008d: 90 nop +c020008e: 90 nop +c020008f: 90 nop + +c0200090 : +hwint00(): +c0200090: e8 ab ff ff ff call c0200040 +c0200095: b0 20 mov $0x20,%al +c0200097: e6 20 out %al,$0x20 +c0200099: 6a 00 push $0x0 +c020009b: ff 15 60 74 20 c0 call *0xc0207460 +c02000a1: 59 pop %ecx +c02000a2: c3 ret +c02000a3: 90 nop +c02000a4: 90 nop +c02000a5: 90 nop +c02000a6: 90 nop +c02000a7: 90 nop +c02000a8: 90 nop +c02000a9: 90 nop +c02000aa: 90 nop +c02000ab: 90 nop +c02000ac: 90 nop +c02000ad: 90 nop +c02000ae: 90 nop +c02000af: 90 nop + +c02000b0 : +hwint01(): +c02000b0: e8 8b ff ff ff call c0200040 +c02000b5: e4 21 in $0x21,%al +c02000b7: 0c 02 or $0x2,%al +c02000b9: e6 21 out %al,$0x21 +c02000bb: b0 20 mov $0x20,%al +c02000bd: e6 20 out %al,$0x20 +c02000bf: fb sti +c02000c0: 6a 01 push $0x1 +c02000c2: ff 15 64 74 20 c0 call *0xc0207464 +c02000c8: 59 pop %ecx +c02000c9: fa cli +c02000ca: e4 21 in $0x21,%al +c02000cc: 24 fd and $0xfd,%al +c02000ce: e6 21 out %al,$0x21 +c02000d0: c3 ret +c02000d1: 90 nop +c02000d2: 90 nop +c02000d3: 90 nop +c02000d4: 90 nop +c02000d5: 90 nop +c02000d6: 90 nop +c02000d7: 90 nop +c02000d8: 90 nop +c02000d9: 90 nop +c02000da: 90 nop +c02000db: 90 nop +c02000dc: 90 nop +c02000dd: 90 nop +c02000de: 90 nop +c02000df: 90 nop + +c02000e0 : +hwint02(): +c02000e0: e8 5b ff ff ff call c0200040 +c02000e5: e4 21 in $0x21,%al +c02000e7: 0c 04 or $0x4,%al +c02000e9: e6 21 out %al,$0x21 +c02000eb: b0 20 mov $0x20,%al +c02000ed: e6 20 out %al,$0x20 +c02000ef: fb sti +c02000f0: 6a 02 push $0x2 +c02000f2: ff 15 68 74 20 c0 call *0xc0207468 +c02000f8: 59 pop %ecx +c02000f9: fa cli +c02000fa: e4 21 in $0x21,%al +c02000fc: 24 fb and $0xfb,%al +c02000fe: e6 21 out %al,$0x21 +c0200100: c3 ret +c0200101: 90 nop +c0200102: 90 nop +c0200103: 90 nop +c0200104: 90 nop +c0200105: 90 nop +c0200106: 90 nop +c0200107: 90 nop +c0200108: 90 nop +c0200109: 90 nop +c020010a: 90 nop +c020010b: 90 nop +c020010c: 90 nop +c020010d: 90 nop +c020010e: 90 nop +c020010f: 90 nop + +c0200110 : +hwint03(): +c0200110: e8 2b ff ff ff call c0200040 +c0200115: e4 21 in $0x21,%al +c0200117: 0c 08 or $0x8,%al +c0200119: e6 21 out %al,$0x21 +c020011b: b0 20 mov $0x20,%al +c020011d: e6 20 out %al,$0x20 +c020011f: fb sti +c0200120: 6a 03 push $0x3 +c0200122: ff 15 6c 74 20 c0 call *0xc020746c +c0200128: 59 pop %ecx +c0200129: fa cli +c020012a: e4 21 in $0x21,%al +c020012c: 24 f7 and $0xf7,%al +c020012e: e6 21 out %al,$0x21 +c0200130: c3 ret +c0200131: 90 nop +c0200132: 90 nop +c0200133: 90 nop +c0200134: 90 nop +c0200135: 90 nop +c0200136: 90 nop +c0200137: 90 nop +c0200138: 90 nop +c0200139: 90 nop +c020013a: 90 nop +c020013b: 90 nop +c020013c: 90 nop +c020013d: 90 nop +c020013e: 90 nop +c020013f: 90 nop + +c0200140 : +hwint04(): +c0200140: e8 fb fe ff ff call c0200040 +c0200145: e4 21 in $0x21,%al +c0200147: 0c 10 or $0x10,%al +c0200149: e6 21 out %al,$0x21 +c020014b: b0 20 mov $0x20,%al +c020014d: e6 20 out %al,$0x20 +c020014f: fb sti +c0200150: 6a 04 push $0x4 +c0200152: ff 15 70 74 20 c0 call *0xc0207470 +c0200158: 59 pop %ecx +c0200159: fa cli +c020015a: e4 21 in $0x21,%al +c020015c: 24 ef and $0xef,%al +c020015e: e6 21 out %al,$0x21 +c0200160: c3 ret +c0200161: 90 nop +c0200162: 90 nop +c0200163: 90 nop +c0200164: 90 nop +c0200165: 90 nop +c0200166: 90 nop +c0200167: 90 nop +c0200168: 90 nop +c0200169: 90 nop +c020016a: 90 nop +c020016b: 90 nop +c020016c: 90 nop +c020016d: 90 nop +c020016e: 90 nop +c020016f: 90 nop + +c0200170 : +hwint05(): +c0200170: e8 cb fe ff ff call c0200040 +c0200175: e4 21 in $0x21,%al +c0200177: 0c 20 or $0x20,%al +c0200179: e6 21 out %al,$0x21 +c020017b: b0 20 mov $0x20,%al +c020017d: e6 20 out %al,$0x20 +c020017f: fb sti +c0200180: 6a 05 push $0x5 +c0200182: ff 15 74 74 20 c0 call *0xc0207474 +c0200188: 59 pop %ecx +c0200189: fa cli +c020018a: e4 21 in $0x21,%al +c020018c: 24 df and $0xdf,%al +c020018e: e6 21 out %al,$0x21 +c0200190: c3 ret +c0200191: 90 nop +c0200192: 90 nop +c0200193: 90 nop +c0200194: 90 nop +c0200195: 90 nop +c0200196: 90 nop +c0200197: 90 nop +c0200198: 90 nop +c0200199: 90 nop +c020019a: 90 nop +c020019b: 90 nop +c020019c: 90 nop +c020019d: 90 nop +c020019e: 90 nop +c020019f: 90 nop + +c02001a0 : +hwint06(): +c02001a0: e8 9b fe ff ff call c0200040 +c02001a5: e4 21 in $0x21,%al +c02001a7: 0c 40 or $0x40,%al +c02001a9: e6 21 out %al,$0x21 +c02001ab: b0 20 mov $0x20,%al +c02001ad: e6 20 out %al,$0x20 +c02001af: fb sti +c02001b0: 6a 06 push $0x6 +c02001b2: ff 15 78 74 20 c0 call *0xc0207478 +c02001b8: 59 pop %ecx +c02001b9: fa cli +c02001ba: e4 21 in $0x21,%al +c02001bc: 24 bf and $0xbf,%al +c02001be: e6 21 out %al,$0x21 +c02001c0: c3 ret +c02001c1: 90 nop +c02001c2: 90 nop +c02001c3: 90 nop +c02001c4: 90 nop +c02001c5: 90 nop +c02001c6: 90 nop +c02001c7: 90 nop +c02001c8: 90 nop +c02001c9: 90 nop +c02001ca: 90 nop +c02001cb: 90 nop +c02001cc: 90 nop +c02001cd: 90 nop +c02001ce: 90 nop +c02001cf: 90 nop + +c02001d0 : +hwint07(): +c02001d0: e8 6b fe ff ff call c0200040 +c02001d5: e4 21 in $0x21,%al +c02001d7: 0c 80 or $0x80,%al +c02001d9: e6 21 out %al,$0x21 +c02001db: b0 20 mov $0x20,%al +c02001dd: e6 20 out %al,$0x20 +c02001df: fb sti +c02001e0: 6a 07 push $0x7 +c02001e2: ff 15 7c 74 20 c0 call *0xc020747c +c02001e8: 59 pop %ecx +c02001e9: fa cli +c02001ea: e4 21 in $0x21,%al +c02001ec: 24 7f and $0x7f,%al +c02001ee: e6 21 out %al,$0x21 +c02001f0: c3 ret +c02001f1: 90 nop +c02001f2: 90 nop +c02001f3: 90 nop +c02001f4: 90 nop +c02001f5: 90 nop +c02001f6: 90 nop +c02001f7: 90 nop +c02001f8: 90 nop +c02001f9: 90 nop +c02001fa: 90 nop +c02001fb: 90 nop +c02001fc: 90 nop +c02001fd: 90 nop +c02001fe: 90 nop +c02001ff: 90 nop + +c0200200 : +hwint08(): +c0200200: f4 hlt +c0200201: 90 nop +c0200202: 90 nop +c0200203: 90 nop +c0200204: 90 nop +c0200205: 90 nop +c0200206: 90 nop +c0200207: 90 nop +c0200208: 90 nop +c0200209: 90 nop +c020020a: 90 nop +c020020b: 90 nop +c020020c: 90 nop +c020020d: 90 nop +c020020e: 90 nop +c020020f: 90 nop + +c0200210 : +hwint09(): +c0200210: f4 hlt +c0200211: 90 nop +c0200212: 90 nop +c0200213: 90 nop +c0200214: 90 nop +c0200215: 90 nop +c0200216: 90 nop +c0200217: 90 nop +c0200218: 90 nop +c0200219: 90 nop +c020021a: 90 nop +c020021b: 90 nop +c020021c: 90 nop +c020021d: 90 nop +c020021e: 90 nop +c020021f: 90 nop + +c0200220 : +hwint10(): +c0200220: f4 hlt +c0200221: 90 nop +c0200222: 90 nop +c0200223: 90 nop +c0200224: 90 nop +c0200225: 90 nop +c0200226: 90 nop +c0200227: 90 nop +c0200228: 90 nop +c0200229: 90 nop +c020022a: 90 nop +c020022b: 90 nop +c020022c: 90 nop +c020022d: 90 nop +c020022e: 90 nop +c020022f: 90 nop + +c0200230 : +hwint11(): +c0200230: f4 hlt +c0200231: 90 nop +c0200232: 90 nop +c0200233: 90 nop +c0200234: 90 nop +c0200235: 90 nop +c0200236: 90 nop +c0200237: 90 nop +c0200238: 90 nop +c0200239: 90 nop +c020023a: 90 nop +c020023b: 90 nop +c020023c: 90 nop +c020023d: 90 nop +c020023e: 90 nop +c020023f: 90 nop + +c0200240 : +hwint12(): +c0200240: f4 hlt +c0200241: 90 nop +c0200242: 90 nop +c0200243: 90 nop +c0200244: 90 nop +c0200245: 90 nop +c0200246: 90 nop +c0200247: 90 nop +c0200248: 90 nop +c0200249: 90 nop +c020024a: 90 nop +c020024b: 90 nop +c020024c: 90 nop +c020024d: 90 nop +c020024e: 90 nop +c020024f: 90 nop + +c0200250 : +hwint13(): +c0200250: f4 hlt +c0200251: 90 nop +c0200252: 90 nop +c0200253: 90 nop +c0200254: 90 nop +c0200255: 90 nop +c0200256: 90 nop +c0200257: 90 nop +c0200258: 90 nop +c0200259: 90 nop +c020025a: 90 nop +c020025b: 90 nop +c020025c: 90 nop +c020025d: 90 nop +c020025e: 90 nop +c020025f: 90 nop + +c0200260 : +hwint14(): +c0200260: f4 hlt +c0200261: 90 nop +c0200262: 90 nop +c0200263: 90 nop +c0200264: 90 nop +c0200265: 90 nop +c0200266: 90 nop +c0200267: 90 nop +c0200268: 90 nop +c0200269: 90 nop +c020026a: 90 nop +c020026b: 90 nop +c020026c: 90 nop +c020026d: 90 nop +c020026e: 90 nop +c020026f: 90 nop + +c0200270 : +hwint15(): +c0200270: f4 hlt + +c0200271 : +divide_error(): +c0200271: 6a ff push $0xffffffff +c0200273: 6a 00 push $0x0 +c0200275: eb 4e jmp c02002c5 + +c0200277 : +single_step_exception(): +c0200277: 6a ff push $0xffffffff +c0200279: 6a 01 push $0x1 +c020027b: eb 48 jmp c02002c5 + +c020027d : +nmi(): +c020027d: 6a ff push $0xffffffff +c020027f: 6a 02 push $0x2 +c0200281: eb 42 jmp c02002c5 + +c0200283 : +breakpoint_exception(): +c0200283: 6a ff push $0xffffffff +c0200285: 6a 03 push $0x3 +c0200287: eb 3c jmp c02002c5 + +c0200289 : +overflow(): +c0200289: 6a ff push $0xffffffff +c020028b: 6a 04 push $0x4 +c020028d: eb 36 jmp c02002c5 + +c020028f : +bounds_check(): +c020028f: 6a ff push $0xffffffff +c0200291: 6a 05 push $0x5 +c0200293: eb 30 jmp c02002c5 + +c0200295 : +inval_opcode(): +c0200295: 6a ff push $0xffffffff +c0200297: 6a 06 push $0x6 +c0200299: eb 2a jmp c02002c5 + +c020029b : +copr_not_available(): +c020029b: 6a ff push $0xffffffff +c020029d: 6a 07 push $0x7 +c020029f: eb 24 jmp c02002c5 + +c02002a1 : +double_fault(): +c02002a1: 6a 08 push $0x8 +c02002a3: eb 20 jmp c02002c5 + +c02002a5 : +copr_seg_overrun(): +c02002a5: 6a ff push $0xffffffff +c02002a7: 6a 09 push $0x9 +c02002a9: eb 1a jmp c02002c5 + +c02002ab : +inval_tss(): +c02002ab: 6a 0a push $0xa +c02002ad: eb 16 jmp c02002c5 + +c02002af : +segment_not_present(): +c02002af: 6a 0b push $0xb +c02002b1: eb 12 jmp c02002c5 + +c02002b3 : +stack_exception(): +c02002b3: 6a 0c push $0xc +c02002b5: eb 0e jmp c02002c5 + +c02002b7 : +general_protection(): +c02002b7: 6a 0d push $0xd +c02002b9: eb 0a jmp c02002c5 + +c02002bb : +page_fault(): +c02002bb: 6a 0e push $0xe +c02002bd: eb 06 jmp c02002c5 + +c02002bf : +copr_error(): +c02002bf: 6a ff push $0xffffffff +c02002c1: 6a 10 push $0x10 +c02002c3: eb 00 jmp c02002c5 + +c02002c5 : +exception(): +c02002c5: e8 9d 18 00 00 call c0201b67 +c02002ca: 83 c4 08 add $0x8,%esp +c02002cd: f4 hlt +c02002ce: 66 90 xchg %ax,%ax + +c02002d0 : +switch_kern_context(): +c02002d0: 55 push %ebp +c02002d1: 89 e5 mov %esp,%ebp +c02002d3: 50 push %eax +c02002d4: 53 push %ebx +c02002d5: 8b 45 08 mov 0x8(%ebp),%eax +c02002d8: 8b 5d 0c mov 0xc(%ebp),%ebx +c02002db: e8 04 00 00 00 call c02002e4 +c02002e0: 5b pop %ebx +c02002e1: 58 pop %eax +c02002e2: 5d pop %ebp +c02002e3: c3 ret + +c02002e4 : +switch_kern_context.inner_switch(): +c02002e4: 89 60 20 mov %esp,0x20(%eax) +c02002e7: 8d 60 20 lea 0x20(%eax),%esp +c02002ea: 50 push %eax +c02002eb: 51 push %ecx +c02002ec: 52 push %edx +c02002ed: 53 push %ebx +c02002ee: 55 push %ebp +c02002ef: 56 push %esi +c02002f0: 57 push %edi +c02002f1: 9c pushf +c02002f2: 89 dc mov %ebx,%esp +c02002f4: 9d popf +c02002f5: 5f pop %edi +c02002f6: 5e pop %esi +c02002f7: 5d pop %ebp +c02002f8: 5b pop %ebx +c02002f9: 5a pop %edx +c02002fa: 59 pop %ecx +c02002fb: 58 pop %eax +c02002fc: 5c pop %esp +c02002fd: c3 ret + +c02002fe : +inb(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:8 +c02002fe: 55 push %ebp +c02002ff: 89 e5 mov %esp,%ebp +c0200301: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/inc/x86.h:10 +c0200304: 8b 45 08 mov 0x8(%ebp),%eax +c0200307: 89 c2 mov %eax,%edx +c0200309: ec in (%dx),%al +c020030a: 88 45 ff mov %al,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:11 +c020030d: 0f b6 45 ff movzbl -0x1(%ebp),%eax +/media/unix/Data/Code/2020301918-os/inc/x86.h:12 +c0200311: c9 leave +c0200312: c3 ret + +c0200313 : +insl(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:50 +c0200313: 55 push %ebp +c0200314: 89 e5 mov %esp,%ebp +c0200316: 57 push %edi +c0200317: 53 push %ebx +/media/unix/Data/Code/2020301918-os/inc/x86.h:51 +c0200318: 8b 55 08 mov 0x8(%ebp),%edx +c020031b: 8b 4d 0c mov 0xc(%ebp),%ecx +c020031e: 8b 45 10 mov 0x10(%ebp),%eax +c0200321: 89 cb mov %ecx,%ebx +c0200323: 89 df mov %ebx,%edi +c0200325: 89 c1 mov %eax,%ecx +c0200327: fc cld +c0200328: f2 6d repnz insl (%dx),%es:(%edi) +c020032a: 89 c8 mov %ecx,%eax +c020032c: 89 fb mov %edi,%ebx +c020032e: 89 5d 0c mov %ebx,0xc(%ebp) +c0200331: 89 45 10 mov %eax,0x10(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:55 +c0200334: 90 nop +c0200335: 5b pop %ebx +c0200336: 5f pop %edi +c0200337: 5d pop %ebp +c0200338: c3 ret + +c0200339 : +outb(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:59 +c0200339: 55 push %ebp +c020033a: 89 e5 mov %esp,%ebp +c020033c: 83 ec 04 sub $0x4,%esp +c020033f: 8b 45 0c mov 0xc(%ebp),%eax +c0200342: 88 45 fc mov %al,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:60 +c0200345: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c0200349: 8b 55 08 mov 0x8(%ebp),%edx +c020034c: ee out %al,(%dx) +/media/unix/Data/Code/2020301918-os/inc/x86.h:61 +c020034d: 90 nop +c020034e: c9 leave +c020034f: c3 ret + +c0200350 : +kern_read(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:19 +c0200350: 55 push %ebp +c0200351: 89 e5 mov %esp,%ebp +c0200353: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:20 +c0200356: 83 7d 08 00 cmpl $0x0,0x8(%ebp) +c020035a: 74 16 je c0200372 +/media/unix/Data/Code/2020301918-os/kern/fs.c:20 (discriminator 1) +c020035c: 68 00 40 20 c0 push $0xc0204000 +c0200361: 68 08 40 20 c0 push $0xc0204008 +c0200366: 6a 14 push $0x14 +c0200368: 68 1d 40 20 c0 push $0xc020401d +c020036d: e8 47 0e 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:22 +c0200372: 8b 45 0c mov 0xc(%ebp),%eax +c0200375: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:24 +c0200378: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp) +c020037f: eb 26 jmp c02003a7 +/media/unix/Data/Code/2020301918-os/kern/fs.c:25 +c0200381: e8 28 05 00 00 call c02008ae +c0200386: 88 45 ef mov %al,-0x11(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:26 +c0200389: 80 7d ef ff cmpb $0xff,-0x11(%ebp) +c020038d: 75 05 jne c0200394 +/media/unix/Data/Code/2020301918-os/kern/fs.c:27 +c020038f: 8b 45 f0 mov -0x10(%ebp),%eax +c0200392: eb 1e jmp c02003b2 +/media/unix/Data/Code/2020301918-os/kern/fs.c:28 (discriminator 2) +c0200394: 8b 45 f4 mov -0xc(%ebp),%eax +c0200397: 8d 50 01 lea 0x1(%eax),%edx +c020039a: 89 55 f4 mov %edx,-0xc(%ebp) +c020039d: 0f b6 55 ef movzbl -0x11(%ebp),%edx +c02003a1: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/kern/fs.c:24 (discriminator 2) +c02003a3: 83 45 f0 01 addl $0x1,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:24 (discriminator 1) +c02003a7: 8b 45 f0 mov -0x10(%ebp),%eax +c02003aa: 3b 45 10 cmp 0x10(%ebp),%eax +c02003ad: 72 d2 jb c0200381 +/media/unix/Data/Code/2020301918-os/kern/fs.c:31 +c02003af: 8b 45 10 mov 0x10(%ebp),%eax +/media/unix/Data/Code/2020301918-os/kern/fs.c:32 +c02003b2: c9 leave +c02003b3: c3 ret + +c02003b4 : +do_read(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:36 +c02003b4: 55 push %ebp +c02003b5: 89 e5 mov %esp,%ebp +c02003b7: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:37 +c02003ba: 81 7d 0c ff ff ff bf cmpl $0xbfffffff,0xc(%ebp) +c02003c1: 76 16 jbe c02003d9 +/media/unix/Data/Code/2020301918-os/kern/fs.c:37 (discriminator 1) +c02003c3: 68 27 40 20 c0 push $0xc0204027 +c02003c8: 68 08 40 20 c0 push $0xc0204008 +c02003cd: 6a 25 push $0x25 +c02003cf: 68 1d 40 20 c0 push $0xc020401d +c02003d4: e8 e0 0d 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:38 +c02003d9: 8b 55 0c mov 0xc(%ebp),%edx +c02003dc: 8b 45 10 mov 0x10(%ebp),%eax +c02003df: 01 d0 add %edx,%eax +c02003e1: 3d ff ff ff bf cmp $0xbfffffff,%eax +c02003e6: 76 16 jbe c02003fe +/media/unix/Data/Code/2020301918-os/kern/fs.c:38 (discriminator 1) +c02003e8: 68 40 40 20 c0 push $0xc0204040 +c02003ed: 68 08 40 20 c0 push $0xc0204008 +c02003f2: 6a 26 push $0x26 +c02003f4: 68 1d 40 20 c0 push $0xc020401d +c02003f9: e8 bb 0d 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:39 +c02003fe: 83 ec 04 sub $0x4,%esp +c0200401: ff 75 10 push 0x10(%ebp) +c0200404: ff 75 0c push 0xc(%ebp) +c0200407: ff 75 08 push 0x8(%ebp) +c020040a: e8 41 ff ff ff call c0200350 +c020040f: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:40 +c0200412: c9 leave +c0200413: c3 ret + +c0200414 : +kern_write(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:49 +c0200414: 55 push %ebp +c0200415: 89 e5 mov %esp,%ebp +c0200417: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:50 +c020041a: 83 7d 08 01 cmpl $0x1,0x8(%ebp) +c020041e: 74 16 je c0200436 +/media/unix/Data/Code/2020301918-os/kern/fs.c:50 (discriminator 1) +c0200420: 68 5f 40 20 c0 push $0xc020405f +c0200425: 68 08 40 20 c0 push $0xc0204008 +c020042a: 6a 32 push $0x32 +c020042c: 68 1d 40 20 c0 push $0xc020401d +c0200431: e8 83 0d 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:52 +c0200436: 8b 45 0c mov 0xc(%ebp),%eax +c0200439: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:53 +c020043c: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp) +c0200443: eb 24 jmp c0200469 +/media/unix/Data/Code/2020301918-os/kern/fs.c:54 (discriminator 3) +c0200445: 8b 45 f4 mov -0xc(%ebp),%eax +c0200448: 8d 50 01 lea 0x1(%eax),%edx +c020044b: 89 55 f4 mov %edx,-0xc(%ebp) +c020044e: 0f b6 00 movzbl (%eax),%eax +c0200451: 0f be c0 movsbl %al,%eax +c0200454: 83 ec 08 sub $0x8,%esp +c0200457: 50 push %eax +c0200458: 68 67 40 20 c0 push $0xc0204067 +c020045d: e8 75 26 00 00 call c0202ad7 +c0200462: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:53 (discriminator 3) +c0200465: 83 45 f0 01 addl $0x1,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:53 (discriminator 1) +c0200469: 8b 45 f0 mov -0x10(%ebp),%eax +c020046c: 3b 45 10 cmp 0x10(%ebp),%eax +c020046f: 72 d4 jb c0200445 +/media/unix/Data/Code/2020301918-os/kern/fs.c:56 +c0200471: 8b 45 10 mov 0x10(%ebp),%eax +/media/unix/Data/Code/2020301918-os/kern/fs.c:57 +c0200474: c9 leave +c0200475: c3 ret + +c0200476 : +do_write(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:61 +c0200476: 55 push %ebp +c0200477: 89 e5 mov %esp,%ebp +c0200479: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:62 +c020047c: 81 7d 0c ff ff ff bf cmpl $0xbfffffff,0xc(%ebp) +c0200483: 76 16 jbe c020049b +/media/unix/Data/Code/2020301918-os/kern/fs.c:62 (discriminator 1) +c0200485: 68 27 40 20 c0 push $0xc0204027 +c020048a: 68 08 40 20 c0 push $0xc0204008 +c020048f: 6a 3e push $0x3e +c0200491: 68 1d 40 20 c0 push $0xc020401d +c0200496: e8 1e 0d 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:63 +c020049b: 8b 55 0c mov 0xc(%ebp),%edx +c020049e: 8b 45 10 mov 0x10(%ebp),%eax +c02004a1: 01 d0 add %edx,%eax +c02004a3: 3d ff ff ff bf cmp $0xbfffffff,%eax +c02004a8: 76 16 jbe c02004c0 +/media/unix/Data/Code/2020301918-os/kern/fs.c:63 (discriminator 1) +c02004aa: 68 40 40 20 c0 push $0xc0204040 +c02004af: 68 08 40 20 c0 push $0xc0204008 +c02004b4: 6a 3f push $0x3f +c02004b6: 68 1d 40 20 c0 push $0xc020401d +c02004bb: e8 f9 0c 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:64 +c02004c0: 83 ec 04 sub $0x4,%esp +c02004c3: ff 75 10 push 0x10(%ebp) +c02004c6: ff 75 0c push 0xc(%ebp) +c02004c9: ff 75 08 push 0x8(%ebp) +c02004cc: e8 43 ff ff ff call c0200414 +c02004d1: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:65 +c02004d4: c9 leave +c02004d5: c3 ret + +c02004d6 : +waitdisk(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:71 +c02004d6: 55 push %ebp +c02004d7: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/fs.c:73 +c02004d9: 90 nop +/media/unix/Data/Code/2020301918-os/kern/fs.c:73 (discriminator 1) +c02004da: 68 f7 01 00 00 push $0x1f7 +c02004df: e8 1a fe ff ff call c02002fe +c02004e4: 83 c4 04 add $0x4,%esp +c02004e7: 0f b6 c0 movzbl %al,%eax +c02004ea: 25 c0 00 00 00 and $0xc0,%eax +c02004ef: 83 f8 40 cmp $0x40,%eax +c02004f2: 75 e6 jne c02004da +/media/unix/Data/Code/2020301918-os/kern/fs.c:75 +c02004f4: 90 nop +c02004f5: 90 nop +c02004f6: c9 leave +c02004f7: c3 ret + +c02004f8 : +readsect(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:79 +c02004f8: 55 push %ebp +c02004f9: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/fs.c:81 +c02004fb: e8 d6 ff ff ff call c02004d6 +/media/unix/Data/Code/2020301918-os/kern/fs.c:83 +c0200500: 6a 01 push $0x1 +c0200502: 68 f2 01 00 00 push $0x1f2 +c0200507: e8 2d fe ff ff call c0200339 +c020050c: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:84 +c020050f: 8b 45 0c mov 0xc(%ebp),%eax +c0200512: 0f b6 c0 movzbl %al,%eax +c0200515: 50 push %eax +c0200516: 68 f3 01 00 00 push $0x1f3 +c020051b: e8 19 fe ff ff call c0200339 +c0200520: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:85 +c0200523: 8b 45 0c mov 0xc(%ebp),%eax +c0200526: c1 e8 08 shr $0x8,%eax +c0200529: 0f b6 c0 movzbl %al,%eax +c020052c: 50 push %eax +c020052d: 68 f4 01 00 00 push $0x1f4 +c0200532: e8 02 fe ff ff call c0200339 +c0200537: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:86 +c020053a: 8b 45 0c mov 0xc(%ebp),%eax +c020053d: c1 e8 10 shr $0x10,%eax +c0200540: 0f b6 c0 movzbl %al,%eax +c0200543: 50 push %eax +c0200544: 68 f5 01 00 00 push $0x1f5 +c0200549: e8 eb fd ff ff call c0200339 +c020054e: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:87 +c0200551: 8b 45 0c mov 0xc(%ebp),%eax +c0200554: c1 e8 18 shr $0x18,%eax +c0200557: 83 c8 e0 or $0xffffffe0,%eax +c020055a: 0f b6 c0 movzbl %al,%eax +c020055d: 50 push %eax +c020055e: 68 f6 01 00 00 push $0x1f6 +c0200563: e8 d1 fd ff ff call c0200339 +c0200568: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:88 +c020056b: 6a 20 push $0x20 +c020056d: 68 f7 01 00 00 push $0x1f7 +c0200572: e8 c2 fd ff ff call c0200339 +c0200577: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:91 +c020057a: e8 57 ff ff ff call c02004d6 +/media/unix/Data/Code/2020301918-os/kern/fs.c:94 +c020057f: 68 80 00 00 00 push $0x80 +c0200584: ff 75 08 push 0x8(%ebp) +c0200587: 68 f0 01 00 00 push $0x1f0 +c020058c: e8 82 fd ff ff call c0200313 +c0200591: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:95 +c0200594: 90 nop +c0200595: c9 leave +c0200596: c3 ret + +c0200597 : +get_next_clus(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:107 +c0200597: 55 push %ebp +c0200598: 89 e5 mov %esp,%ebp +c020059a: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:108 +c020059d: 8b 45 08 mov 0x8(%ebp),%eax +c02005a0: c1 e0 02 shl $0x2,%eax +c02005a3: c1 e8 09 shr $0x9,%eax +c02005a6: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:109 +c02005a9: 8b 45 08 mov 0x8(%ebp),%eax +c02005ac: c1 e0 02 shl $0x2,%eax +c02005af: 25 fc 01 00 00 and $0x1fc,%eax +c02005b4: 89 45 f8 mov %eax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:112 +c02005b7: 8b 15 c0 89 20 c0 mov 0xc02089c0,%edx +c02005bd: 8b 45 fc mov -0x4(%ebp),%eax +c02005c0: 01 c2 add %eax,%edx +c02005c2: a1 c8 89 20 c0 mov 0xc02089c8,%eax +c02005c7: 39 c2 cmp %eax,%edx +c02005c9: 74 29 je c02005f4 +/media/unix/Data/Code/2020301918-os/kern/fs.c:113 +c02005cb: 8b 15 c0 89 20 c0 mov 0xc02089c0,%edx +c02005d1: 8b 45 fc mov -0x4(%ebp),%eax +c02005d4: 01 d0 add %edx,%eax +c02005d6: 50 push %eax +c02005d7: 68 e0 8b 20 c0 push $0xc0208be0 +c02005dc: e8 17 ff ff ff call c02004f8 +c02005e1: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:114 +c02005e4: 8b 15 c0 89 20 c0 mov 0xc02089c0,%edx +c02005ea: 8b 45 fc mov -0x4(%ebp),%eax +c02005ed: 01 d0 add %edx,%eax +c02005ef: a3 c8 89 20 c0 mov %eax,0xc02089c8 +/media/unix/Data/Code/2020301918-os/kern/fs.c:116 +c02005f4: 8b 45 f8 mov -0x8(%ebp),%eax +c02005f7: c1 e8 02 shr $0x2,%eax +c02005fa: 8b 04 85 e0 8b 20 c0 mov -0x3fdf7420(,%eax,4),%eax +/media/unix/Data/Code/2020301918-os/kern/fs.c:117 +c0200601: c9 leave +c0200602: c3 ret + +c0200603 : +read_data_sec(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:125 +c0200603: 55 push %ebp +c0200604: 89 e5 mov %esp,%ebp +c0200606: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:126 +c0200609: 83 6d 0c 02 subl $0x2,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:127 +c020060d: 0f b6 05 ed 89 20 c0 movzbl 0xc02089ed,%eax +c0200614: 0f b6 c0 movzbl %al,%eax +c0200617: 8b 55 0c mov 0xc(%ebp),%edx +c020061a: 0f af c2 imul %edx,%eax +c020061d: 89 45 0c mov %eax,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:128 +c0200620: a1 c4 89 20 c0 mov 0xc02089c4,%eax +c0200625: 01 45 0c add %eax,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:130 +c0200628: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp) +c020062f: eb 1f jmp c0200650 +/media/unix/Data/Code/2020301918-os/kern/fs.c:131 (discriminator 3) +c0200631: 8b 55 fc mov -0x4(%ebp),%edx +c0200634: 8b 45 0c mov 0xc(%ebp),%eax +c0200637: 01 d0 add %edx,%eax +c0200639: 50 push %eax +c020063a: ff 75 08 push 0x8(%ebp) +c020063d: e8 b6 fe ff ff call c02004f8 +c0200642: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:130 (discriminator 3) +c0200645: 83 45 fc 01 addl $0x1,-0x4(%ebp) +c0200649: 81 45 08 00 02 00 00 addl $0x200,0x8(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:130 (discriminator 1) +c0200650: 0f b6 05 ed 89 20 c0 movzbl 0xc02089ed,%eax +c0200657: 0f b6 c0 movzbl %al,%eax +c020065a: 39 45 fc cmp %eax,-0x4(%ebp) +c020065d: 7c d2 jl c0200631 +/media/unix/Data/Code/2020301918-os/kern/fs.c:132 +c020065f: 8b 45 08 mov 0x8(%ebp),%eax +/media/unix/Data/Code/2020301918-os/kern/fs.c:133 +c0200662: c9 leave +c0200663: c3 ret + +c0200664 : +read_file(): +/media/unix/Data/Code/2020301918-os/kern/fs.c:142 +c0200664: 55 push %ebp +c0200665: 89 e5 mov %esp,%ebp +c0200667: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:143 +c020066a: 83 ec 0c sub $0xc,%esp +c020066d: ff 75 08 push 0x8(%ebp) +c0200670: e8 12 2a 00 00 call c0203087 +c0200675: 83 c4 10 add $0x10,%esp +c0200678: 83 f8 0b cmp $0xb,%eax +c020067b: 74 19 je c0200696 +/media/unix/Data/Code/2020301918-os/kern/fs.c:143 (discriminator 1) +c020067d: 68 6a 40 20 c0 push $0xc020406a +c0200682: 68 08 40 20 c0 push $0xc0204008 +c0200687: 68 8f 00 00 00 push $0x8f +c020068c: 68 1d 40 20 c0 push $0xc020401d +c0200691: e8 23 0b 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:145 +c0200696: 83 ec 08 sub $0x8,%esp +c0200699: 6a 00 push $0x0 +c020069b: 68 e0 89 20 c0 push $0xc02089e0 +c02006a0: e8 53 fe ff ff call c02004f8 +c02006a5: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/fs.c:147 +c02006a8: 0f b7 05 ee 89 20 c0 movzwl 0xc02089ee,%eax +c02006af: 0f b7 c0 movzwl %ax,%eax +c02006b2: a3 c0 89 20 c0 mov %eax,0xc02089c0 +/media/unix/Data/Code/2020301918-os/kern/fs.c:148 +c02006b7: 8b 15 04 8a 20 c0 mov 0xc0208a04,%edx +c02006bd: 0f b6 05 f0 89 20 c0 movzbl 0xc02089f0,%eax +c02006c4: 0f b6 c0 movzbl %al,%eax +c02006c7: 0f af d0 imul %eax,%edx +c02006ca: a1 c0 89 20 c0 mov 0xc02089c0,%eax +c02006cf: 01 d0 add %edx,%eax +c02006d1: a3 c4 89 20 c0 mov %eax,0xc02089c4 +/media/unix/Data/Code/2020301918-os/kern/fs.c:150 +c02006d6: a1 0c 8a 20 c0 mov 0xc0208a0c,%eax +c02006db: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:151 +c02006de: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:153 +c02006e5: 0f b7 05 eb 89 20 c0 movzwl 0xc02089eb,%eax +c02006ec: 66 3d 00 02 cmp $0x200,%ax +c02006f0: 75 0f jne c0200701 +/media/unix/Data/Code/2020301918-os/kern/fs.c:153 (discriminator 2) +c02006f2: 0f b6 05 ed 89 20 c0 movzbl 0xc02089ed,%eax +c02006f9: 3c 08 cmp $0x8,%al +c02006fb: 0f 84 b9 00 00 00 je c02007ba +/media/unix/Data/Code/2020301918-os/kern/fs.c:153 (discriminator 3) +c0200701: 68 84 40 20 c0 push $0xc0204084 +c0200706: 68 08 40 20 c0 push $0xc0204008 +c020070b: 68 99 00 00 00 push $0x99 +c0200710: 68 1d 40 20 c0 push $0xc020401d +c0200715: e8 9f 0a 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:158 +c020071a: 83 ec 08 sub $0x8,%esp +c020071d: ff 75 f4 push -0xc(%ebp) +c0200720: 68 e0 8d 20 c0 push $0xc0208de0 +c0200725: e8 d9 fe ff ff call c0200603 +c020072a: 83 c4 10 add $0x10,%esp +c020072d: 89 45 e8 mov %eax,-0x18(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:159 +c0200730: c7 45 ec e0 8d 20 c0 movl $0xc0208de0,-0x14(%ebp) +c0200737: eb 62 jmp c020079b +/media/unix/Data/Code/2020301918-os/kern/fs.c:161 +c0200739: 8b 45 ec mov -0x14(%ebp),%eax +c020073c: 83 ec 04 sub $0x4,%esp +c020073f: 6a 0b push $0xb +c0200741: ff 75 08 push 0x8(%ebp) +c0200744: 50 push %eax +c0200745: e8 74 2a 00 00 call c02031be +c020074a: 83 c4 10 add $0x10,%esp +c020074d: 85 c0 test %eax,%eax +c020074f: 75 46 jne c0200797 +/media/unix/Data/Code/2020301918-os/kern/fs.c:162 +c0200751: 8b 45 ec mov -0x14(%ebp),%eax +c0200754: 8b 40 1c mov 0x1c(%eax),%eax +c0200757: 3d 00 00 00 01 cmp $0x1000000,%eax +c020075c: 76 19 jbe c0200777 +/media/unix/Data/Code/2020301918-os/kern/fs.c:162 (discriminator 1) +c020075e: 68 be 40 20 c0 push $0xc02040be +c0200763: 68 08 40 20 c0 push $0xc0204008 +c0200768: 68 a2 00 00 00 push $0xa2 +c020076d: 68 1d 40 20 c0 push $0xc020401d +c0200772: e8 42 0a 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:163 +c0200777: 8b 45 ec mov -0x14(%ebp),%eax +c020077a: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020077e: 0f b7 c0 movzwl %ax,%eax +c0200781: c1 e0 10 shl $0x10,%eax +c0200784: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/fs.c:164 +c0200786: 8b 45 ec mov -0x14(%ebp),%eax +c0200789: 0f b7 40 1a movzwl 0x1a(%eax),%eax +c020078d: 0f b7 c0 movzwl %ax,%eax +/media/unix/Data/Code/2020301918-os/kern/fs.c:163 +c0200790: 09 d0 or %edx,%eax +c0200792: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:165 +c0200795: eb 0c jmp c02007a3 +/media/unix/Data/Code/2020301918-os/kern/fs.c:160 +c0200797: 83 45 ec 20 addl $0x20,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:160 (discriminator 1) +c020079b: 8b 45 ec mov -0x14(%ebp),%eax +c020079e: 3b 45 e8 cmp -0x18(%ebp),%eax +c02007a1: 72 96 jb c0200739 +/media/unix/Data/Code/2020301918-os/kern/fs.c:168 +c02007a3: 83 7d f0 00 cmpl $0x0,-0x10(%ebp) +c02007a7: 75 20 jne c02007c9 +/media/unix/Data/Code/2020301918-os/kern/fs.c:170 +c02007a9: 83 ec 0c sub $0xc,%esp +c02007ac: ff 75 f4 push -0xc(%ebp) +c02007af: e8 e3 fd ff ff call c0200597 +c02007b4: 83 c4 10 add $0x10,%esp +c02007b7: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:157 +c02007ba: 81 7d f4 f7 ff ff 0f cmpl $0xffffff7,-0xc(%ebp) +c02007c1: 0f 86 53 ff ff ff jbe c020071a +c02007c7: eb 01 jmp c02007ca +/media/unix/Data/Code/2020301918-os/kern/fs.c:169 +c02007c9: 90 nop +/media/unix/Data/Code/2020301918-os/kern/fs.c:173 +c02007ca: 83 7d f0 00 cmpl $0x0,-0x10(%ebp) +c02007ce: 75 3c jne c020080c +/media/unix/Data/Code/2020301918-os/kern/fs.c:174 +c02007d0: ff 75 08 push 0x8(%ebp) +c02007d3: 68 dc 40 20 c0 push $0xc02040dc +c02007d8: 68 ae 00 00 00 push $0xae +c02007dd: 68 1d 40 20 c0 push $0xc020401d +c02007e2: e8 d2 09 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/fs.c:177 +c02007e7: 83 ec 08 sub $0x8,%esp +c02007ea: ff 75 f0 push -0x10(%ebp) +c02007ed: ff 75 0c push 0xc(%ebp) +c02007f0: e8 0e fe ff ff call c0200603 +c02007f5: 83 c4 10 add $0x10,%esp +c02007f8: 89 45 0c mov %eax,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:178 +c02007fb: 83 ec 0c sub $0xc,%esp +c02007fe: ff 75 f0 push -0x10(%ebp) +c0200801: e8 91 fd ff ff call c0200597 +c0200806: 83 c4 10 add $0x10,%esp +c0200809: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/fs.c:176 +c020080c: 81 7d f0 f7 ff ff 0f cmpl $0xffffff7,-0x10(%ebp) +c0200813: 76 d2 jbe c02007e7 +/media/unix/Data/Code/2020301918-os/kern/fs.c:180 +c0200815: 90 nop +c0200816: 90 nop +c0200817: c9 leave +c0200818: c3 ret + +c0200819 : +xchg(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:200 +c0200819: 55 push %ebp +c020081a: 89 e5 mov %esp,%ebp +c020081c: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/inc/x86.h:204 +c020081f: 8b 55 08 mov 0x8(%ebp),%edx +c0200822: 8b 45 0c mov 0xc(%ebp),%eax +c0200825: 8b 4d 08 mov 0x8(%ebp),%ecx +c0200828: f0 87 02 lock xchg %eax,(%edx) +c020082b: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:208 +c020082e: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/inc/x86.h:209 +c0200831: c9 leave +c0200832: c3 ret + +c0200833 : +add_keyboard_buf(): +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:27 +c0200833: 55 push %ebp +c0200834: 89 e5 mov %esp,%ebp +c0200836: 83 ec 04 sub $0x4,%esp +c0200839: 8b 45 08 mov 0x8(%ebp),%eax +c020083c: 88 45 fc mov %al,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:29 +c020083f: 90 nop +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:29 (discriminator 1) +c0200840: 6a 01 push $0x1 +c0200842: 68 00 70 20 c0 push $0xc0207000 +c0200847: e8 cd ff ff ff call c0200819 +c020084c: 83 c4 08 add $0x8,%esp +c020084f: 83 f8 01 cmp $0x1,%eax +c0200852: 74 ec je c0200840 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:31 +c0200854: a1 0c 70 20 c0 mov 0xc020700c,%eax +c0200859: 3d 00 04 00 00 cmp $0x400,%eax +c020085e: 74 3b je c020089b +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:34 +c0200860: a1 08 70 20 c0 mov 0xc0207008,%eax +c0200865: 8d 50 01 lea 0x1(%eax),%edx +c0200868: 89 15 08 70 20 c0 mov %edx,0xc0207008 +c020086e: 0f b6 55 fc movzbl -0x4(%ebp),%edx +c0200872: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:35 +c0200874: a1 08 70 20 c0 mov 0xc0207008,%eax +c0200879: ba 10 74 20 c0 mov $0xc0207410,%edx +c020087e: 39 d0 cmp %edx,%eax +c0200880: 75 0a jne c020088c +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:36 +c0200882: c7 05 08 70 20 c0 10 movl $0xc0207010,0xc0207008 +c0200889: 70 20 c0 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:37 +c020088c: a1 0c 70 20 c0 mov 0xc020700c,%eax +c0200891: 83 c0 01 add $0x1,%eax +c0200894: a3 0c 70 20 c0 mov %eax,0xc020700c +c0200899: eb 01 jmp c020089c +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:32 +c020089b: 90 nop +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:40 +c020089c: 6a 00 push $0x0 +c020089e: 68 00 70 20 c0 push $0xc0207000 +c02008a3: e8 71 ff ff ff call c0200819 +c02008a8: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:41 +c02008ab: 90 nop +c02008ac: c9 leave +c02008ad: c3 ret + +c02008ae : +read_keyboard_buf(): +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:49 +c02008ae: 55 push %ebp +c02008af: 89 e5 mov %esp,%ebp +c02008b1: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:53 +c02008b4: 90 nop +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:53 (discriminator 1) +c02008b5: 6a 01 push $0x1 +c02008b7: 68 00 70 20 c0 push $0xc0207000 +c02008bc: e8 58 ff ff ff call c0200819 +c02008c1: 83 c4 08 add $0x8,%esp +c02008c4: 83 f8 01 cmp $0x1,%eax +c02008c7: 74 ec je c02008b5 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:55 +c02008c9: a1 0c 70 20 c0 mov 0xc020700c,%eax +c02008ce: 85 c0 test %eax,%eax +c02008d0: 75 06 jne c02008d8 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:56 +c02008d2: c6 45 ff ff movb $0xff,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:57 +c02008d6: eb 39 jmp c0200911 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:60 +c02008d8: a1 04 70 20 c0 mov 0xc0207004,%eax +c02008dd: 8d 50 01 lea 0x1(%eax),%edx +c02008e0: 89 15 04 70 20 c0 mov %edx,0xc0207004 +c02008e6: 0f b6 00 movzbl (%eax),%eax +c02008e9: 88 45 ff mov %al,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:61 +c02008ec: a1 04 70 20 c0 mov 0xc0207004,%eax +c02008f1: ba 10 74 20 c0 mov $0xc0207410,%edx +c02008f6: 39 d0 cmp %edx,%eax +c02008f8: 75 0a jne c0200904 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:62 +c02008fa: c7 05 04 70 20 c0 10 movl $0xc0207010,0xc0207004 +c0200901: 70 20 c0 +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:63 +c0200904: a1 0c 70 20 c0 mov 0xc020700c,%eax +c0200909: 83 e8 01 sub $0x1,%eax +c020090c: a3 0c 70 20 c0 mov %eax,0xc020700c +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:66 +c0200911: 6a 00 push $0x0 +c0200913: 68 00 70 20 c0 push $0xc0207000 +c0200918: e8 fc fe ff ff call c0200819 +c020091d: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:67 +c0200920: 0f b6 45 ff movzbl -0x1(%ebp),%eax +/media/unix/Data/Code/2020301918-os/kern/keyboard.c:68 +c0200924: c9 leave +c0200925: c3 ret + +c0200926 : +phy_malloc_4k(): +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:15 +c0200926: 55 push %ebp +c0200927: 89 e5 mov %esp,%ebp +c0200929: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:16 +c020092c: a1 10 74 20 c0 mov 0xc0207410,%eax +c0200931: 3d ff ff ff 07 cmp $0x7ffffff,%eax +c0200936: 76 16 jbe c020094e +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:16 (discriminator 1) +c0200938: 68 00 43 20 c0 push $0xc0204300 +c020093d: 68 17 43 20 c0 push $0xc0204317 +c0200942: 6a 10 push $0x10 +c0200944: 68 2c 43 20 c0 push $0xc020432c +c0200949: e8 6b 08 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:18 +c020094e: a1 10 74 20 c0 mov 0xc0207410,%eax +c0200953: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:19 +c0200956: a1 10 74 20 c0 mov 0xc0207410,%eax +c020095b: 05 00 10 00 00 add $0x1000,%eax +c0200960: a3 10 74 20 c0 mov %eax,0xc0207410 +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:21 +c0200965: 8b 45 f4 mov -0xc(%ebp),%eax +/media/unix/Data/Code/2020301918-os/kern/kmalloc.c:22 +c0200968: c9 leave +c0200969: c3 ret + +c020096a : +lcr3(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:126 +c020096a: 55 push %ebp +c020096b: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/inc/x86.h:127 +c020096d: 8b 45 08 mov 0x8(%ebp),%eax +c0200970: 0f 22 d8 mov %eax,%cr3 +/media/unix/Data/Code/2020301918-os/inc/x86.h:128 +c0200973: 90 nop +c0200974: 5d pop %ebp +c0200975: c3 ret + +c0200976 : +init_segment(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:107 +c0200976: 55 push %ebp +c0200977: 89 e5 mov %esp,%ebp +c0200979: 83 ec 04 sub $0x4,%esp +c020097c: 8b 45 14 mov 0x14(%ebp),%eax +c020097f: 66 89 45 fc mov %ax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:108 +c0200983: 8b 45 10 mov 0x10(%ebp),%eax +c0200986: 89 c2 mov %eax,%edx +c0200988: 8b 45 08 mov 0x8(%ebp),%eax +c020098b: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:109 +c020098e: 8b 45 0c mov 0xc(%ebp),%eax +c0200991: 89 c2 mov %eax,%edx +c0200993: 8b 45 08 mov 0x8(%ebp),%eax +c0200996: 66 89 50 02 mov %dx,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:110 +c020099a: 8b 45 0c mov 0xc(%ebp),%eax +c020099d: c1 e8 10 shr $0x10,%eax +c02009a0: 89 c2 mov %eax,%edx +c02009a2: 8b 45 08 mov 0x8(%ebp),%eax +c02009a5: 88 50 04 mov %dl,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:111 +c02009a8: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c02009ac: 89 c2 mov %eax,%edx +c02009ae: 8b 45 08 mov 0x8(%ebp),%eax +c02009b1: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c02009b4: 8b 45 10 mov 0x10(%ebp),%eax +c02009b7: c1 e8 10 shr $0x10,%eax +c02009ba: 83 e0 0f and $0xf,%eax +c02009bd: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:113 +c02009bf: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c02009c3: 66 c1 e8 08 shr $0x8,%ax +c02009c7: 83 e0 f0 and $0xfffffff0,%eax +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c02009ca: 09 c2 or %eax,%edx +c02009cc: 8b 45 08 mov 0x8(%ebp),%eax +c02009cf: 88 50 06 mov %dl,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:114 +c02009d2: 8b 45 0c mov 0xc(%ebp),%eax +c02009d5: c1 e8 18 shr $0x18,%eax +c02009d8: 89 c2 mov %eax,%edx +c02009da: 8b 45 08 mov 0x8(%ebp),%eax +c02009dd: 88 50 07 mov %dl,0x7(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:115 +c02009e0: 90 nop +c02009e1: c9 leave +c02009e2: c3 ret + +c02009e3 : +init_gate(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:119 +c02009e3: 55 push %ebp +c02009e4: 89 e5 mov %esp,%ebp +c02009e6: 83 ec 08 sub $0x8,%esp +c02009e9: 8b 55 0c mov 0xc(%ebp),%edx +c02009ec: 8b 45 14 mov 0x14(%ebp),%eax +c02009ef: 88 55 fc mov %dl,-0x4(%ebp) +c02009f2: 88 45 f8 mov %al,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:120 +c02009f5: 8b 45 10 mov 0x10(%ebp),%eax +c02009f8: 89 c2 mov %eax,%edx +c02009fa: 8b 45 08 mov 0x8(%ebp),%eax +c02009fd: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:121 +c0200a00: 8b 45 08 mov 0x8(%ebp),%eax +c0200a03: 66 c7 40 02 08 00 movw $0x8,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:122 +c0200a09: 8b 45 08 mov 0x8(%ebp),%eax +c0200a0c: c6 40 04 00 movb $0x0,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:123 +c0200a10: 0f b6 45 f8 movzbl -0x8(%ebp),%eax +c0200a14: c1 e0 05 shl $0x5,%eax +c0200a17: 89 c2 mov %eax,%edx +c0200a19: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c0200a1d: 09 d0 or %edx,%eax +c0200a1f: 89 c2 mov %eax,%edx +c0200a21: 8b 45 08 mov 0x8(%ebp),%eax +c0200a24: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:124 +c0200a27: 8b 45 10 mov 0x10(%ebp),%eax +c0200a2a: c1 e8 10 shr $0x10,%eax +c0200a2d: 89 c2 mov %eax,%edx +c0200a2f: 8b 45 08 mov 0x8(%ebp),%eax +c0200a32: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:125 +c0200a36: 90 nop +c0200a37: c9 leave +c0200a38: c3 ret + +c0200a39 : +init_segment_regs(): +/media/unix/Data/Code/2020301918-os/kern/main.c:26 +c0200a39: 55 push %ebp +c0200a3a: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/main.c:27 +c0200a3c: 8b 45 08 mov 0x8(%ebp),%eax +c0200a3f: c7 40 38 0f 00 00 00 movl $0xf,0x38(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:29 +c0200a46: 8b 45 08 mov 0x8(%ebp),%eax +c0200a49: c7 40 0c 17 00 00 00 movl $0x17,0xc(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:31 +c0200a50: 8b 45 08 mov 0x8(%ebp),%eax +c0200a53: c7 40 08 17 00 00 00 movl $0x17,0x8(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:33 +c0200a5a: 8b 45 08 mov 0x8(%ebp),%eax +c0200a5d: c7 40 04 17 00 00 00 movl $0x17,0x4(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:35 +c0200a64: 8b 45 08 mov 0x8(%ebp),%eax +c0200a67: c7 40 44 17 00 00 00 movl $0x17,0x44(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:37 +c0200a6e: 8b 45 08 mov 0x8(%ebp),%eax +c0200a71: c7 00 1b 00 00 00 movl $0x1b,(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:39 +c0200a77: 90 nop +c0200a78: 5d pop %ebp +c0200a79: c3 ret + +c0200a7a : +lml_map(): +/media/unix/Data/Code/2020301918-os/kern/main.c:42 +c0200a7a: 55 push %ebp +c0200a7b: 89 e5 mov %esp,%ebp +c0200a7d: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:43 +c0200a80: 8b 45 08 mov 0x8(%ebp),%eax +c0200a83: 2d 00 00 00 40 sub $0x40000000,%eax +c0200a88: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:44 +c0200a8b: 81 45 f4 00 0c 00 00 addl $0xc00,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:46 +c0200a92: 8b 45 0c mov 0xc(%ebp),%eax +c0200a95: c1 e8 16 shr $0x16,%eax +c0200a98: c1 e0 02 shl $0x2,%eax +c0200a9b: 01 45 f4 add %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:47 +c0200a9e: 8b 45 f4 mov -0xc(%ebp),%eax +c0200aa1: 8b 00 mov (%eax),%eax +c0200aa3: 83 e0 01 and $0x1,%eax +c0200aa6: 85 c0 test %eax,%eax +c0200aa8: 75 12 jne c0200abc +/media/unix/Data/Code/2020301918-os/kern/main.c:49 +c0200aaa: e8 77 fe ff ff call c0200926 +c0200aaf: 0b 45 14 or 0x14(%ebp),%eax +c0200ab2: 83 c8 01 or $0x1,%eax +c0200ab5: 89 c2 mov %eax,%edx +c0200ab7: 8b 45 f4 mov -0xc(%ebp),%eax +c0200aba: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:51 +c0200abc: 8b 45 f4 mov -0xc(%ebp),%eax +c0200abf: 8b 00 mov (%eax),%eax +c0200ac1: 25 00 f0 ff ff and $0xfffff000,%eax +c0200ac6: 2d 00 00 00 40 sub $0x40000000,%eax +c0200acb: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:53 +c0200ace: 8b 45 0c mov 0xc(%ebp),%eax +c0200ad1: c1 e8 0c shr $0xc,%eax +c0200ad4: 25 ff 03 00 00 and $0x3ff,%eax +c0200ad9: c1 e0 02 shl $0x2,%eax +c0200adc: 01 45 f0 add %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:55 +c0200adf: 8b 45 10 mov 0x10(%ebp),%eax +c0200ae2: 25 00 f0 ff ff and $0xfffff000,%eax +c0200ae7: 0b 45 14 or 0x14(%ebp),%eax +c0200aea: 83 c8 01 or $0x1,%eax +c0200aed: 89 c2 mov %eax,%edx +c0200aef: 8b 45 f0 mov -0x10(%ebp),%eax +c0200af2: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:56 +c0200af4: 90 nop +c0200af5: c9 leave +c0200af6: c3 ret + +c0200af7 : +kernel_main(): +/media/unix/Data/Code/2020301918-os/kern/main.c:63 +c0200af7: 55 push %ebp +c0200af8: 89 e5 mov %esp,%ebp +c0200afa: 53 push %ebx +c0200afb: 83 ec 74 sub $0x74,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:64 +c0200afe: 83 ec 0c sub $0xc,%esp +c0200b01: 68 3b 43 20 c0 push $0xc020433b +c0200b06: e8 cc 1f 00 00 call c0202ad7 +c0200b0b: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:66 +c0200b0e: c7 45 f4 00 9e 20 c0 movl $0xc0209e00,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:68 +c0200b15: c7 45 f0 00 00 00 00 movl $0x0,-0x10(%ebp) +c0200b1c: e9 ba 02 00 00 jmp c0200ddb +/media/unix/Data/Code/2020301918-os/kern/main.c:70 +c0200b21: 83 ec 0c sub $0xc,%esp +c0200b24: ff 75 f4 push -0xc(%ebp) +c0200b27: e8 0d ff ff ff call c0200a39 +c0200b2c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:72 +c0200b2f: e8 f2 fd ff ff call c0200926 +c0200b34: 8b 55 f4 mov -0xc(%ebp),%edx +c0200b37: 89 42 70 mov %eax,0x70(%edx) +/media/unix/Data/Code/2020301918-os/kern/main.c:74 +c0200b3a: 8b 45 f4 mov -0xc(%ebp),%eax +c0200b3d: 8b 40 70 mov 0x70(%eax),%eax +c0200b40: 83 ec 0c sub $0xc,%esp +c0200b43: 50 push %eax +c0200b44: e8 ff 02 00 00 call c0200e48 +c0200b49: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:88 +c0200b4c: 8b 55 f0 mov -0x10(%ebp),%edx +c0200b4f: 89 d0 mov %edx,%eax +c0200b51: 01 c0 add %eax,%eax +c0200b53: 01 d0 add %edx,%eax +c0200b55: c1 e0 02 shl $0x2,%eax +c0200b58: 05 14 74 20 c0 add $0xc0207414,%eax +c0200b5d: 83 ec 08 sub $0x8,%esp +c0200b60: 68 00 00 00 c3 push $0xc3000000 +c0200b65: 50 push %eax +c0200b66: e8 f9 fa ff ff call c0200664 +c0200b6b: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:92 +c0200b6e: c7 45 d8 00 00 00 c3 movl $0xc3000000,-0x28(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:93 +c0200b75: 8b 45 d8 mov -0x28(%ebp),%eax +c0200b78: 8b 00 mov (%eax),%eax +c0200b7a: 3d 7f 45 4c 46 cmp $0x464c457f,%eax +c0200b7f: 74 16 je c0200b97 +/media/unix/Data/Code/2020301918-os/kern/main.c:93 (discriminator 1) +c0200b81: 68 54 43 20 c0 push $0xc0204354 +c0200b86: 68 72 43 20 c0 push $0xc0204372 +c0200b8b: 6a 5d push $0x5d +c0200b8d: 68 87 43 20 c0 push $0xc0204387 +c0200b92: e8 22 06 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/main.c:94 +c0200b97: 8b 45 d8 mov -0x28(%ebp),%eax +c0200b9a: 89 45 d4 mov %eax,-0x2c(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:95 +c0200b9d: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp) +c0200ba4: e9 16 01 00 00 jmp c0200cbf +/media/unix/Data/Code/2020301918-os/kern/main.c:96 +c0200ba9: 8b 45 d4 mov -0x2c(%ebp),%eax +c0200bac: 0f b7 40 2a movzwl 0x2a(%eax),%eax +c0200bb0: 0f b7 c0 movzwl %ax,%eax +c0200bb3: 0f af 45 ec imul -0x14(%ebp),%eax +c0200bb7: 89 c2 mov %eax,%edx +c0200bb9: 8b 45 d4 mov -0x2c(%ebp),%eax +c0200bbc: 8b 40 1c mov 0x1c(%eax),%eax +c0200bbf: 01 c2 add %eax,%edx +c0200bc1: 8b 45 d8 mov -0x28(%ebp),%eax +c0200bc4: 01 d0 add %edx,%eax +c0200bc6: 89 45 c4 mov %eax,-0x3c(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:97 +c0200bc9: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200bcc: 8b 00 mov (%eax),%eax +c0200bce: 83 f8 01 cmp $0x1,%eax +c0200bd1: 0f 85 e4 00 00 00 jne c0200cbb +/media/unix/Data/Code/2020301918-os/kern/main.c:98 +c0200bd7: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200bda: 8b 40 08 mov 0x8(%eax),%eax +c0200bdd: 25 00 f0 ff ff and $0xfffff000,%eax +c0200be2: 89 45 c0 mov %eax,-0x40(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:99 +c0200be5: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200be8: 8b 50 08 mov 0x8(%eax),%edx +c0200beb: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200bee: 8b 40 14 mov 0x14(%eax),%eax +c0200bf1: 01 d0 add %edx,%eax +c0200bf3: 83 e8 01 sub $0x1,%eax +c0200bf6: 25 00 f0 ff ff and $0xfffff000,%eax +c0200bfb: 89 45 bc mov %eax,-0x44(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:101 +c0200bfe: 8b 45 bc mov -0x44(%ebp),%eax +c0200c01: 2b 45 c0 sub -0x40(%ebp),%eax +c0200c04: c1 e8 0c shr $0xc,%eax +c0200c07: 83 c0 01 add $0x1,%eax +c0200c0a: 89 45 b8 mov %eax,-0x48(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:102 +c0200c0d: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:103 +c0200c14: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp) +c0200c1b: eb 2e jmp c0200c4b +/media/unix/Data/Code/2020301918-os/kern/main.c:104 (discriminator 3) +c0200c1d: e8 04 fd ff ff call c0200926 +c0200c22: 89 45 e8 mov %eax,-0x18(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:105 (discriminator 3) +c0200c25: 8b 45 e4 mov -0x1c(%ebp),%eax +c0200c28: c1 e0 0c shl $0xc,%eax +c0200c2b: 89 c2 mov %eax,%edx +c0200c2d: 8b 45 c0 mov -0x40(%ebp),%eax +c0200c30: 01 c2 add %eax,%edx +c0200c32: 8b 45 f4 mov -0xc(%ebp),%eax +c0200c35: 8b 40 70 mov 0x70(%eax),%eax +c0200c38: 6a 07 push $0x7 +c0200c3a: ff 75 e8 push -0x18(%ebp) +c0200c3d: 52 push %edx +c0200c3e: 50 push %eax +c0200c3f: e8 36 fe ff ff call c0200a7a +c0200c44: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:103 (discriminator 3) +c0200c47: 83 45 e4 01 addl $0x1,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:103 (discriminator 1) +c0200c4b: 8b 45 e4 mov -0x1c(%ebp),%eax +c0200c4e: 39 45 b8 cmp %eax,-0x48(%ebp) +c0200c51: 77 ca ja c0200c1d +/media/unix/Data/Code/2020301918-os/kern/main.c:107 +c0200c53: 8b 45 b8 mov -0x48(%ebp),%eax +c0200c56: 83 e8 01 sub $0x1,%eax +c0200c59: c1 e0 0c shl $0xc,%eax +c0200c5c: 89 c2 mov %eax,%edx +c0200c5e: 8b 45 e8 mov -0x18(%ebp),%eax +c0200c61: 29 d0 sub %edx,%eax +c0200c63: 89 45 b4 mov %eax,-0x4c(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:108 +c0200c66: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200c69: 8b 40 10 mov 0x10(%eax),%eax +c0200c6c: 8b 55 c4 mov -0x3c(%ebp),%edx +c0200c6f: 8b 4a 04 mov 0x4(%edx),%ecx +c0200c72: 8b 55 d8 mov -0x28(%ebp),%edx +c0200c75: 01 ca add %ecx,%edx +c0200c77: 8b 4d b4 mov -0x4c(%ebp),%ecx +c0200c7a: 81 e9 00 00 00 40 sub $0x40000000,%ecx +c0200c80: 83 ec 04 sub $0x4,%esp +c0200c83: 50 push %eax +c0200c84: 52 push %edx +c0200c85: 51 push %ecx +c0200c86: e8 ba 25 00 00 call c0203245 +c0200c8b: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:109 +c0200c8e: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200c91: 8b 50 14 mov 0x14(%eax),%edx +c0200c94: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200c97: 8b 40 10 mov 0x10(%eax),%eax +c0200c9a: 29 c2 sub %eax,%edx +c0200c9c: 8b 45 c4 mov -0x3c(%ebp),%eax +c0200c9f: 8b 48 10 mov 0x10(%eax),%ecx +c0200ca2: 8b 45 b4 mov -0x4c(%ebp),%eax +c0200ca5: 01 c8 add %ecx,%eax +c0200ca7: 2d 00 00 00 40 sub $0x40000000,%eax +c0200cac: 83 ec 04 sub $0x4,%esp +c0200caf: 52 push %edx +c0200cb0: 6a 00 push $0x0 +c0200cb2: 50 push %eax +c0200cb3: e8 5c 25 00 00 call c0203214 +c0200cb8: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:95 (discriminator 2) +c0200cbb: 83 45 ec 01 addl $0x1,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:95 (discriminator 1) +c0200cbf: 8b 45 d4 mov -0x2c(%ebp),%eax +c0200cc2: 0f b7 40 2c movzwl 0x2c(%eax),%eax +c0200cc6: 0f b7 c0 movzwl %ax,%eax +c0200cc9: 39 45 ec cmp %eax,-0x14(%ebp) +c0200ccc: 0f 8c d7 fe ff ff jl c0200ba9 +/media/unix/Data/Code/2020301918-os/kern/main.c:117 +c0200cd2: e8 4f fc ff ff call c0200926 +c0200cd7: 89 45 d0 mov %eax,-0x30(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:118 +c0200cda: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%ebp) +c0200ce1: eb 09 jmp c0200cec +/media/unix/Data/Code/2020301918-os/kern/main.c:118 (discriminator 3) +c0200ce3: e8 3e fc ff ff call c0200926 +c0200ce8: 83 45 e0 01 addl $0x1,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:118 (discriminator 1) +c0200cec: 83 7d e0 05 cmpl $0x5,-0x20(%ebp) +c0200cf0: 7e f1 jle c0200ce3 +/media/unix/Data/Code/2020301918-os/kern/main.c:119 +c0200cf2: e8 2f fc ff ff call c0200926 +c0200cf7: 89 45 cc mov %eax,-0x34(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:120 +c0200cfa: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%ebp) +c0200d01: eb 3b jmp c0200d3e +/media/unix/Data/Code/2020301918-os/kern/main.c:121 (discriminator 3) +c0200d03: 8b 45 dc mov -0x24(%ebp),%eax +c0200d06: c1 e0 0c shl $0xc,%eax +c0200d09: 89 c2 mov %eax,%edx +c0200d0b: 8b 45 d0 mov -0x30(%ebp),%eax +c0200d0e: 8d 0c 02 lea (%edx,%eax,1),%ecx +c0200d11: b8 08 00 00 00 mov $0x8,%eax +c0200d16: 2b 45 dc sub -0x24(%ebp),%eax +c0200d19: c1 e0 0c shl $0xc,%eax +c0200d1c: 89 c3 mov %eax,%ebx +c0200d1e: b8 00 00 00 c0 mov $0xc0000000,%eax +c0200d23: 29 d8 sub %ebx,%eax +c0200d25: 89 c2 mov %eax,%edx +c0200d27: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d2a: 8b 40 70 mov 0x70(%eax),%eax +c0200d2d: 6a 07 push $0x7 +c0200d2f: 51 push %ecx +c0200d30: 52 push %edx +c0200d31: 50 push %eax +c0200d32: e8 43 fd ff ff call c0200a7a +c0200d37: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:120 (discriminator 3) +c0200d3a: 83 45 dc 01 addl $0x1,-0x24(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:120 (discriminator 1) +c0200d3e: 83 7d dc 07 cmpl $0x7,-0x24(%ebp) +c0200d42: 7e bf jle c0200d03 +/media/unix/Data/Code/2020301918-os/kern/main.c:123 (discriminator 2) +c0200d44: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d47: c7 40 40 00 00 00 c0 movl $0xc0000000,0x40(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:124 (discriminator 2) +c0200d4e: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d51: 8b 40 40 mov 0x40(%eax),%eax +c0200d54: 8d 50 fc lea -0x4(%eax),%edx +c0200d57: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d5a: 89 50 40 mov %edx,0x40(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:125 (discriminator 2) +c0200d5d: 8b 45 cc mov -0x34(%ebp),%eax +c0200d60: 2d 00 f0 ff 3f sub $0x3ffff000,%eax +c0200d65: 89 45 c8 mov %eax,-0x38(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:126 (discriminator 2) +c0200d68: 83 6d c8 04 subl $0x4,-0x38(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:127 (discriminator 2) +c0200d6c: 8b 45 d4 mov -0x2c(%ebp),%eax +c0200d6f: 8b 50 18 mov 0x18(%eax),%edx +c0200d72: 8b 45 c8 mov -0x38(%ebp),%eax +c0200d75: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:129 (discriminator 2) +c0200d77: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d7a: c7 40 3c 02 12 00 00 movl $0x1202,0x3c(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:141 (discriminator 2) +c0200d81: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d84: 8d 90 f8 1f 00 00 lea 0x1ff8(%eax),%edx +c0200d8a: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d8d: 89 50 68 mov %edx,0x68(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:143 (discriminator 2) +c0200d90: 8b 45 f4 mov -0xc(%ebp),%eax +c0200d93: 8b 40 68 mov 0x68(%eax),%eax +c0200d96: ba 6e 00 20 c0 mov $0xc020006e,%edx +c0200d9b: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:145 (discriminator 2) +c0200d9d: 8b 55 f4 mov -0xc(%ebp),%edx +c0200da0: 8b 45 f4 mov -0xc(%ebp),%eax +c0200da3: 8b 40 68 mov 0x68(%eax),%eax +c0200da6: 83 c0 04 add $0x4,%eax +c0200da9: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:148 (discriminator 2) +c0200dab: 8b 55 f0 mov -0x10(%ebp),%edx +c0200dae: 8b 45 f4 mov -0xc(%ebp),%eax +c0200db1: 89 50 6c mov %edx,0x6c(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:152 (discriminator 2) +c0200db4: 8b 45 f0 mov -0x10(%ebp),%eax +c0200db7: 8b 14 85 2c 74 20 c0 mov -0x3fdf8bd4(,%eax,4),%edx +c0200dbe: 8b 45 f4 mov -0xc(%ebp),%eax +c0200dc1: 89 50 78 mov %edx,0x78(%eax) +c0200dc4: 8b 45 f4 mov -0xc(%ebp),%eax +c0200dc7: 8b 50 78 mov 0x78(%eax),%edx +c0200dca: 8b 45 f4 mov -0xc(%ebp),%eax +c0200dcd: 89 50 74 mov %edx,0x74(%eax) +/media/unix/Data/Code/2020301918-os/kern/main.c:68 (discriminator 2) +c0200dd0: 83 45 f0 01 addl $0x1,-0x10(%ebp) +c0200dd4: 81 45 f4 00 20 00 00 addl $0x2000,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/main.c:68 (discriminator 1) +c0200ddb: 83 7d f0 01 cmpl $0x1,-0x10(%ebp) +c0200ddf: 0f 8e 3c fd ff ff jle c0200b21 +/media/unix/Data/Code/2020301918-os/kern/main.c:155 +c0200de5: c7 05 e4 9d 20 c0 00 movl $0xc0209e00,0xc0209de4 +c0200dec: 9e 20 c0 +/media/unix/Data/Code/2020301918-os/kern/main.c:157 +c0200def: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0200df4: 8b 40 70 mov 0x70(%eax),%eax +c0200df7: 83 ec 0c sub $0xc,%esp +c0200dfa: 50 push %eax +c0200dfb: e8 6a fb ff ff call c020096a +c0200e00: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:158 +c0200e03: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0200e08: 83 c0 48 add $0x48,%eax +c0200e0b: a3 24 ee 20 c0 mov %eax,0xc020ee24 +/media/unix/Data/Code/2020301918-os/kern/main.c:160 +c0200e10: c6 05 e0 9d 20 c0 01 movb $0x1,0xc0209de0 +/media/unix/Data/Code/2020301918-os/kern/main.c:164 +c0200e17: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0200e1c: 83 c0 48 add $0x48,%eax +c0200e1f: 83 ec 08 sub $0x8,%esp +c0200e22: 50 push %eax +c0200e23: 8d 45 90 lea -0x70(%ebp),%eax +c0200e26: 50 push %eax +c0200e27: e8 a4 f4 ff ff call c02002d0 +c0200e2c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/main.c:165 +c0200e2f: 68 93 43 20 c0 push $0xc0204393 +c0200e34: 68 72 43 20 c0 push $0xc0204372 +c0200e39: 68 a5 00 00 00 push $0xa5 +c0200e3e: 68 87 43 20 c0 push $0xc0204387 +c0200e43: e8 71 03 00 00 call c02011b9 <_panic> + +c0200e48 : +map_kern(): +/media/unix/Data/Code/2020301918-os/kern/pmap.c:13 +c0200e48: 55 push %ebp +c0200e49: 89 e5 mov %esp,%ebp +c0200e4b: 83 ec 28 sub $0x28,%esp +/media/unix/Data/Code/2020301918-os/kern/pmap.c:16 +c0200e4e: 8b 45 08 mov 0x8(%ebp),%eax +c0200e51: 2d 00 00 00 40 sub $0x40000000,%eax +c0200e56: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:18 +c0200e59: 81 45 f4 00 0c 00 00 addl $0xc00,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:20 +c0200e60: c7 45 f0 20 00 00 00 movl $0x20,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:22 +c0200e67: c7 45 ec 00 00 00 00 movl $0x0,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:23 +c0200e6e: eb 74 jmp c0200ee4 +/media/unix/Data/Code/2020301918-os/kern/pmap.c:25 +c0200e70: e8 b1 fa ff ff call c0200926 +c0200e75: 89 45 e0 mov %eax,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:27 +c0200e78: 8b 45 e0 mov -0x20(%ebp),%eax +c0200e7b: 25 ff 0f 00 00 and $0xfff,%eax +c0200e80: 85 c0 test %eax,%eax +c0200e82: 74 16 je c0200e9a +/media/unix/Data/Code/2020301918-os/kern/pmap.c:27 (discriminator 1) +c0200e84: 68 95 43 20 c0 push $0xc0204395 +c0200e89: 68 a9 43 20 c0 push $0xc02043a9 +c0200e8e: 6a 1b push $0x1b +c0200e90: 68 be 43 20 c0 push $0xc02043be +c0200e95: e8 1f 03 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/pmap.c:29 +c0200e9a: 8b 45 f4 mov -0xc(%ebp),%eax +c0200e9d: 8d 50 04 lea 0x4(%eax),%edx +c0200ea0: 89 55 f4 mov %edx,-0xc(%ebp) +c0200ea3: 8b 55 e0 mov -0x20(%ebp),%edx +c0200ea6: 83 ca 07 or $0x7,%edx +c0200ea9: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:33 +c0200eab: 8b 45 e0 mov -0x20(%ebp),%eax +c0200eae: 2d 00 00 00 40 sub $0x40000000,%eax +c0200eb3: 89 45 e8 mov %eax,-0x18(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:35 +c0200eb6: c7 45 e4 00 04 00 00 movl $0x400,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:36 +c0200ebd: eb 18 jmp c0200ed7 +/media/unix/Data/Code/2020301918-os/kern/pmap.c:39 +c0200ebf: 8b 45 e8 mov -0x18(%ebp),%eax +c0200ec2: 8d 50 04 lea 0x4(%eax),%edx +c0200ec5: 89 55 e8 mov %edx,-0x18(%ebp) +c0200ec8: 8b 55 ec mov -0x14(%ebp),%edx +c0200ecb: 83 ca 03 or $0x3,%edx +c0200ece: 89 10 mov %edx,(%eax) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:41 +c0200ed0: 81 45 ec 00 10 00 00 addl $0x1000,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/kern/pmap.c:36 +c0200ed7: 8b 45 e4 mov -0x1c(%ebp),%eax +c0200eda: 8d 50 ff lea -0x1(%eax),%edx +c0200edd: 89 55 e4 mov %edx,-0x1c(%ebp) +c0200ee0: 85 c0 test %eax,%eax +c0200ee2: 75 db jne c0200ebf +/media/unix/Data/Code/2020301918-os/kern/pmap.c:23 +c0200ee4: 8b 45 f0 mov -0x10(%ebp),%eax +c0200ee7: 8d 50 ff lea -0x1(%eax),%edx +c0200eea: 89 55 f0 mov %edx,-0x10(%ebp) +c0200eed: 85 c0 test %eax,%eax +c0200eef: 0f 85 7b ff ff ff jne c0200e70 +/media/unix/Data/Code/2020301918-os/kern/pmap.c:45 +c0200ef5: 81 7d ec 00 00 00 08 cmpl $0x8000000,-0x14(%ebp) +c0200efc: 74 16 je c0200f14 +/media/unix/Data/Code/2020301918-os/kern/pmap.c:45 (discriminator 1) +c0200efe: 68 ca 43 20 c0 push $0xc02043ca +c0200f03: 68 a9 43 20 c0 push $0xc02043a9 +c0200f08: 6a 2d push $0x2d +c0200f0a: 68 be 43 20 c0 push $0xc02043be +c0200f0f: e8 a5 02 00 00 call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/pmap.c:46 +c0200f14: 90 nop +c0200f15: c9 leave +c0200f16: c3 ret + +c0200f17 : +lcr3(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:126 +c0200f17: 55 push %ebp +c0200f18: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/inc/x86.h:127 +c0200f1a: 8b 45 08 mov 0x8(%ebp),%eax +c0200f1d: 0f 22 d8 mov %eax,%cr3 +/media/unix/Data/Code/2020301918-os/inc/x86.h:128 +c0200f20: 90 nop +c0200f21: 5d pop %ebp +c0200f22: c3 ret + +c0200f23 : +read_eflags(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:162 +c0200f23: 55 push %ebp +c0200f24: 89 e5 mov %esp,%ebp +c0200f26: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/inc/x86.h:164 +c0200f29: 9c pushf +c0200f2a: 58 pop %eax +c0200f2b: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:165 +c0200f2e: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/inc/x86.h:166 +c0200f31: c9 leave +c0200f32: c3 ret + +c0200f33 : +disable_int(): +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:73 +c0200f33: 55 push %ebp +c0200f34: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:74 +c0200f36: fa cli +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:75 +c0200f37: 90 nop +c0200f38: 5d pop %ebp +c0200f39: c3 ret + +c0200f3a : +enable_int(): +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:79 +c0200f3a: 55 push %ebp +c0200f3b: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:80 +c0200f3d: 0f b6 05 e0 9d 20 c0 movzbl 0xc0209de0,%eax +c0200f44: 84 c0 test %al,%al +c0200f46: 74 01 je c0200f49 +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:81 +c0200f48: fb sti +/media/unix/Data/Code/2020301918-os/inc/kern/trap.h:82 +c0200f49: 90 nop +c0200f4a: 5d pop %ebp +c0200f4b: c3 ret + +c0200f4c : +init_segment(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:107 +c0200f4c: 55 push %ebp +c0200f4d: 89 e5 mov %esp,%ebp +c0200f4f: 83 ec 04 sub $0x4,%esp +c0200f52: 8b 45 14 mov 0x14(%ebp),%eax +c0200f55: 66 89 45 fc mov %ax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:108 +c0200f59: 8b 45 10 mov 0x10(%ebp),%eax +c0200f5c: 89 c2 mov %eax,%edx +c0200f5e: 8b 45 08 mov 0x8(%ebp),%eax +c0200f61: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:109 +c0200f64: 8b 45 0c mov 0xc(%ebp),%eax +c0200f67: 89 c2 mov %eax,%edx +c0200f69: 8b 45 08 mov 0x8(%ebp),%eax +c0200f6c: 66 89 50 02 mov %dx,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:110 +c0200f70: 8b 45 0c mov 0xc(%ebp),%eax +c0200f73: c1 e8 10 shr $0x10,%eax +c0200f76: 89 c2 mov %eax,%edx +c0200f78: 8b 45 08 mov 0x8(%ebp),%eax +c0200f7b: 88 50 04 mov %dl,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:111 +c0200f7e: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0200f82: 89 c2 mov %eax,%edx +c0200f84: 8b 45 08 mov 0x8(%ebp),%eax +c0200f87: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c0200f8a: 8b 45 10 mov 0x10(%ebp),%eax +c0200f8d: c1 e8 10 shr $0x10,%eax +c0200f90: 83 e0 0f and $0xf,%eax +c0200f93: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:113 +c0200f95: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0200f99: 66 c1 e8 08 shr $0x8,%ax +c0200f9d: 83 e0 f0 and $0xfffffff0,%eax +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c0200fa0: 09 c2 or %eax,%edx +c0200fa2: 8b 45 08 mov 0x8(%ebp),%eax +c0200fa5: 88 50 06 mov %dl,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:114 +c0200fa8: 8b 45 0c mov 0xc(%ebp),%eax +c0200fab: c1 e8 18 shr $0x18,%eax +c0200fae: 89 c2 mov %eax,%edx +c0200fb0: 8b 45 08 mov 0x8(%ebp),%eax +c0200fb3: 88 50 07 mov %dl,0x7(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:115 +c0200fb6: 90 nop +c0200fb7: c9 leave +c0200fb8: c3 ret + +c0200fb9 : +init_gate(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:119 +c0200fb9: 55 push %ebp +c0200fba: 89 e5 mov %esp,%ebp +c0200fbc: 83 ec 08 sub $0x8,%esp +c0200fbf: 8b 55 0c mov 0xc(%ebp),%edx +c0200fc2: 8b 45 14 mov 0x14(%ebp),%eax +c0200fc5: 88 55 fc mov %dl,-0x4(%ebp) +c0200fc8: 88 45 f8 mov %al,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:120 +c0200fcb: 8b 45 10 mov 0x10(%ebp),%eax +c0200fce: 89 c2 mov %eax,%edx +c0200fd0: 8b 45 08 mov 0x8(%ebp),%eax +c0200fd3: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:121 +c0200fd6: 8b 45 08 mov 0x8(%ebp),%eax +c0200fd9: 66 c7 40 02 08 00 movw $0x8,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:122 +c0200fdf: 8b 45 08 mov 0x8(%ebp),%eax +c0200fe2: c6 40 04 00 movb $0x0,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:123 +c0200fe6: 0f b6 45 f8 movzbl -0x8(%ebp),%eax +c0200fea: c1 e0 05 shl $0x5,%eax +c0200fed: 89 c2 mov %eax,%edx +c0200fef: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c0200ff3: 09 d0 or %edx,%eax +c0200ff5: 89 c2 mov %eax,%edx +c0200ff7: 8b 45 08 mov 0x8(%ebp),%eax +c0200ffa: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:124 +c0200ffd: 8b 45 10 mov 0x10(%ebp),%eax +c0201000: c1 e8 10 shr $0x10,%eax +c0201003: 89 c2 mov %eax,%edx +c0201005: 8b 45 08 mov 0x8(%ebp),%eax +c0201008: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:125 +c020100c: 90 nop +c020100d: c9 leave +c020100e: c3 ret + +c020100f : +to_kern_stack(): +/media/unix/Data/Code/2020301918-os/kern/process.c:24 +c020100f: 55 push %ebp +c0201010: 89 e5 mov %esp,%ebp +c0201012: 53 push %ebx +/media/unix/Data/Code/2020301918-os/kern/process.c:30 +c0201013: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +/media/unix/Data/Code/2020301918-os/kern/process.c:25 +c0201018: bb 00 20 00 00 mov $0x2000,%ebx +c020101d: 8b 55 08 mov 0x8(%ebp),%edx +c0201020: 89 d1 mov %edx,%ecx +c0201022: 01 d8 add %ebx,%eax +c0201024: 89 c4 mov %eax,%esp +c0201026: 51 push %ecx +c0201027: ff 65 04 jmp *0x4(%ebp) +/media/unix/Data/Code/2020301918-os/kern/process.c:34 +c020102a: 90 nop +c020102b: 8b 5d fc mov -0x4(%ebp),%ebx +c020102e: c9 leave +c020102f: c3 ret + +c0201030 : +schedule(): +/media/unix/Data/Code/2020301918-os/kern/process.c:41 +c0201030: 55 push %ebp +c0201031: 89 e5 mov %esp,%ebp +c0201033: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/process.c:43 +c0201036: e8 e8 fe ff ff call c0200f23 +c020103b: 25 00 02 00 00 and $0x200,%eax +c0201040: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/process.c:45 +c0201043: 83 7d f0 00 cmpl $0x0,-0x10(%ebp) +c0201047: 74 05 je c020104e +/media/unix/Data/Code/2020301918-os/kern/process.c:46 +c0201049: e8 e5 fe ff ff call c0200f33 +/media/unix/Data/Code/2020301918-os/kern/process.c:48 +c020104e: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201053: 89 45 ec mov %eax,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/kern/process.c:49 +c0201056: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c020105b: 05 00 20 00 00 add $0x2000,%eax +c0201060: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/process.c:50 +c0201063: b8 00 de 20 c0 mov $0xc020de00,%eax +c0201068: 39 45 f4 cmp %eax,-0xc(%ebp) +c020106b: 72 07 jb c0201074 +/media/unix/Data/Code/2020301918-os/kern/process.c:51 +c020106d: c7 45 f4 00 9e 20 c0 movl $0xc0209e00,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/process.c:54 +c0201074: 8b 45 f4 mov -0xc(%ebp),%eax +c0201077: a3 e4 9d 20 c0 mov %eax,0xc0209de4 +/media/unix/Data/Code/2020301918-os/kern/process.c:56 +c020107c: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201081: 8b 40 70 mov 0x70(%eax),%eax +c0201084: 50 push %eax +c0201085: e8 8d fe ff ff call c0200f17 +c020108a: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/kern/process.c:57 +c020108d: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201092: 83 c0 48 add $0x48,%eax +c0201095: a3 24 ee 20 c0 mov %eax,0xc020ee24 +/media/unix/Data/Code/2020301918-os/kern/process.c:69 +c020109a: 8b 45 f4 mov -0xc(%ebp),%eax +c020109d: 8d 50 48 lea 0x48(%eax),%edx +c02010a0: 8b 45 ec mov -0x14(%ebp),%eax +c02010a3: 83 c0 48 add $0x48,%eax +c02010a6: 83 ec 08 sub $0x8,%esp +c02010a9: 52 push %edx +c02010aa: 50 push %eax +c02010ab: e8 20 f2 ff ff call c02002d0 +c02010b0: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/process.c:90 +c02010b3: 83 7d f0 00 cmpl $0x0,-0x10(%ebp) +c02010b7: 74 05 je c02010be +/media/unix/Data/Code/2020301918-os/kern/process.c:91 +c02010b9: e8 7c fe ff ff call c0200f3a +/media/unix/Data/Code/2020301918-os/kern/process.c:92 +c02010be: 90 nop +c02010bf: c9 leave +c02010c0: c3 ret + +c02010c1 : +kern_get_pid(): +/media/unix/Data/Code/2020301918-os/kern/process.c:96 +c02010c1: 55 push %ebp +c02010c2: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/process.c:97 +c02010c4: 8b 45 08 mov 0x8(%ebp),%eax +c02010c7: 8b 40 6c mov 0x6c(%eax),%eax +/media/unix/Data/Code/2020301918-os/kern/process.c:98 +c02010ca: 5d pop %ebp +c02010cb: c3 ret + +c02010cc : +do_get_pid(): +/media/unix/Data/Code/2020301918-os/kern/process.c:102 +c02010cc: 55 push %ebp +c02010cd: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/process.c:103 +c02010cf: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c02010d4: 50 push %eax +c02010d5: e8 e7 ff ff ff call c02010c1 +c02010da: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/kern/process.c:104 +c02010dd: c9 leave +c02010de: c3 ret + +c02010df : +outb(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:59 +c02010df: 55 push %ebp +c02010e0: 89 e5 mov %esp,%ebp +c02010e2: 83 ec 04 sub $0x4,%esp +c02010e5: 8b 45 0c mov 0xc(%ebp),%eax +c02010e8: 88 45 fc mov %al,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:60 +c02010eb: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c02010ef: 8b 55 08 mov 0x8(%ebp),%edx +c02010f2: ee out %al,(%dx) +/media/unix/Data/Code/2020301918-os/inc/x86.h:61 +c02010f3: 90 nop +c02010f4: c9 leave +c02010f5: c3 ret + +c02010f6 : +init_segment(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:107 +c02010f6: 55 push %ebp +c02010f7: 89 e5 mov %esp,%ebp +c02010f9: 83 ec 04 sub $0x4,%esp +c02010fc: 8b 45 14 mov 0x14(%ebp),%eax +c02010ff: 66 89 45 fc mov %ax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:108 +c0201103: 8b 45 10 mov 0x10(%ebp),%eax +c0201106: 89 c2 mov %eax,%edx +c0201108: 8b 45 08 mov 0x8(%ebp),%eax +c020110b: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:109 +c020110e: 8b 45 0c mov 0xc(%ebp),%eax +c0201111: 89 c2 mov %eax,%edx +c0201113: 8b 45 08 mov 0x8(%ebp),%eax +c0201116: 66 89 50 02 mov %dx,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:110 +c020111a: 8b 45 0c mov 0xc(%ebp),%eax +c020111d: c1 e8 10 shr $0x10,%eax +c0201120: 89 c2 mov %eax,%edx +c0201122: 8b 45 08 mov 0x8(%ebp),%eax +c0201125: 88 50 04 mov %dl,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:111 +c0201128: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c020112c: 89 c2 mov %eax,%edx +c020112e: 8b 45 08 mov 0x8(%ebp),%eax +c0201131: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c0201134: 8b 45 10 mov 0x10(%ebp),%eax +c0201137: c1 e8 10 shr $0x10,%eax +c020113a: 83 e0 0f and $0xf,%eax +c020113d: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:113 +c020113f: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0201143: 66 c1 e8 08 shr $0x8,%ax +c0201147: 83 e0 f0 and $0xfffffff0,%eax +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c020114a: 09 c2 or %eax,%edx +c020114c: 8b 45 08 mov 0x8(%ebp),%eax +c020114f: 88 50 06 mov %dl,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:114 +c0201152: 8b 45 0c mov 0xc(%ebp),%eax +c0201155: c1 e8 18 shr $0x18,%eax +c0201158: 89 c2 mov %eax,%edx +c020115a: 8b 45 08 mov 0x8(%ebp),%eax +c020115d: 88 50 07 mov %dl,0x7(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:115 +c0201160: 90 nop +c0201161: c9 leave +c0201162: c3 ret + +c0201163 : +init_gate(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:119 +c0201163: 55 push %ebp +c0201164: 89 e5 mov %esp,%ebp +c0201166: 83 ec 08 sub $0x8,%esp +c0201169: 8b 55 0c mov 0xc(%ebp),%edx +c020116c: 8b 45 14 mov 0x14(%ebp),%eax +c020116f: 88 55 fc mov %dl,-0x4(%ebp) +c0201172: 88 45 f8 mov %al,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:120 +c0201175: 8b 45 10 mov 0x10(%ebp),%eax +c0201178: 89 c2 mov %eax,%edx +c020117a: 8b 45 08 mov 0x8(%ebp),%eax +c020117d: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:121 +c0201180: 8b 45 08 mov 0x8(%ebp),%eax +c0201183: 66 c7 40 02 08 00 movw $0x8,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:122 +c0201189: 8b 45 08 mov 0x8(%ebp),%eax +c020118c: c6 40 04 00 movb $0x0,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:123 +c0201190: 0f b6 45 f8 movzbl -0x8(%ebp),%eax +c0201194: c1 e0 05 shl $0x5,%eax +c0201197: 89 c2 mov %eax,%edx +c0201199: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c020119d: 09 d0 or %edx,%eax +c020119f: 89 c2 mov %eax,%edx +c02011a1: 8b 45 08 mov 0x8(%ebp),%eax +c02011a4: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:124 +c02011a7: 8b 45 10 mov 0x10(%ebp),%eax +c02011aa: c1 e8 10 shr $0x10,%eax +c02011ad: 89 c2 mov %eax,%edx +c02011af: 8b 45 08 mov 0x8(%ebp),%eax +c02011b2: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:125 +c02011b6: 90 nop +c02011b7: c9 leave +c02011b8: c3 ret + +c02011b9 <_panic>: +_panic(): +/media/unix/Data/Code/2020301918-os/kern/start.c:21 +c02011b9: 55 push %ebp +c02011ba: 89 e5 mov %esp,%ebp +c02011bc: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:25 +c02011bf: fa cli +/media/unix/Data/Code/2020301918-os/kern/start.c:26 +c02011c0: fc cld +/media/unix/Data/Code/2020301918-os/kern/start.c:28 +c02011c1: 8d 45 14 lea 0x14(%ebp),%eax +c02011c4: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/start.c:29 +c02011c7: 83 ec 04 sub $0x4,%esp +c02011ca: ff 75 0c push 0xc(%ebp) +c02011cd: ff 75 08 push 0x8(%ebp) +c02011d0: 68 e0 43 20 c0 push $0xc02043e0 +c02011d5: e8 fd 18 00 00 call c0202ad7 +c02011da: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:30 +c02011dd: 8b 45 f4 mov -0xc(%ebp),%eax +c02011e0: 83 ec 08 sub $0x8,%esp +c02011e3: 50 push %eax +c02011e4: ff 75 10 push 0x10(%ebp) +c02011e7: e8 8f 18 00 00 call c0202a7b +c02011ec: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:31 +c02011ef: 83 ec 0c sub $0xc,%esp +c02011f2: 68 01 44 20 c0 push $0xc0204401 +c02011f7: e8 db 18 00 00 call c0202ad7 +c02011fc: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:35 (discriminator 1) +c02011ff: f4 hlt +c0201200: eb fd jmp c02011ff <_panic+0x46> + +c0201202 <_warn>: +_warn(): +/media/unix/Data/Code/2020301918-os/kern/start.c:43 +c0201202: 55 push %ebp +c0201203: 89 e5 mov %esp,%ebp +c0201205: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:46 +c0201208: 8d 45 14 lea 0x14(%ebp),%eax +c020120b: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/start.c:47 +c020120e: 83 ec 04 sub $0x4,%esp +c0201211: ff 75 0c push 0xc(%ebp) +c0201214: ff 75 08 push 0x8(%ebp) +c0201217: 68 08 44 20 c0 push $0xc0204408 +c020121c: e8 b6 18 00 00 call c0202ad7 +c0201221: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:48 +c0201224: 8b 45 f4 mov -0xc(%ebp),%eax +c0201227: 83 ec 08 sub $0x8,%esp +c020122a: 50 push %eax +c020122b: ff 75 10 push 0x10(%ebp) +c020122e: e8 48 18 00 00 call c0202a7b +c0201233: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:49 +c0201236: 83 ec 0c sub $0xc,%esp +c0201239: 68 01 44 20 c0 push $0xc0204401 +c020123e: e8 94 18 00 00 call c0202ad7 +c0201243: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:51 +c0201246: 90 nop +c0201247: c9 leave +c0201248: c3 ret + +c0201249 : +init_gdt(): +/media/unix/Data/Code/2020301918-os/kern/start.c:59 +c0201249: 55 push %ebp +c020124a: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/start.c:60 +c020124c: 6a 00 push $0x0 +c020124e: 6a 00 push $0x0 +c0201250: 6a 00 push $0x0 +c0201252: 68 20 de 20 c0 push $0xc020de20 +c0201257: e8 9a fe ff ff call c02010f6 +c020125c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:62 +c020125f: 68 9a c0 00 00 push $0xc09a +c0201264: 68 ff ff 0f 00 push $0xfffff +c0201269: 6a 00 push $0x0 +c020126b: 68 28 de 20 c0 push $0xc020de28 +c0201270: e8 81 fe ff ff call c02010f6 +c0201275: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:64 +c0201278: 68 92 c0 00 00 push $0xc092 +c020127d: 68 ff ff 0f 00 push $0xfffff +c0201282: 6a 00 push $0x0 +c0201284: 68 30 de 20 c0 push $0xc020de30 +c0201289: e8 68 fe ff ff call c02010f6 +c020128e: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:66 +c0201291: 68 f2 c0 00 00 push $0xc0f2 +c0201296: 6a 08 push $0x8 +c0201298: 68 00 80 0b c0 push $0xc00b8000 +c020129d: 68 38 de 20 c0 push $0xc020de38 +c02012a2: e8 4f fe ff ff call c02010f6 +c02012a7: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:68 +c02012aa: c7 05 28 ee 20 c0 10 movl $0x10,0xc020ee28 +c02012b1: 00 00 00 +/media/unix/Data/Code/2020301918-os/kern/start.c:69 +c02012b4: 66 c7 05 86 ee 20 c0 movw $0x68,0xc020ee86 +c02012bb: 68 00 +/media/unix/Data/Code/2020301918-os/kern/start.c:71 +c02012bd: b8 20 ee 20 c0 mov $0xc020ee20,%eax +c02012c2: 68 89 00 00 00 push $0x89 +c02012c7: 6a 67 push $0x67 +c02012c9: 50 push %eax +c02012ca: 68 40 de 20 c0 push $0xc020de40 +c02012cf: e8 22 fe ff ff call c02010f6 +c02012d4: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:73 +c02012d7: b8 20 e2 20 c0 mov $0xc020e220,%eax +c02012dc: 68 82 00 00 00 push $0x82 +c02012e1: 68 ff 03 00 00 push $0x3ff +c02012e6: 50 push %eax +c02012e7: 68 48 de 20 c0 push $0xc020de48 +c02012ec: e8 05 fe ff ff call c02010f6 +c02012f1: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:75 +c02012f4: b8 20 de 20 c0 mov $0xc020de20,%eax +c02012f9: a3 02 de 20 c0 mov %eax,0xc020de02 +/media/unix/Data/Code/2020301918-os/kern/start.c:76 +c02012fe: 66 c7 05 00 de 20 c0 movw $0x3ff,0xc020de00 +c0201305: ff 03 +/media/unix/Data/Code/2020301918-os/kern/start.c:77 +c0201307: 90 nop +c0201308: c9 leave +c0201309: c3 ret + +c020130a : +init_ldt(): +/media/unix/Data/Code/2020301918-os/kern/start.c:84 +c020130a: 55 push %ebp +c020130b: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/start.c:85 +c020130d: 6a 00 push $0x0 +c020130f: 6a 00 push $0x0 +c0201311: 6a 00 push $0x0 +c0201313: 68 20 e2 20 c0 push $0xc020e220 +c0201318: e8 d9 fd ff ff call c02010f6 +c020131d: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:87 +c0201320: 68 fa c0 00 00 push $0xc0fa +c0201325: 68 ff ff 0f 00 push $0xfffff +c020132a: 6a 00 push $0x0 +c020132c: 68 28 e2 20 c0 push $0xc020e228 +c0201331: e8 c0 fd ff ff call c02010f6 +c0201336: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:90 +c0201339: 68 f2 c0 00 00 push $0xc0f2 +c020133e: 68 ff ff 0f 00 push $0xfffff +c0201343: 6a 00 push $0x0 +c0201345: 68 30 e2 20 c0 push $0xc020e230 +c020134a: e8 a7 fd ff ff call c02010f6 +c020134f: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:93 +c0201352: 90 nop +c0201353: c9 leave +c0201354: c3 ret + +c0201355 : +init_idt(): +/media/unix/Data/Code/2020301918-os/kern/start.c:100 +c0201355: 55 push %ebp +c0201356: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/start.c:102 +c0201358: 6a 00 push $0x0 +c020135a: 68 71 02 20 c0 push $0xc0200271 +c020135f: 68 8e 00 00 00 push $0x8e +c0201364: 68 20 e6 20 c0 push $0xc020e620 +c0201369: e8 f5 fd ff ff call c0201163 +c020136e: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:104 +c0201371: b8 28 e6 20 c0 mov $0xc020e628,%eax +c0201376: 6a 00 push $0x0 +c0201378: 68 77 02 20 c0 push $0xc0200277 +c020137d: 68 8e 00 00 00 push $0x8e +c0201382: 50 push %eax +c0201383: e8 db fd ff ff call c0201163 +c0201388: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:106 +c020138b: b8 30 e6 20 c0 mov $0xc020e630,%eax +c0201390: 6a 00 push $0x0 +c0201392: 68 7d 02 20 c0 push $0xc020027d +c0201397: 68 8e 00 00 00 push $0x8e +c020139c: 50 push %eax +c020139d: e8 c1 fd ff ff call c0201163 +c02013a2: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:108 +c02013a5: b8 38 e6 20 c0 mov $0xc020e638,%eax +c02013aa: 6a 03 push $0x3 +c02013ac: 68 83 02 20 c0 push $0xc0200283 +c02013b1: 68 8e 00 00 00 push $0x8e +c02013b6: 50 push %eax +c02013b7: e8 a7 fd ff ff call c0201163 +c02013bc: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:110 +c02013bf: b8 40 e6 20 c0 mov $0xc020e640,%eax +c02013c4: 6a 03 push $0x3 +c02013c6: 68 89 02 20 c0 push $0xc0200289 +c02013cb: 68 8e 00 00 00 push $0x8e +c02013d0: 50 push %eax +c02013d1: e8 8d fd ff ff call c0201163 +c02013d6: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:112 +c02013d9: b8 48 e6 20 c0 mov $0xc020e648,%eax +c02013de: 6a 00 push $0x0 +c02013e0: 68 8f 02 20 c0 push $0xc020028f +c02013e5: 68 8e 00 00 00 push $0x8e +c02013ea: 50 push %eax +c02013eb: e8 73 fd ff ff call c0201163 +c02013f0: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:114 +c02013f3: b8 50 e6 20 c0 mov $0xc020e650,%eax +c02013f8: 6a 00 push $0x0 +c02013fa: 68 95 02 20 c0 push $0xc0200295 +c02013ff: 68 8e 00 00 00 push $0x8e +c0201404: 50 push %eax +c0201405: e8 59 fd ff ff call c0201163 +c020140a: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:116 +c020140d: b8 58 e6 20 c0 mov $0xc020e658,%eax +c0201412: 6a 00 push $0x0 +c0201414: 68 9b 02 20 c0 push $0xc020029b +c0201419: 68 8e 00 00 00 push $0x8e +c020141e: 50 push %eax +c020141f: e8 3f fd ff ff call c0201163 +c0201424: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:118 +c0201427: b8 60 e6 20 c0 mov $0xc020e660,%eax +c020142c: 6a 00 push $0x0 +c020142e: 68 a1 02 20 c0 push $0xc02002a1 +c0201433: 68 8e 00 00 00 push $0x8e +c0201438: 50 push %eax +c0201439: e8 25 fd ff ff call c0201163 +c020143e: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:120 +c0201441: b8 68 e6 20 c0 mov $0xc020e668,%eax +c0201446: 6a 00 push $0x0 +c0201448: 68 a5 02 20 c0 push $0xc02002a5 +c020144d: 68 8e 00 00 00 push $0x8e +c0201452: 50 push %eax +c0201453: e8 0b fd ff ff call c0201163 +c0201458: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:122 +c020145b: b8 70 e6 20 c0 mov $0xc020e670,%eax +c0201460: 6a 00 push $0x0 +c0201462: 68 ab 02 20 c0 push $0xc02002ab +c0201467: 68 8e 00 00 00 push $0x8e +c020146c: 50 push %eax +c020146d: e8 f1 fc ff ff call c0201163 +c0201472: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:124 +c0201475: b8 78 e6 20 c0 mov $0xc020e678,%eax +c020147a: 6a 00 push $0x0 +c020147c: 68 af 02 20 c0 push $0xc02002af +c0201481: 68 8e 00 00 00 push $0x8e +c0201486: 50 push %eax +c0201487: e8 d7 fc ff ff call c0201163 +c020148c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:126 +c020148f: b8 80 e6 20 c0 mov $0xc020e680,%eax +c0201494: 6a 00 push $0x0 +c0201496: 68 b3 02 20 c0 push $0xc02002b3 +c020149b: 68 8e 00 00 00 push $0x8e +c02014a0: 50 push %eax +c02014a1: e8 bd fc ff ff call c0201163 +c02014a6: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:128 +c02014a9: b8 88 e6 20 c0 mov $0xc020e688,%eax +c02014ae: 6a 00 push $0x0 +c02014b0: 68 b7 02 20 c0 push $0xc02002b7 +c02014b5: 68 8e 00 00 00 push $0x8e +c02014ba: 50 push %eax +c02014bb: e8 a3 fc ff ff call c0201163 +c02014c0: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:130 +c02014c3: b8 90 e6 20 c0 mov $0xc020e690,%eax +c02014c8: 6a 00 push $0x0 +c02014ca: 68 bb 02 20 c0 push $0xc02002bb +c02014cf: 68 8e 00 00 00 push $0x8e +c02014d4: 50 push %eax +c02014d5: e8 89 fc ff ff call c0201163 +c02014da: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:132 +c02014dd: b8 a0 e6 20 c0 mov $0xc020e6a0,%eax +c02014e2: 6a 00 push $0x0 +c02014e4: 68 bf 02 20 c0 push $0xc02002bf +c02014e9: 68 8e 00 00 00 push $0x8e +c02014ee: 50 push %eax +c02014ef: e8 6f fc ff ff call c0201163 +c02014f4: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:135 +c02014f7: b8 20 e7 20 c0 mov $0xc020e720,%eax +c02014fc: 6a 00 push $0x0 +c02014fe: 68 90 00 20 c0 push $0xc0200090 +c0201503: 68 8e 00 00 00 push $0x8e +c0201508: 50 push %eax +c0201509: e8 55 fc ff ff call c0201163 +c020150e: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:137 +c0201511: b8 28 e7 20 c0 mov $0xc020e728,%eax +c0201516: 6a 00 push $0x0 +c0201518: 68 b0 00 20 c0 push $0xc02000b0 +c020151d: 68 8e 00 00 00 push $0x8e +c0201522: 50 push %eax +c0201523: e8 3b fc ff ff call c0201163 +c0201528: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:139 +c020152b: b8 30 e7 20 c0 mov $0xc020e730,%eax +c0201530: 6a 00 push $0x0 +c0201532: 68 e0 00 20 c0 push $0xc02000e0 +c0201537: 68 8e 00 00 00 push $0x8e +c020153c: 50 push %eax +c020153d: e8 21 fc ff ff call c0201163 +c0201542: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:141 +c0201545: b8 38 e7 20 c0 mov $0xc020e738,%eax +c020154a: 6a 00 push $0x0 +c020154c: 68 10 01 20 c0 push $0xc0200110 +c0201551: 68 8e 00 00 00 push $0x8e +c0201556: 50 push %eax +c0201557: e8 07 fc ff ff call c0201163 +c020155c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:143 +c020155f: b8 40 e7 20 c0 mov $0xc020e740,%eax +c0201564: 6a 00 push $0x0 +c0201566: 68 40 01 20 c0 push $0xc0200140 +c020156b: 68 8e 00 00 00 push $0x8e +c0201570: 50 push %eax +c0201571: e8 ed fb ff ff call c0201163 +c0201576: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:145 +c0201579: b8 48 e7 20 c0 mov $0xc020e748,%eax +c020157e: 6a 00 push $0x0 +c0201580: 68 70 01 20 c0 push $0xc0200170 +c0201585: 68 8e 00 00 00 push $0x8e +c020158a: 50 push %eax +c020158b: e8 d3 fb ff ff call c0201163 +c0201590: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:147 +c0201593: b8 50 e7 20 c0 mov $0xc020e750,%eax +c0201598: 6a 00 push $0x0 +c020159a: 68 a0 01 20 c0 push $0xc02001a0 +c020159f: 68 8e 00 00 00 push $0x8e +c02015a4: 50 push %eax +c02015a5: e8 b9 fb ff ff call c0201163 +c02015aa: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:149 +c02015ad: b8 58 e7 20 c0 mov $0xc020e758,%eax +c02015b2: 6a 00 push $0x0 +c02015b4: 68 d0 01 20 c0 push $0xc02001d0 +c02015b9: 68 8e 00 00 00 push $0x8e +c02015be: 50 push %eax +c02015bf: e8 9f fb ff ff call c0201163 +c02015c4: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:151 +c02015c7: b8 60 e7 20 c0 mov $0xc020e760,%eax +c02015cc: 6a 00 push $0x0 +c02015ce: 68 00 02 20 c0 push $0xc0200200 +c02015d3: 68 8e 00 00 00 push $0x8e +c02015d8: 50 push %eax +c02015d9: e8 85 fb ff ff call c0201163 +c02015de: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:153 +c02015e1: b8 68 e7 20 c0 mov $0xc020e768,%eax +c02015e6: 6a 00 push $0x0 +c02015e8: 68 10 02 20 c0 push $0xc0200210 +c02015ed: 68 8e 00 00 00 push $0x8e +c02015f2: 50 push %eax +c02015f3: e8 6b fb ff ff call c0201163 +c02015f8: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:155 +c02015fb: b8 70 e7 20 c0 mov $0xc020e770,%eax +c0201600: 6a 00 push $0x0 +c0201602: 68 20 02 20 c0 push $0xc0200220 +c0201607: 68 8e 00 00 00 push $0x8e +c020160c: 50 push %eax +c020160d: e8 51 fb ff ff call c0201163 +c0201612: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:157 +c0201615: b8 78 e7 20 c0 mov $0xc020e778,%eax +c020161a: 6a 00 push $0x0 +c020161c: 68 30 02 20 c0 push $0xc0200230 +c0201621: 68 8e 00 00 00 push $0x8e +c0201626: 50 push %eax +c0201627: e8 37 fb ff ff call c0201163 +c020162c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:159 +c020162f: b8 80 e7 20 c0 mov $0xc020e780,%eax +c0201634: 6a 00 push $0x0 +c0201636: 68 40 02 20 c0 push $0xc0200240 +c020163b: 68 8e 00 00 00 push $0x8e +c0201640: 50 push %eax +c0201641: e8 1d fb ff ff call c0201163 +c0201646: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:161 +c0201649: b8 88 e7 20 c0 mov $0xc020e788,%eax +c020164e: 6a 00 push $0x0 +c0201650: 68 50 02 20 c0 push $0xc0200250 +c0201655: 68 8e 00 00 00 push $0x8e +c020165a: 50 push %eax +c020165b: e8 03 fb ff ff call c0201163 +c0201660: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:163 +c0201663: b8 90 e7 20 c0 mov $0xc020e790,%eax +c0201668: 6a 00 push $0x0 +c020166a: 68 60 02 20 c0 push $0xc0200260 +c020166f: 68 8e 00 00 00 push $0x8e +c0201674: 50 push %eax +c0201675: e8 e9 fa ff ff call c0201163 +c020167a: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:165 +c020167d: b8 98 e7 20 c0 mov $0xc020e798,%eax +c0201682: 6a 00 push $0x0 +c0201684: 68 70 02 20 c0 push $0xc0200270 +c0201689: 68 8e 00 00 00 push $0x8e +c020168e: 50 push %eax +c020168f: e8 cf fa ff ff call c0201163 +c0201694: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:168 +c0201697: b8 20 ea 20 c0 mov $0xc020ea20,%eax +c020169c: 6a 03 push $0x3 +c020169e: 68 7a 00 20 c0 push $0xc020007a +c02016a3: 68 8e 00 00 00 push $0x8e +c02016a8: 50 push %eax +c02016a9: e8 b5 fa ff ff call c0201163 +c02016ae: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:171 +c02016b1: b8 20 e6 20 c0 mov $0xc020e620,%eax +c02016b6: a3 0a de 20 c0 mov %eax,0xc020de0a +/media/unix/Data/Code/2020301918-os/kern/start.c:172 +c02016bb: 66 c7 05 08 de 20 c0 movw $0x7ff,0xc020de08 +c02016c2: ff 07 +/media/unix/Data/Code/2020301918-os/kern/start.c:173 +c02016c4: 90 nop +c02016c5: c9 leave +c02016c6: c3 ret + +c02016c7 : +init_8259A(): +/media/unix/Data/Code/2020301918-os/kern/start.c:180 +c02016c7: 55 push %ebp +c02016c8: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/start.c:181 +c02016ca: 6a 11 push $0x11 +c02016cc: 6a 20 push $0x20 +c02016ce: e8 0c fa ff ff call c02010df +c02016d3: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:182 +c02016d6: 6a 11 push $0x11 +c02016d8: 68 a0 00 00 00 push $0xa0 +c02016dd: e8 fd f9 ff ff call c02010df +c02016e2: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:185 +c02016e5: 6a 20 push $0x20 +c02016e7: 6a 21 push $0x21 +c02016e9: e8 f1 f9 ff ff call c02010df +c02016ee: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:187 +c02016f1: 6a 28 push $0x28 +c02016f3: 68 a1 00 00 00 push $0xa1 +c02016f8: e8 e2 f9 ff ff call c02010df +c02016fd: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:189 +c0201700: 6a 04 push $0x4 +c0201702: 6a 21 push $0x21 +c0201704: e8 d6 f9 ff ff call c02010df +c0201709: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:191 +c020170c: 6a 02 push $0x2 +c020170e: 68 a1 00 00 00 push $0xa1 +c0201713: e8 c7 f9 ff ff call c02010df +c0201718: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:193 +c020171b: 6a 01 push $0x1 +c020171d: 6a 21 push $0x21 +c020171f: e8 bb f9 ff ff call c02010df +c0201724: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:194 +c0201727: 6a 01 push $0x1 +c0201729: 68 a1 00 00 00 push $0xa1 +c020172e: e8 ac f9 ff ff call c02010df +c0201733: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:196 +c0201736: 68 ff 00 00 00 push $0xff +c020173b: 6a 21 push $0x21 +c020173d: e8 9d f9 ff ff call c02010df +c0201742: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:197 +c0201745: 68 ff 00 00 00 push $0xff +c020174a: 68 a1 00 00 00 push $0xa1 +c020174f: e8 8b f9 ff ff call c02010df +c0201754: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:198 +c0201757: 90 nop +c0201758: c9 leave +c0201759: c3 ret + +c020175a : +init_irq(): +/media/unix/Data/Code/2020301918-os/kern/start.c:202 +c020175a: 55 push %ebp +c020175b: 89 e5 mov %esp,%ebp +c020175d: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:204 +c0201760: 83 ec 0c sub $0xc,%esp +c0201763: 6a 00 push $0x0 +c0201765: e8 0d 03 00 00 call c0201a77 +c020176a: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:206 +c020176d: 83 ec 08 sub $0x8,%esp +c0201770: 6a 34 push $0x34 +c0201772: 6a 43 push $0x43 +c0201774: e8 66 f9 ff ff call c02010df +c0201779: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:207 +c020177c: 83 ec 08 sub $0x8,%esp +c020177f: 68 a9 00 00 00 push $0xa9 +c0201784: 6a 40 push $0x40 +c0201786: e8 54 f9 ff ff call c02010df +c020178b: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:208 +c020178e: 83 ec 08 sub $0x8,%esp +c0201791: 6a 04 push $0x4 +c0201793: 6a 40 push $0x40 +c0201795: e8 45 f9 ff ff call c02010df +c020179a: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:210 +c020179d: 83 ec 0c sub $0xc,%esp +c02017a0: 6a 01 push $0x1 +c02017a2: e8 d0 02 00 00 call c0201a77 +c02017a7: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:211 +c02017aa: 90 nop +c02017ab: c9 leave +c02017ac: c3 ret + +c02017ad : +cstart(): +/media/unix/Data/Code/2020301918-os/kern/start.c:217 +c02017ad: 55 push %ebp +c02017ae: 89 e5 mov %esp,%ebp +c02017b0: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:224 +c02017b3: 83 ec 0c sub $0xc,%esp +c02017b6: 68 2b 44 20 c0 push $0xc020442b +c02017bb: e8 17 13 00 00 call c0202ad7 +c02017c0: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:226 +c02017c3: 83 ec 0c sub $0xc,%esp +c02017c6: 68 33 44 20 c0 push $0xc0204433 +c02017cb: e8 07 13 00 00 call c0202ad7 +c02017d0: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:227 +c02017d3: e8 71 fa ff ff call c0201249 +/media/unix/Data/Code/2020301918-os/kern/start.c:228 +c02017d8: 83 ec 0c sub $0xc,%esp +c02017db: 68 43 44 20 c0 push $0xc0204443 +c02017e0: e8 f2 12 00 00 call c0202ad7 +c02017e5: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:229 +c02017e8: e8 1d fb ff ff call c020130a +/media/unix/Data/Code/2020301918-os/kern/start.c:230 +c02017ed: 83 ec 0c sub $0xc,%esp +c02017f0: 68 48 44 20 c0 push $0xc0204448 +c02017f5: e8 dd 12 00 00 call c0202ad7 +c02017fa: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:231 +c02017fd: e8 c5 fe ff ff call c02016c7 +/media/unix/Data/Code/2020301918-os/kern/start.c:232 +c0201802: 83 ec 0c sub $0xc,%esp +c0201805: 68 4f 44 20 c0 push $0xc020444f +c020180a: e8 c8 12 00 00 call c0202ad7 +c020180f: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:233 +c0201812: e8 3e fb ff ff call c0201355 +/media/unix/Data/Code/2020301918-os/kern/start.c:234 +c0201817: 83 ec 0c sub $0xc,%esp +c020181a: 68 54 44 20 c0 push $0xc0204454 +c020181f: e8 b3 12 00 00 call c0202ad7 +c0201824: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:235 +c0201827: e8 2e ff ff ff call c020175a +/media/unix/Data/Code/2020301918-os/kern/start.c:236 +c020182c: 83 ec 0c sub $0xc,%esp +c020182f: 68 58 44 20 c0 push $0xc0204458 +c0201834: e8 9e 12 00 00 call c0202ad7 +c0201839: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/start.c:237 +c020183c: 90 nop +c020183d: c9 leave +c020183e: c3 ret + +c020183f : +get_arg(): +/media/unix/Data/Code/2020301918-os/kern/syscall.c:28 +c020183f: 55 push %ebp +c0201840: 89 e5 mov %esp,%ebp +c0201842: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/syscall.c:29 +c0201845: 83 7d 08 05 cmpl $0x5,0x8(%ebp) +c0201849: 77 4b ja c0201896 +c020184b: 8b 45 08 mov 0x8(%ebp),%eax +c020184e: c1 e0 02 shl $0x2,%eax +c0201851: 05 88 44 20 c0 add $0xc0204488,%eax +c0201856: 8b 00 mov (%eax),%eax +c0201858: ff e0 jmp *%eax +/media/unix/Data/Code/2020301918-os/kern/syscall.c:31 +c020185a: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c020185f: 8b 40 20 mov 0x20(%eax),%eax +c0201862: eb 46 jmp c02018aa +/media/unix/Data/Code/2020301918-os/kern/syscall.c:33 +c0201864: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201869: 8b 40 28 mov 0x28(%eax),%eax +c020186c: eb 3c jmp c02018aa +/media/unix/Data/Code/2020301918-os/kern/syscall.c:35 +c020186e: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201873: 8b 40 24 mov 0x24(%eax),%eax +c0201876: eb 32 jmp c02018aa +/media/unix/Data/Code/2020301918-os/kern/syscall.c:37 +c0201878: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c020187d: 8b 40 14 mov 0x14(%eax),%eax +c0201880: eb 28 jmp c02018aa +/media/unix/Data/Code/2020301918-os/kern/syscall.c:39 +c0201882: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201887: 8b 40 10 mov 0x10(%eax),%eax +c020188a: eb 1e jmp c02018aa +/media/unix/Data/Code/2020301918-os/kern/syscall.c:41 +c020188c: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201891: 8b 40 18 mov 0x18(%eax),%eax +c0201894: eb 14 jmp c02018aa +/media/unix/Data/Code/2020301918-os/kern/syscall.c:43 +c0201896: ff 75 08 push 0x8(%ebp) +c0201899: 68 60 44 20 c0 push $0xc0204460 +c020189e: 6a 2b push $0x2b +c02018a0: 68 79 44 20 c0 push $0xc0204479 +c02018a5: e8 0f f9 ff ff call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/syscall.c:45 +c02018aa: c9 leave +c02018ab: c3 ret + +c02018ac : +sys_get_ticks(): +/media/unix/Data/Code/2020301918-os/kern/syscall.c:52 +c02018ac: 55 push %ebp +c02018ad: 89 e5 mov %esp,%ebp +c02018af: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/syscall.c:53 +c02018b2: e8 b6 00 00 00 call c020196d +/media/unix/Data/Code/2020301918-os/kern/syscall.c:54 +c02018b7: c9 leave +c02018b8: c3 ret + +c02018b9 : +sys_get_pid(): +/media/unix/Data/Code/2020301918-os/kern/syscall.c:62 +c02018b9: 55 push %ebp +c02018ba: 89 e5 mov %esp,%ebp +c02018bc: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/syscall.c:63 +c02018bf: e8 08 f8 ff ff call c02010cc +/media/unix/Data/Code/2020301918-os/kern/syscall.c:64 +c02018c4: c9 leave +c02018c5: c3 ret + +c02018c6 : +sys_read(): +/media/unix/Data/Code/2020301918-os/kern/syscall.c:73 +c02018c6: 55 push %ebp +c02018c7: 89 e5 mov %esp,%ebp +c02018c9: 56 push %esi +c02018ca: 53 push %ebx +/media/unix/Data/Code/2020301918-os/kern/syscall.c:74 +c02018cb: 83 ec 0c sub $0xc,%esp +c02018ce: 6a 02 push $0x2 +c02018d0: e8 6a ff ff ff call c020183f +c02018d5: 83 c4 10 add $0x10,%esp +c02018d8: 89 c3 mov %eax,%ebx +c02018da: 83 ec 0c sub $0xc,%esp +c02018dd: 6a 01 push $0x1 +c02018df: e8 5b ff ff ff call c020183f +c02018e4: 83 c4 10 add $0x10,%esp +c02018e7: 89 c6 mov %eax,%esi +c02018e9: 83 ec 0c sub $0xc,%esp +c02018ec: 6a 00 push $0x0 +c02018ee: e8 4c ff ff ff call c020183f +c02018f3: 83 c4 10 add $0x10,%esp +c02018f6: 83 ec 04 sub $0x4,%esp +c02018f9: 53 push %ebx +c02018fa: 56 push %esi +c02018fb: 50 push %eax +c02018fc: e8 b3 ea ff ff call c02003b4 +c0201901: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/syscall.c:75 +c0201904: 8d 65 f8 lea -0x8(%ebp),%esp +c0201907: 5b pop %ebx +c0201908: 5e pop %esi +c0201909: 5d pop %ebp +c020190a: c3 ret + +c020190b : +sys_write(): +/media/unix/Data/Code/2020301918-os/kern/syscall.c:84 +c020190b: 55 push %ebp +c020190c: 89 e5 mov %esp,%ebp +c020190e: 56 push %esi +c020190f: 53 push %ebx +/media/unix/Data/Code/2020301918-os/kern/syscall.c:85 +c0201910: 83 ec 0c sub $0xc,%esp +c0201913: 6a 02 push $0x2 +c0201915: e8 25 ff ff ff call c020183f +c020191a: 83 c4 10 add $0x10,%esp +c020191d: 89 c3 mov %eax,%ebx +c020191f: 83 ec 0c sub $0xc,%esp +c0201922: 6a 01 push $0x1 +c0201924: e8 16 ff ff ff call c020183f +c0201929: 83 c4 10 add $0x10,%esp +c020192c: 89 c6 mov %eax,%esi +c020192e: 83 ec 0c sub $0xc,%esp +c0201931: 6a 00 push $0x0 +c0201933: e8 07 ff ff ff call c020183f +c0201938: 83 c4 10 add $0x10,%esp +c020193b: 83 ec 04 sub $0x4,%esp +c020193e: 53 push %ebx +c020193f: 56 push %esi +c0201940: 50 push %eax +c0201941: e8 30 eb ff ff call c0200476 +c0201946: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/syscall.c:86 +c0201949: 8d 65 f8 lea -0x8(%ebp),%esp +c020194c: 5b pop %ebx +c020194d: 5e pop %esi +c020194e: 5d pop %ebp +c020194f: c3 ret + +c0201950 : +timecounter_inc(): +/media/unix/Data/Code/2020301918-os/kern/time.c:13 +c0201950: 55 push %ebp +c0201951: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/time.c:14 +c0201953: a1 88 ee 20 c0 mov 0xc020ee88,%eax +c0201958: 83 c0 01 add $0x1,%eax +c020195b: a3 88 ee 20 c0 mov %eax,0xc020ee88 +/media/unix/Data/Code/2020301918-os/kern/time.c:15 +c0201960: 90 nop +c0201961: 5d pop %ebp +c0201962: c3 ret + +c0201963 : +kern_get_ticks(): +/media/unix/Data/Code/2020301918-os/kern/time.c:22 +c0201963: 55 push %ebp +c0201964: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/time.c:23 +c0201966: a1 88 ee 20 c0 mov 0xc020ee88,%eax +/media/unix/Data/Code/2020301918-os/kern/time.c:24 +c020196b: 5d pop %ebp +c020196c: c3 ret + +c020196d : +do_get_ticks(): +/media/unix/Data/Code/2020301918-os/kern/time.c:28 +c020196d: 55 push %ebp +c020196e: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/kern/time.c:29 +c0201970: e8 ee ff ff ff call c0201963 +/media/unix/Data/Code/2020301918-os/kern/time.c:30 +c0201975: 5d pop %ebp +c0201976: c3 ret + +c0201977 : +inb(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:8 +c0201977: 55 push %ebp +c0201978: 89 e5 mov %esp,%ebp +c020197a: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/inc/x86.h:10 +c020197d: 8b 45 08 mov 0x8(%ebp),%eax +c0201980: 89 c2 mov %eax,%edx +c0201982: ec in (%dx),%al +c0201983: 88 45 ff mov %al,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:11 +c0201986: 0f b6 45 ff movzbl -0x1(%ebp),%eax +/media/unix/Data/Code/2020301918-os/inc/x86.h:12 +c020198a: c9 leave +c020198b: c3 ret + +c020198c : +outb(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:59 +c020198c: 55 push %ebp +c020198d: 89 e5 mov %esp,%ebp +c020198f: 83 ec 04 sub $0x4,%esp +c0201992: 8b 45 0c mov 0xc(%ebp),%eax +c0201995: 88 45 fc mov %al,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:60 +c0201998: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c020199c: 8b 55 08 mov 0x8(%ebp),%edx +c020199f: ee out %al,(%dx) +/media/unix/Data/Code/2020301918-os/inc/x86.h:61 +c02019a0: 90 nop +c02019a1: c9 leave +c02019a2: c3 ret + +c02019a3 : +rcr2(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:118 +c02019a3: 55 push %ebp +c02019a4: 89 e5 mov %esp,%ebp +c02019a6: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/inc/x86.h:120 +c02019a9: 0f 20 d0 mov %cr2,%eax +c02019ac: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:121 +c02019af: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/inc/x86.h:122 +c02019b2: c9 leave +c02019b3: c3 ret + +c02019b4 : +init_segment(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:107 +c02019b4: 55 push %ebp +c02019b5: 89 e5 mov %esp,%ebp +c02019b7: 83 ec 04 sub $0x4,%esp +c02019ba: 8b 45 14 mov 0x14(%ebp),%eax +c02019bd: 66 89 45 fc mov %ax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:108 +c02019c1: 8b 45 10 mov 0x10(%ebp),%eax +c02019c4: 89 c2 mov %eax,%edx +c02019c6: 8b 45 08 mov 0x8(%ebp),%eax +c02019c9: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:109 +c02019cc: 8b 45 0c mov 0xc(%ebp),%eax +c02019cf: 89 c2 mov %eax,%edx +c02019d1: 8b 45 08 mov 0x8(%ebp),%eax +c02019d4: 66 89 50 02 mov %dx,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:110 +c02019d8: 8b 45 0c mov 0xc(%ebp),%eax +c02019db: c1 e8 10 shr $0x10,%eax +c02019de: 89 c2 mov %eax,%edx +c02019e0: 8b 45 08 mov 0x8(%ebp),%eax +c02019e3: 88 50 04 mov %dl,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:111 +c02019e6: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c02019ea: 89 c2 mov %eax,%edx +c02019ec: 8b 45 08 mov 0x8(%ebp),%eax +c02019ef: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c02019f2: 8b 45 10 mov 0x10(%ebp),%eax +c02019f5: c1 e8 10 shr $0x10,%eax +c02019f8: 83 e0 0f and $0xf,%eax +c02019fb: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:113 +c02019fd: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0201a01: 66 c1 e8 08 shr $0x8,%ax +c0201a05: 83 e0 f0 and $0xfffffff0,%eax +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:112 +c0201a08: 09 c2 or %eax,%edx +c0201a0a: 8b 45 08 mov 0x8(%ebp),%eax +c0201a0d: 88 50 06 mov %dl,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:114 +c0201a10: 8b 45 0c mov 0xc(%ebp),%eax +c0201a13: c1 e8 18 shr $0x18,%eax +c0201a16: 89 c2 mov %eax,%edx +c0201a18: 8b 45 08 mov 0x8(%ebp),%eax +c0201a1b: 88 50 07 mov %dl,0x7(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:115 +c0201a1e: 90 nop +c0201a1f: c9 leave +c0201a20: c3 ret + +c0201a21 : +init_gate(): +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:119 +c0201a21: 55 push %ebp +c0201a22: 89 e5 mov %esp,%ebp +c0201a24: 83 ec 08 sub $0x8,%esp +c0201a27: 8b 55 0c mov 0xc(%ebp),%edx +c0201a2a: 8b 45 14 mov 0x14(%ebp),%eax +c0201a2d: 88 55 fc mov %dl,-0x4(%ebp) +c0201a30: 88 45 f8 mov %al,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:120 +c0201a33: 8b 45 10 mov 0x10(%ebp),%eax +c0201a36: 89 c2 mov %eax,%edx +c0201a38: 8b 45 08 mov 0x8(%ebp),%eax +c0201a3b: 66 89 10 mov %dx,(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:121 +c0201a3e: 8b 45 08 mov 0x8(%ebp),%eax +c0201a41: 66 c7 40 02 08 00 movw $0x8,0x2(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:122 +c0201a47: 8b 45 08 mov 0x8(%ebp),%eax +c0201a4a: c6 40 04 00 movb $0x0,0x4(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:123 +c0201a4e: 0f b6 45 f8 movzbl -0x8(%ebp),%eax +c0201a52: c1 e0 05 shl $0x5,%eax +c0201a55: 89 c2 mov %eax,%edx +c0201a57: 0f b6 45 fc movzbl -0x4(%ebp),%eax +c0201a5b: 09 d0 or %edx,%eax +c0201a5d: 89 c2 mov %eax,%edx +c0201a5f: 8b 45 08 mov 0x8(%ebp),%eax +c0201a62: 88 50 05 mov %dl,0x5(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:124 +c0201a65: 8b 45 10 mov 0x10(%ebp),%eax +c0201a68: c1 e8 10 shr $0x10,%eax +c0201a6b: 89 c2 mov %eax,%edx +c0201a6d: 8b 45 08 mov 0x8(%ebp),%eax +c0201a70: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/inc/kern/protect.h:125 +c0201a74: 90 nop +c0201a75: c9 leave +c0201a76: c3 ret + +c0201a77 : +enable_irq(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:43 +c0201a77: 55 push %ebp +c0201a78: 89 e5 mov %esp,%ebp +c0201a7a: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:44 +c0201a7d: 8b 45 08 mov 0x8(%ebp),%eax +c0201a80: 83 e0 07 and $0x7,%eax +c0201a83: ba 01 00 00 00 mov $0x1,%edx +c0201a88: 89 c1 mov %eax,%ecx +c0201a8a: d3 e2 shl %cl,%edx +c0201a8c: 89 d0 mov %edx,%eax +c0201a8e: 88 45 ff mov %al,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:45 +c0201a91: 83 7d 08 07 cmpl $0x7,0x8(%ebp) +c0201a95: 7f 24 jg c0201abb +/media/unix/Data/Code/2020301918-os/kern/trap.c:46 +c0201a97: 6a 21 push $0x21 +c0201a99: e8 d9 fe ff ff call c0201977 +c0201a9e: 83 c4 04 add $0x4,%esp +c0201aa1: 89 c2 mov %eax,%edx +c0201aa3: 0f b6 45 ff movzbl -0x1(%ebp),%eax +c0201aa7: f7 d0 not %eax +c0201aa9: 21 d0 and %edx,%eax +c0201aab: 0f b6 c0 movzbl %al,%eax +c0201aae: 50 push %eax +c0201aaf: 6a 21 push $0x21 +c0201ab1: e8 d6 fe ff ff call c020198c +c0201ab6: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:49 +c0201ab9: eb 28 jmp c0201ae3 +/media/unix/Data/Code/2020301918-os/kern/trap.c:48 +c0201abb: 68 a1 00 00 00 push $0xa1 +c0201ac0: e8 b2 fe ff ff call c0201977 +c0201ac5: 83 c4 04 add $0x4,%esp +c0201ac8: 89 c2 mov %eax,%edx +c0201aca: 0f b6 45 ff movzbl -0x1(%ebp),%eax +c0201ace: f7 d0 not %eax +c0201ad0: 21 d0 and %edx,%eax +c0201ad2: 0f b6 c0 movzbl %al,%eax +c0201ad5: 50 push %eax +c0201ad6: 68 a1 00 00 00 push $0xa1 +c0201adb: e8 ac fe ff ff call c020198c +c0201ae0: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:49 +c0201ae3: 90 nop +c0201ae4: c9 leave +c0201ae5: c3 ret + +c0201ae6 : +disable_irq(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:56 +c0201ae6: 55 push %ebp +c0201ae7: 89 e5 mov %esp,%ebp +c0201ae9: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:57 +c0201aec: 8b 45 08 mov 0x8(%ebp),%eax +c0201aef: 83 e0 07 and $0x7,%eax +c0201af2: ba 01 00 00 00 mov $0x1,%edx +c0201af7: 89 c1 mov %eax,%ecx +c0201af9: d3 e2 shl %cl,%edx +c0201afb: 89 d0 mov %edx,%eax +c0201afd: 88 45 ff mov %al,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:58 +c0201b00: 83 7d 08 07 cmpl $0x7,0x8(%ebp) +c0201b04: 7f 1d jg c0201b23 +/media/unix/Data/Code/2020301918-os/kern/trap.c:59 +c0201b06: 6a 21 push $0x21 +c0201b08: e8 6a fe ff ff call c0201977 +c0201b0d: 83 c4 04 add $0x4,%esp +c0201b10: 0a 45 ff or -0x1(%ebp),%al +c0201b13: 0f b6 c0 movzbl %al,%eax +c0201b16: 50 push %eax +c0201b17: 6a 21 push $0x21 +c0201b19: e8 6e fe ff ff call c020198c +c0201b1e: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:62 +c0201b21: eb 21 jmp c0201b44 +/media/unix/Data/Code/2020301918-os/kern/trap.c:61 +c0201b23: 68 a1 00 00 00 push $0xa1 +c0201b28: e8 4a fe ff ff call c0201977 +c0201b2d: 83 c4 04 add $0x4,%esp +c0201b30: 0a 45 ff or -0x1(%ebp),%al +c0201b33: 0f b6 c0 movzbl %al,%eax +c0201b36: 50 push %eax +c0201b37: 68 a1 00 00 00 push $0xa1 +c0201b3c: e8 4b fe ff ff call c020198c +c0201b41: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:62 +c0201b44: 90 nop +c0201b45: c9 leave +c0201b46: c3 ret + +c0201b47 : +default_interrupt_handler(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:69 +c0201b47: 55 push %ebp +c0201b48: 89 e5 mov %esp,%ebp +c0201b4a: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:70 +c0201b4d: ff 75 08 push 0x8(%ebp) +c0201b50: 68 a0 46 20 c0 push $0xc02046a0 +c0201b55: 6a 46 push $0x46 +c0201b57: 68 be 46 20 c0 push $0xc02046be +c0201b5c: e8 a1 f6 ff ff call c0201202 <_warn> +c0201b61: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:71 +c0201b64: 90 nop +c0201b65: c9 leave +c0201b66: c3 ret + +c0201b67 : +exception_handler(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:79 +c0201b67: 55 push %ebp +c0201b68: 89 e5 mov %esp,%ebp +c0201b6a: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:105 +c0201b6d: 83 7d 08 0e cmpl $0xe,0x8(%ebp) +c0201b71: 0f 85 3a 01 00 00 jne c0201cb1 +/media/unix/Data/Code/2020301918-os/kern/trap.c:106 +c0201b77: c7 45 f4 c0 ee 20 c0 movl $0xc020eec0,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:108 +c0201b7e: 8b 45 f4 mov -0xc(%ebp),%eax +c0201b81: 2d c0 ee 20 c0 sub $0xc020eec0,%eax +c0201b86: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/trap.c:107 +c0201b88: b8 ff 00 00 00 mov $0xff,%eax +c0201b8d: 29 d0 sub %edx,%eax +c0201b8f: 83 ec 04 sub $0x4,%esp +c0201b92: 68 cc 46 20 c0 push $0xc02046cc +c0201b97: 50 push %eax +c0201b98: ff 75 f4 push -0xc(%ebp) +c0201b9b: e8 be 14 00 00 call c020305e +c0201ba0: 83 c4 10 add $0x10,%esp +c0201ba3: 01 45 f4 add %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:111 +c0201ba6: 8b 45 f4 mov -0xc(%ebp),%eax +c0201ba9: 2d c0 ee 20 c0 sub $0xc020eec0,%eax +c0201bae: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/trap.c:110 +c0201bb0: b8 ff 00 00 00 mov $0xff,%eax +c0201bb5: 29 d0 sub %edx,%eax +c0201bb7: 83 ec 04 sub $0x4,%esp +c0201bba: 68 f4 46 20 c0 push $0xc02046f4 +c0201bbf: 50 push %eax +c0201bc0: ff 75 f4 push -0xc(%ebp) +c0201bc3: e8 96 14 00 00 call c020305e +c0201bc8: 83 c4 10 add $0x10,%esp +c0201bcb: 01 45 f4 add %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:113 +c0201bce: 8b 45 0c mov 0xc(%ebp),%eax +c0201bd1: 83 e0 01 and $0x1,%eax +c0201bd4: 85 c0 test %eax,%eax +c0201bd6: 75 28 jne c0201c00 +/media/unix/Data/Code/2020301918-os/kern/trap.c:115 +c0201bd8: 8b 45 f4 mov -0xc(%ebp),%eax +c0201bdb: 2d c0 ee 20 c0 sub $0xc020eec0,%eax +c0201be0: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/trap.c:114 +c0201be2: b8 ff 00 00 00 mov $0xff,%eax +c0201be7: 29 d0 sub %edx,%eax +c0201be9: 83 ec 04 sub $0x4,%esp +c0201bec: 68 2c 47 20 c0 push $0xc020472c +c0201bf1: 50 push %eax +c0201bf2: ff 75 f4 push -0xc(%ebp) +c0201bf5: e8 64 14 00 00 call c020305e +c0201bfa: 83 c4 10 add $0x10,%esp +c0201bfd: 01 45 f4 add %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:118 +c0201c00: 8b 45 0c mov 0xc(%ebp),%eax +c0201c03: 83 e0 02 and $0x2,%eax +c0201c06: 85 c0 test %eax,%eax +c0201c08: 74 2a je c0201c34 +/media/unix/Data/Code/2020301918-os/kern/trap.c:120 +c0201c0a: 8b 45 f4 mov -0xc(%ebp),%eax +c0201c0d: 2d c0 ee 20 c0 sub $0xc020eec0,%eax +c0201c12: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/trap.c:119 +c0201c14: b8 ff 00 00 00 mov $0xff,%eax +c0201c19: 29 d0 sub %edx,%eax +c0201c1b: 83 ec 04 sub $0x4,%esp +c0201c1e: 68 58 47 20 c0 push $0xc0204758 +c0201c23: 50 push %eax +c0201c24: ff 75 f4 push -0xc(%ebp) +c0201c27: e8 32 14 00 00 call c020305e +c0201c2c: 83 c4 10 add $0x10,%esp +c0201c2f: 01 45 f4 add %eax,-0xc(%ebp) +c0201c32: eb 28 jmp c0201c5c +/media/unix/Data/Code/2020301918-os/kern/trap.c:124 +c0201c34: 8b 45 f4 mov -0xc(%ebp),%eax +c0201c37: 2d c0 ee 20 c0 sub $0xc020eec0,%eax +c0201c3c: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/trap.c:123 +c0201c3e: b8 ff 00 00 00 mov $0xff,%eax +c0201c43: 29 d0 sub %edx,%eax +c0201c45: 83 ec 04 sub $0x4,%esp +c0201c48: 68 7c 47 20 c0 push $0xc020477c +c0201c4d: 50 push %eax +c0201c4e: ff 75 f4 push -0xc(%ebp) +c0201c51: e8 08 14 00 00 call c020305e +c0201c56: 83 c4 10 add $0x10,%esp +c0201c59: 01 45 f4 add %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:127 +c0201c5c: 8b 45 0c mov 0xc(%ebp),%eax +c0201c5f: 83 e0 04 and $0x4,%eax +c0201c62: 85 c0 test %eax,%eax +c0201c64: 74 28 je c0201c8e +/media/unix/Data/Code/2020301918-os/kern/trap.c:129 +c0201c66: 8b 45 f4 mov -0xc(%ebp),%eax +c0201c69: 2d c0 ee 20 c0 sub $0xc020eec0,%eax +c0201c6e: 89 c2 mov %eax,%edx +/media/unix/Data/Code/2020301918-os/kern/trap.c:128 +c0201c70: b8 ff 00 00 00 mov $0xff,%eax +c0201c75: 29 d0 sub %edx,%eax +c0201c77: 83 ec 04 sub $0x4,%esp +c0201c7a: 68 a0 47 20 c0 push $0xc02047a0 +c0201c7f: 50 push %eax +c0201c80: ff 75 f4 push -0xc(%ebp) +c0201c83: e8 d6 13 00 00 call c020305e +c0201c88: 83 c4 10 add $0x10,%esp +c0201c8b: 01 45 f4 add %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:132 +c0201c8e: e8 10 fd ff ff call c02019a3 +c0201c93: 83 ec 08 sub $0x8,%esp +c0201c96: 50 push %eax +c0201c97: ff 75 10 push 0x10(%ebp) +c0201c9a: ff 75 14 push 0x14(%ebp) +c0201c9d: 68 c0 ee 20 c0 push $0xc020eec0 +c0201ca2: 68 84 00 00 00 push $0x84 +c0201ca7: 68 be 46 20 c0 push $0xc02046be +c0201cac: e8 08 f5 ff ff call c02011b9 <_panic> +/media/unix/Data/Code/2020301918-os/kern/trap.c:134 +c0201cb1: 83 ec 04 sub $0x4,%esp +c0201cb4: 68 cc 47 20 c0 push $0xc02047cc +c0201cb9: 68 ff 00 00 00 push $0xff +c0201cbe: 68 c0 ee 20 c0 push $0xc020eec0 +c0201cc3: e8 96 13 00 00 call c020305e +c0201cc8: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:137 +c0201ccb: 8b 45 08 mov 0x8(%ebp),%eax +c0201cce: c1 e0 06 shl $0x6,%eax +c0201cd1: 05 a0 74 20 c0 add $0xc02074a0,%eax +c0201cd6: ff 75 0c push 0xc(%ebp) +c0201cd9: ff 75 10 push 0x10(%ebp) +c0201cdc: ff 75 14 push 0x14(%ebp) +c0201cdf: ff 75 18 push 0x18(%ebp) +c0201ce2: 50 push %eax +c0201ce3: 68 c0 ee 20 c0 push $0xc020eec0 +c0201ce8: 68 89 00 00 00 push $0x89 +c0201ced: 68 be 46 20 c0 push $0xc02046be +c0201cf2: e8 c2 f4 ff ff call c02011b9 <_panic> + +c0201cf7 : +clock_interrupt_handler(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:151 +c0201cf7: 55 push %ebp +c0201cf8: 89 e5 mov %esp,%ebp +c0201cfa: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:152 +c0201cfd: e8 4e fc ff ff call c0201950 +/media/unix/Data/Code/2020301918-os/kern/trap.c:154 +c0201d02: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201d07: 8b 50 78 mov 0x78(%eax),%edx +c0201d0a: 83 ea 01 sub $0x1,%edx +c0201d0d: 89 50 78 mov %edx,0x78(%eax) +c0201d10: 8b 40 78 mov 0x78(%eax),%eax +c0201d13: 85 c0 test %eax,%eax +c0201d15: 75 16 jne c0201d2d +/media/unix/Data/Code/2020301918-os/kern/trap.c:155 +c0201d17: 8b 15 e4 9d 20 c0 mov 0xc0209de4,%edx +c0201d1d: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201d22: 8b 52 74 mov 0x74(%edx),%edx +c0201d25: 89 50 78 mov %edx,0x78(%eax) +/media/unix/Data/Code/2020301918-os/kern/trap.c:156 +c0201d28: e8 03 f3 ff ff call c0201030 +/media/unix/Data/Code/2020301918-os/kern/trap.c:158 +c0201d2d: 90 nop +c0201d2e: c9 leave +c0201d2f: c3 ret + +c0201d30 : +kb_interrupt_handler(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:165 +c0201d30: 55 push %ebp +c0201d31: 89 e5 mov %esp,%ebp +c0201d33: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:166 +c0201d36: 6a 60 push $0x60 +c0201d38: e8 3a fc ff ff call c0201977 +c0201d3d: 83 c4 04 add $0x4,%esp +c0201d40: 88 45 f7 mov %al,-0x9(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:167 +c0201d43: 0f b6 45 f7 movzbl -0x9(%ebp),%eax +c0201d47: 84 c0 test %al,%al +c0201d49: 78 2c js c0201d77 +/media/unix/Data/Code/2020301918-os/kern/trap.c:169 +c0201d4b: 0f b6 45 f7 movzbl -0x9(%ebp),%eax +c0201d4f: 8b 04 85 a0 44 20 c0 mov -0x3fdfbb60(,%eax,4),%eax +c0201d56: 88 45 f7 mov %al,-0x9(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:170 +c0201d59: 80 7d f7 60 cmpb $0x60,-0x9(%ebp) +c0201d5d: 76 19 jbe c0201d78 +/media/unix/Data/Code/2020301918-os/kern/trap.c:170 (discriminator 1) +c0201d5f: 80 7d f7 7a cmpb $0x7a,-0x9(%ebp) +c0201d63: 77 13 ja c0201d78 +/media/unix/Data/Code/2020301918-os/kern/trap.c:171 +c0201d65: 0f b6 45 f7 movzbl -0x9(%ebp),%eax +c0201d69: 83 ec 0c sub $0xc,%esp +c0201d6c: 50 push %eax +c0201d6d: e8 c1 ea ff ff call c0200833 +c0201d72: 83 c4 10 add $0x10,%esp +c0201d75: eb 01 jmp c0201d78 +/media/unix/Data/Code/2020301918-os/kern/trap.c:168 +c0201d77: 90 nop +/media/unix/Data/Code/2020301918-os/kern/trap.c:172 +c0201d78: c9 leave +c0201d79: c3 ret + +c0201d7a : +syscall_handler(): +/media/unix/Data/Code/2020301918-os/kern/trap.c:179 +c0201d7a: 55 push %ebp +c0201d7b: 89 e5 mov %esp,%ebp +c0201d7d: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/kern/trap.c:180 +c0201d80: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201d85: 8b 40 2c mov 0x2c(%eax),%eax +c0201d88: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:181 +c0201d8b: 8b 45 f4 mov -0xc(%ebp),%eax +c0201d8e: 8b 04 85 34 74 20 c0 mov -0x3fdf8bcc(,%eax,4),%eax +c0201d95: ff d0 call *%eax +c0201d97: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/kern/trap.c:182 +c0201d9a: a1 e4 9d 20 c0 mov 0xc0209de4,%eax +c0201d9f: 8b 55 f0 mov -0x10(%ebp),%edx +c0201da2: 89 50 2c mov %edx,0x2c(%eax) +/media/unix/Data/Code/2020301918-os/kern/trap.c:183 +c0201da5: 90 nop +c0201da6: c9 leave +c0201da7: c3 ret + +c0201da8 : +xchg(): +/media/unix/Data/Code/2020301918-os/inc/x86.h:200 +c0201da8: 55 push %ebp +c0201da9: 89 e5 mov %esp,%ebp +c0201dab: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/inc/x86.h:204 +c0201dae: 8b 55 08 mov 0x8(%ebp),%edx +c0201db1: 8b 45 0c mov 0xc(%ebp),%eax +c0201db4: 8b 4d 08 mov 0x8(%ebp),%ecx +c0201db7: f0 87 02 lock xchg %eax,(%edx) +c0201dba: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/inc/x86.h:208 +c0201dbd: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/inc/x86.h:209 +c0201dc0: c9 leave +c0201dc1: c3 ret + +c0201dc2 : +write_to_terminal(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:13 +c0201dc2: 55 push %ebp +c0201dc3: 89 e5 mov %esp,%ebp +c0201dc5: 83 ec 08 sub $0x8,%esp +c0201dc8: 8b 55 08 mov 0x8(%ebp),%edx +c0201dcb: 8b 45 0c mov 0xc(%ebp),%eax +c0201dce: 66 89 55 fc mov %dx,-0x4(%ebp) +c0201dd2: 66 89 45 f8 mov %ax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:15 +c0201dd6: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0201dda: 8d 14 00 lea (%eax,%eax,1),%edx +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:14 +c0201ddd: 0f b7 45 f8 movzwl -0x8(%ebp),%eax +c0201de1: 65 66 89 02 mov %ax,%gs:(%edx) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:17 +c0201de5: 90 nop +c0201de6: c9 leave +c0201de7: c3 ret + +c0201de8 : +cursor_pos(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:46 +c0201de8: 55 push %ebp +c0201de9: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:47 +c0201deb: 8b 45 08 mov 0x8(%ebp),%eax +c0201dee: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201df2: 89 c2 mov %eax,%edx +c0201df4: 89 d0 mov %edx,%eax +c0201df6: c1 e0 02 shl $0x2,%eax +c0201df9: 01 d0 add %edx,%eax +c0201dfb: c1 e0 04 shl $0x4,%eax +c0201dfe: 89 c2 mov %eax,%edx +c0201e00: 8b 45 08 mov 0x8(%ebp),%eax +c0201e03: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201e07: 01 d0 add %edx,%eax +c0201e09: 83 e8 51 sub $0x51,%eax +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:48 +c0201e0c: 5d pop %ebp +c0201e0d: c3 ret + +c0201e0e : +cursor_move(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:52 +c0201e0e: 55 push %ebp +c0201e0f: 89 e5 mov %esp,%ebp +c0201e11: 83 ec 08 sub $0x8,%esp +c0201e14: 8b 55 08 mov 0x8(%ebp),%edx +c0201e17: 8b 45 0c mov 0xc(%ebp),%eax +c0201e1a: 66 89 55 fc mov %dx,-0x4(%ebp) +c0201e1e: 66 89 45 f8 mov %ax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:53 +c0201e22: 8b 45 10 mov 0x10(%ebp),%eax +c0201e25: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201e29: 89 c2 mov %eax,%edx +c0201e2b: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0201e2f: 01 d0 add %edx,%eax +c0201e31: 89 c2 mov %eax,%edx +c0201e33: 8b 45 10 mov 0x10(%ebp),%eax +c0201e36: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:54 +c0201e3a: 8b 45 10 mov 0x10(%ebp),%eax +c0201e3d: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201e41: 66 85 c0 test %ax,%ax +c0201e44: 7f 09 jg c0201e4f +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:55 +c0201e46: 8b 45 10 mov 0x10(%ebp),%eax +c0201e49: 66 c7 40 06 01 00 movw $0x1,0x6(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:56 +c0201e4f: 8b 45 10 mov 0x10(%ebp),%eax +c0201e52: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201e56: 66 83 f8 19 cmp $0x19,%ax +c0201e5a: 7e 09 jle c0201e65 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:57 +c0201e5c: 8b 45 10 mov 0x10(%ebp),%eax +c0201e5f: 66 c7 40 06 19 00 movw $0x19,0x6(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:59 +c0201e65: 8b 45 10 mov 0x10(%ebp),%eax +c0201e68: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201e6c: 89 c2 mov %eax,%edx +c0201e6e: 0f b7 45 f8 movzwl -0x8(%ebp),%eax +c0201e72: 01 d0 add %edx,%eax +c0201e74: 89 c2 mov %eax,%edx +c0201e76: 8b 45 10 mov 0x10(%ebp),%eax +c0201e79: 66 89 50 08 mov %dx,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:60 +c0201e7d: 8b 45 10 mov 0x10(%ebp),%eax +c0201e80: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201e84: 66 85 c0 test %ax,%ax +c0201e87: 7f 09 jg c0201e92 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:61 +c0201e89: 8b 45 10 mov 0x10(%ebp),%eax +c0201e8c: 66 c7 40 08 01 00 movw $0x1,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:62 +c0201e92: 8b 45 10 mov 0x10(%ebp),%eax +c0201e95: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201e99: 66 83 f8 50 cmp $0x50,%ax +c0201e9d: 7e 09 jle c0201ea8 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:63 +c0201e9f: 8b 45 10 mov 0x10(%ebp),%eax +c0201ea2: 66 c7 40 08 50 00 movw $0x50,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:64 +c0201ea8: 90 nop +c0201ea9: c9 leave +c0201eaa: c3 ret + +c0201eab : +cursor_move_pre(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:68 +c0201eab: 55 push %ebp +c0201eac: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:69 +c0201eae: 8b 45 08 mov 0x8(%ebp),%eax +c0201eb1: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201eb5: 66 83 f8 01 cmp $0x1,%ax +c0201eb9: 75 2b jne c0201ee6 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:70 +c0201ebb: 8b 45 08 mov 0x8(%ebp),%eax +c0201ebe: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201ec2: 66 83 f8 01 cmp $0x1,%ax +c0201ec6: 7e 31 jle c0201ef9 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:71 +c0201ec8: 8b 45 08 mov 0x8(%ebp),%eax +c0201ecb: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201ecf: 83 e8 01 sub $0x1,%eax +c0201ed2: 89 c2 mov %eax,%edx +c0201ed4: 8b 45 08 mov 0x8(%ebp),%eax +c0201ed7: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:72 +c0201edb: 8b 45 08 mov 0x8(%ebp),%eax +c0201ede: 66 c7 40 08 50 00 movw $0x50,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:77 +c0201ee4: eb 13 jmp c0201ef9 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:75 +c0201ee6: 8b 45 08 mov 0x8(%ebp),%eax +c0201ee9: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201eed: 83 e8 01 sub $0x1,%eax +c0201ef0: 89 c2 mov %eax,%edx +c0201ef2: 8b 45 08 mov 0x8(%ebp),%eax +c0201ef5: 66 89 50 08 mov %dx,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:77 +c0201ef9: 90 nop +c0201efa: 5d pop %ebp +c0201efb: c3 ret + +c0201efc : +cursor_move_nxt(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:81 +c0201efc: 55 push %ebp +c0201efd: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:82 +c0201eff: 8b 45 08 mov 0x8(%ebp),%eax +c0201f02: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201f06: 66 83 f8 50 cmp $0x50,%ax +c0201f0a: 75 2b jne c0201f37 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:83 +c0201f0c: 8b 45 08 mov 0x8(%ebp),%eax +c0201f0f: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201f13: 66 83 f8 18 cmp $0x18,%ax +c0201f17: 7f 31 jg c0201f4a +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:84 +c0201f19: 8b 45 08 mov 0x8(%ebp),%eax +c0201f1c: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0201f20: 83 c0 01 add $0x1,%eax +c0201f23: 89 c2 mov %eax,%edx +c0201f25: 8b 45 08 mov 0x8(%ebp),%eax +c0201f28: 66 89 50 06 mov %dx,0x6(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:85 +c0201f2c: 8b 45 08 mov 0x8(%ebp),%eax +c0201f2f: 66 c7 40 08 01 00 movw $0x1,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:90 +c0201f35: eb 13 jmp c0201f4a +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:88 +c0201f37: 8b 45 08 mov 0x8(%ebp),%eax +c0201f3a: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0201f3e: 83 c0 01 add $0x1,%eax +c0201f41: 89 c2 mov %eax,%edx +c0201f43: 8b 45 08 mov 0x8(%ebp),%eax +c0201f46: 66 89 50 08 mov %dx,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:90 +c0201f4a: 90 nop +c0201f4b: 5d pop %ebp +c0201f4c: c3 ret + +c0201f4d : +clear_screen(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:98 +c0201f4d: 55 push %ebp +c0201f4e: 89 e5 mov %esp,%ebp +c0201f50: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:99 +c0201f53: 66 c7 45 f8 20 0f movw $0xf20,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:100 +c0201f59: 8b 45 08 mov 0x8(%ebp),%eax +c0201f5c: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0201f60: 66 85 c0 test %ax,%ax +c0201f63: 75 3a jne c0201f9f +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:101 +c0201f65: ff 75 08 push 0x8(%ebp) +c0201f68: e8 7b fe ff ff call c0201de8 +c0201f6d: 83 c4 04 add $0x4,%esp +c0201f70: 66 89 45 fe mov %ax,-0x2(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:102 +c0201f74: eb 1c jmp c0201f92 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:103 +c0201f76: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c0201f7a: 0f b7 45 fe movzwl -0x2(%ebp),%eax +c0201f7e: 8d 48 01 lea 0x1(%eax),%ecx +c0201f81: 66 89 4d fe mov %cx,-0x2(%ebp) +c0201f85: 0f b7 c0 movzwl %ax,%eax +c0201f88: 52 push %edx +c0201f89: 50 push %eax +c0201f8a: e8 33 fe ff ff call c0201dc2 +c0201f8f: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:102 +c0201f92: 66 81 7d fe cf 07 cmpw $0x7cf,-0x2(%ebp) +c0201f98: 76 dc jbe c0201f76 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:114 +c0201f9a: e9 8e 00 00 00 jmp c020202d +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:104 +c0201f9f: 8b 45 08 mov 0x8(%ebp),%eax +c0201fa2: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0201fa6: 66 83 f8 01 cmp $0x1,%ax +c0201faa: 75 48 jne c0201ff4 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:105 +c0201fac: ff 75 08 push 0x8(%ebp) +c0201faf: e8 34 fe ff ff call c0201de8 +c0201fb4: 83 c4 04 add $0x4,%esp +c0201fb7: 66 89 45 fc mov %ax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:106 +c0201fbb: eb 1c jmp c0201fd9 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:107 +c0201fbd: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c0201fc1: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0201fc5: 8d 48 ff lea -0x1(%eax),%ecx +c0201fc8: 66 89 4d fc mov %cx,-0x4(%ebp) +c0201fcc: 0f b7 c0 movzwl %ax,%eax +c0201fcf: 52 push %edx +c0201fd0: 50 push %eax +c0201fd1: e8 ec fd ff ff call c0201dc2 +c0201fd6: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:106 +c0201fd9: 66 83 7d fc 00 cmpw $0x0,-0x4(%ebp) +c0201fde: 75 dd jne c0201fbd +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:108 +c0201fe0: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c0201fe4: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c0201fe8: 52 push %edx +c0201fe9: 50 push %eax +c0201fea: e8 d3 fd ff ff call c0201dc2 +c0201fef: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:114 +c0201ff2: eb 39 jmp c020202d +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:109 +c0201ff4: 8b 45 08 mov 0x8(%ebp),%eax +c0201ff7: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0201ffb: 66 83 f8 02 cmp $0x2,%ax +c0201fff: 75 2c jne c020202d +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:110 +c0202001: 66 c7 45 fa 00 00 movw $0x0,-0x6(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:111 +c0202007: eb 1c jmp c0202025 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:112 +c0202009: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c020200d: 0f b7 45 fa movzwl -0x6(%ebp),%eax +c0202011: 8d 48 01 lea 0x1(%eax),%ecx +c0202014: 66 89 4d fa mov %cx,-0x6(%ebp) +c0202018: 0f b7 c0 movzwl %ax,%eax +c020201b: 52 push %edx +c020201c: 50 push %eax +c020201d: e8 a0 fd ff ff call c0201dc2 +c0202022: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:111 +c0202025: 66 81 7d fa cf 07 cmpw $0x7cf,-0x6(%ebp) +c020202b: 76 dc jbe c0202009 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:114 +c020202d: 90 nop +c020202e: c9 leave +c020202f: c3 ret + +c0202030 : +clear_line(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:118 +c0202030: 55 push %ebp +c0202031: 89 e5 mov %esp,%ebp +c0202033: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:119 +c0202036: 66 c7 45 f8 20 0f movw $0xf20,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:120 +c020203c: 8b 45 08 mov 0x8(%ebp),%eax +c020203f: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202043: 66 85 c0 test %ax,%ax +c0202046: 75 5b jne c02020a3 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:121 +c0202048: ff 75 08 push 0x8(%ebp) +c020204b: e8 98 fd ff ff call c0201de8 +c0202050: 83 c4 04 add $0x4,%esp +c0202053: 66 89 45 fe mov %ax,-0x2(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:122 +c0202057: eb 1c jmp c0202075 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:123 +c0202059: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c020205d: 0f b7 45 fe movzwl -0x2(%ebp),%eax +c0202061: 8d 48 01 lea 0x1(%eax),%ecx +c0202064: 66 89 4d fe mov %cx,-0x2(%ebp) +c0202068: 0f b7 c0 movzwl %ax,%eax +c020206b: 52 push %edx +c020206c: 50 push %eax +c020206d: e8 50 fd ff ff call c0201dc2 +c0202072: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:122 +c0202075: 0f b7 4d fe movzwl -0x2(%ebp),%ecx +c0202079: 0f b7 c1 movzwl %cx,%eax +c020207c: 69 c0 cd cc 00 00 imul $0xcccd,%eax,%eax +c0202082: c1 e8 10 shr $0x10,%eax +c0202085: 89 c2 mov %eax,%edx +c0202087: 66 c1 ea 06 shr $0x6,%dx +c020208b: 89 d0 mov %edx,%eax +c020208d: c1 e0 02 shl $0x2,%eax +c0202090: 01 d0 add %edx,%eax +c0202092: c1 e0 04 shl $0x4,%eax +c0202095: 29 c1 sub %eax,%ecx +c0202097: 89 ca mov %ecx,%edx +c0202099: 66 85 d2 test %dx,%dx +c020209c: 75 bb jne c0202059 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:135 +c020209e: e9 e3 00 00 00 jmp c0202186 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:124 +c02020a3: 8b 45 08 mov 0x8(%ebp),%eax +c02020a6: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02020aa: 66 83 f8 01 cmp $0x1,%ax +c02020ae: 75 6a jne c020211a +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:125 +c02020b0: ff 75 08 push 0x8(%ebp) +c02020b3: e8 30 fd ff ff call c0201de8 +c02020b8: 83 c4 04 add $0x4,%esp +c02020bb: 66 89 45 fc mov %ax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:126 +c02020bf: eb 1c jmp c02020dd +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:127 +c02020c1: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c02020c5: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c02020c9: 8d 48 ff lea -0x1(%eax),%ecx +c02020cc: 66 89 4d fc mov %cx,-0x4(%ebp) +c02020d0: 0f b7 c0 movzwl %ax,%eax +c02020d3: 52 push %edx +c02020d4: 50 push %eax +c02020d5: e8 e8 fc ff ff call c0201dc2 +c02020da: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:126 +c02020dd: 0f b7 4d fc movzwl -0x4(%ebp),%ecx +c02020e1: 0f b7 c1 movzwl %cx,%eax +c02020e4: 69 c0 cd cc 00 00 imul $0xcccd,%eax,%eax +c02020ea: c1 e8 10 shr $0x10,%eax +c02020ed: 89 c2 mov %eax,%edx +c02020ef: 66 c1 ea 06 shr $0x6,%dx +c02020f3: 89 d0 mov %edx,%eax +c02020f5: c1 e0 02 shl $0x2,%eax +c02020f8: 01 d0 add %edx,%eax +c02020fa: c1 e0 04 shl $0x4,%eax +c02020fd: 29 c1 sub %eax,%ecx +c02020ff: 89 ca mov %ecx,%edx +c0202101: 66 85 d2 test %dx,%dx +c0202104: 75 bb jne c02020c1 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:128 +c0202106: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c020210a: 0f b7 45 fc movzwl -0x4(%ebp),%eax +c020210e: 52 push %edx +c020210f: 50 push %eax +c0202110: e8 ad fc ff ff call c0201dc2 +c0202115: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:135 +c0202118: eb 6c jmp c0202186 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:129 +c020211a: 8b 45 08 mov 0x8(%ebp),%eax +c020211d: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202121: 66 83 f8 02 cmp $0x2,%ax +c0202125: 75 5f jne c0202186 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:130 +c0202127: 8b 45 08 mov 0x8(%ebp),%eax +c020212a: 0f b7 40 06 movzwl 0x6(%eax),%eax +c020212e: 89 c2 mov %eax,%edx +c0202130: 89 d0 mov %edx,%eax +c0202132: c1 e0 02 shl $0x2,%eax +c0202135: 01 d0 add %edx,%eax +c0202137: c1 e0 04 shl $0x4,%eax +c020213a: 83 e8 50 sub $0x50,%eax +c020213d: 66 89 45 fa mov %ax,-0x6(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:132 (discriminator 1) +c0202141: 0f b7 55 f8 movzwl -0x8(%ebp),%edx +c0202145: 0f b7 45 fa movzwl -0x6(%ebp),%eax +c0202149: 8d 48 01 lea 0x1(%eax),%ecx +c020214c: 66 89 4d fa mov %cx,-0x6(%ebp) +c0202150: 0f b7 c0 movzwl %ax,%eax +c0202153: 52 push %edx +c0202154: 50 push %eax +c0202155: e8 68 fc ff ff call c0201dc2 +c020215a: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:133 (discriminator 1) +c020215d: 0f b7 4d fa movzwl -0x6(%ebp),%ecx +c0202161: 0f b7 c1 movzwl %cx,%eax +c0202164: 69 c0 cd cc 00 00 imul $0xcccd,%eax,%eax +c020216a: c1 e8 10 shr $0x10,%eax +c020216d: 89 c2 mov %eax,%edx +c020216f: 66 c1 ea 06 shr $0x6,%dx +c0202173: 89 d0 mov %edx,%eax +c0202175: c1 e0 02 shl $0x2,%eax +c0202178: 01 d0 add %edx,%eax +c020217a: c1 e0 04 shl $0x4,%eax +c020217d: 29 c1 sub %eax,%ecx +c020217f: 89 ca mov %ecx,%edx +c0202181: 66 85 d2 test %dx,%dx +c0202184: 75 bb jne c0202141 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:135 +c0202186: 90 nop +c0202187: c9 leave +c0202188: c3 ret + +c0202189 : +scroll(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:139 +c0202189: 55 push %ebp +c020218a: 89 e5 mov %esp,%ebp +c020218c: 83 ec 58 sub $0x58,%esp +c020218f: 8b 45 08 mov 0x8(%ebp),%eax +c0202192: 66 89 45 b4 mov %ax,-0x4c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:140 +c0202196: 0f b7 45 b4 movzwl -0x4c(%ebp),%eax +c020219a: 66 89 45 f6 mov %ax,-0xa(%ebp) +c020219e: c7 45 f0 19 00 00 00 movl $0x19,-0x10(%ebp) +c02021a5: 0f bf 55 f6 movswl -0xa(%ebp),%edx +c02021a9: 8b 45 f0 mov -0x10(%ebp),%eax +c02021ac: 39 c2 cmp %eax,%edx +c02021ae: 0f 4e c2 cmovle %edx,%eax +c02021b1: 66 89 45 b4 mov %ax,-0x4c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:141 +c02021b5: 0f b7 45 b4 movzwl -0x4c(%ebp),%eax +c02021b9: 66 89 45 ee mov %ax,-0x12(%ebp) +c02021bd: c7 45 e8 e7 ff ff ff movl $0xffffffe7,-0x18(%ebp) +c02021c4: 0f bf 55 ee movswl -0x12(%ebp),%edx +c02021c8: 8b 45 e8 mov -0x18(%ebp),%eax +c02021cb: 39 c2 cmp %eax,%edx +c02021cd: 0f 4d c2 cmovge %edx,%eax +c02021d0: 66 89 45 b4 mov %ax,-0x4c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:143 +c02021d4: 66 83 7d b4 00 cmpw $0x0,-0x4c(%ebp) +c02021d9: 7e 7c jle c0202257 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:144 +c02021db: c7 45 cc 00 00 00 00 movl $0x0,-0x34(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:145 +c02021e2: 81 45 cc 00 80 0b 0c addl $0xc0b8000,-0x34(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:146 +c02021e9: 0f b7 45 b4 movzwl -0x4c(%ebp),%eax +c02021ed: 0f b7 d0 movzwl %ax,%edx +c02021f0: 89 d0 mov %edx,%eax +c02021f2: c1 e0 02 shl $0x2,%eax +c02021f5: 01 d0 add %edx,%eax +c02021f7: c1 e0 05 shl $0x5,%eax +c02021fa: 89 45 c8 mov %eax,-0x38(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:147 +c02021fd: 81 45 c8 00 80 0b 0c addl $0xc0b8000,-0x38(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:148 +c0202204: 0f bf 55 b4 movswl -0x4c(%ebp),%edx +c0202208: 89 d0 mov %edx,%eax +c020220a: c1 e0 02 shl $0x2,%eax +c020220d: 01 d0 add %edx,%eax +c020220f: c1 e0 05 shl $0x5,%eax +c0202212: 89 45 c4 mov %eax,-0x3c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:149 +c0202215: b8 a0 0f 00 00 mov $0xfa0,%eax +c020221a: 2b 45 c4 sub -0x3c(%ebp),%eax +c020221d: 89 45 c0 mov %eax,-0x40(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:151 +c0202220: 83 ec 04 sub $0x4,%esp +c0202223: ff 75 c0 push -0x40(%ebp) +c0202226: ff 75 c8 push -0x38(%ebp) +c0202229: ff 75 cc push -0x34(%ebp) +c020222c: e8 14 10 00 00 call c0203245 +c0202231: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:153 +c0202234: 8b 55 cc mov -0x34(%ebp),%edx +c0202237: 8b 45 c0 mov -0x40(%ebp),%eax +c020223a: 01 d0 add %edx,%eax +c020223c: 89 45 bc mov %eax,-0x44(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:154 +c020223f: 83 ec 04 sub $0x4,%esp +c0202242: ff 75 c4 push -0x3c(%ebp) +c0202245: 6a 00 push $0x0 +c0202247: ff 75 bc push -0x44(%ebp) +c020224a: e8 c5 0f 00 00 call c0203214 +c020224f: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:169 +c0202252: e9 83 00 00 00 jmp c02022da +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:155 +c0202257: 66 83 7d b4 00 cmpw $0x0,-0x4c(%ebp) +c020225c: 79 7c jns c02022da +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:156 +c020225e: 0f b7 45 b4 movzwl -0x4c(%ebp),%eax +c0202262: f7 d8 neg %eax +c0202264: 66 89 45 e6 mov %ax,-0x1a(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:157 +c0202268: 0f b7 45 e6 movzwl -0x1a(%ebp),%eax +c020226c: 0f b7 d0 movzwl %ax,%edx +c020226f: 89 d0 mov %edx,%eax +c0202271: c1 e0 02 shl $0x2,%eax +c0202274: 01 d0 add %edx,%eax +c0202276: c1 e0 05 shl $0x5,%eax +c0202279: 89 45 e0 mov %eax,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:158 +c020227c: 81 45 e0 00 80 0b 0c addl $0xc0b8000,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:159 +c0202283: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:160 +c020228a: 81 45 dc 00 80 0b 0c addl $0xc0b8000,-0x24(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:161 +c0202291: 0f bf 55 e6 movswl -0x1a(%ebp),%edx +c0202295: 89 d0 mov %edx,%eax +c0202297: c1 e0 02 shl $0x2,%eax +c020229a: 01 d0 add %edx,%eax +c020229c: c1 e0 05 shl $0x5,%eax +c020229f: 89 45 d8 mov %eax,-0x28(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:162 +c02022a2: b8 a0 0f 00 00 mov $0xfa0,%eax +c02022a7: 2b 45 d8 sub -0x28(%ebp),%eax +c02022aa: 89 45 d4 mov %eax,-0x2c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:164 +c02022ad: 83 ec 04 sub $0x4,%esp +c02022b0: ff 75 d4 push -0x2c(%ebp) +c02022b3: ff 75 dc push -0x24(%ebp) +c02022b6: ff 75 e0 push -0x20(%ebp) +c02022b9: e8 87 0f 00 00 call c0203245 +c02022be: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:166 +c02022c1: 8b 45 dc mov -0x24(%ebp),%eax +c02022c4: 89 45 d0 mov %eax,-0x30(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:167 +c02022c7: 83 ec 04 sub $0x4,%esp +c02022ca: ff 75 d8 push -0x28(%ebp) +c02022cd: 6a 00 push $0x0 +c02022cf: ff 75 d0 push -0x30(%ebp) +c02022d2: e8 3d 0f 00 00 call c0203214 +c02022d7: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:169 +c02022da: 90 nop +c02022db: c9 leave +c02022dc: c3 ret + +c02022dd : +param12vga_color(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:173 +c02022dd: 55 push %ebp +c02022de: 89 e5 mov %esp,%ebp +c02022e0: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:174 +c02022e3: 8b 45 08 mov 0x8(%ebp),%eax +c02022e6: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02022ea: 83 e0 01 and $0x1,%eax +c02022ed: 88 45 ff mov %al,-0x1(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:175 +c02022f0: 8b 45 08 mov 0x8(%ebp),%eax +c02022f3: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02022f7: 83 e0 06 and $0x6,%eax +c02022fa: 89 c2 mov %eax,%edx +c02022fc: 8b 45 08 mov 0x8(%ebp),%eax +c02022ff: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:176 +c0202303: 8b 45 08 mov 0x8(%ebp),%eax +c0202306: 0f b7 50 14 movzwl 0x14(%eax),%edx +c020230a: 8b 45 08 mov 0x8(%ebp),%eax +c020230d: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202311: 66 c1 f8 02 sar $0x2,%ax +c0202315: 09 c2 or %eax,%edx +c0202317: 8b 45 08 mov 0x8(%ebp),%eax +c020231a: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:177 +c020231e: 8b 45 08 mov 0x8(%ebp),%eax +c0202321: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202325: 83 e0 03 and $0x3,%eax +c0202328: 89 c2 mov %eax,%edx +c020232a: 8b 45 08 mov 0x8(%ebp),%eax +c020232d: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:178 +c0202331: 8b 45 08 mov 0x8(%ebp),%eax +c0202334: 0f b7 50 14 movzwl 0x14(%eax),%edx +c0202338: 0f b6 45 ff movzbl -0x1(%ebp),%eax +c020233c: c1 e0 02 shl $0x2,%eax +c020233f: 09 c2 or %eax,%edx +c0202341: 8b 45 08 mov 0x8(%ebp),%eax +c0202344: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:179 +c0202348: 90 nop +c0202349: c9 leave +c020234a: c3 ret + +c020234b : +set_color(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:183 +c020234b: 55 push %ebp +c020234c: 89 e5 mov %esp,%ebp +c020234e: 83 ec 08 sub $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:184 +c0202351: 8b 45 08 mov 0x8(%ebp),%eax +c0202354: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202358: 66 85 c0 test %ax,%ax +c020235b: 75 0e jne c020236b +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:185 +c020235d: 8b 45 08 mov 0x8(%ebp),%eax +c0202360: 66 c7 40 04 00 0f movw $0xf00,0x4(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:211 +c0202366: e9 1e 02 00 00 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:186 +c020236b: 8b 45 08 mov 0x8(%ebp),%eax +c020236e: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202372: 66 83 f8 01 cmp $0x1,%ax +c0202376: 75 19 jne c0202391 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:187 +c0202378: 8b 45 08 mov 0x8(%ebp),%eax +c020237b: 0f b7 40 04 movzwl 0x4(%eax),%eax +c020237f: 66 0d 00 88 or $0x8800,%ax +c0202383: 89 c2 mov %eax,%edx +c0202385: 8b 45 08 mov 0x8(%ebp),%eax +c0202388: 66 89 50 04 mov %dx,0x4(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:211 +c020238c: e9 f8 01 00 00 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:188 +c0202391: 8b 45 08 mov 0x8(%ebp),%eax +c0202394: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202398: 66 83 f8 02 cmp $0x2,%ax +c020239c: 75 19 jne c02023b7 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:189 +c020239e: 8b 45 08 mov 0x8(%ebp),%eax +c02023a1: 0f b7 40 04 movzwl 0x4(%eax),%eax +c02023a5: 66 25 00 77 and $0x7700,%ax +c02023a9: 89 c2 mov %eax,%edx +c02023ab: 8b 45 08 mov 0x8(%ebp),%eax +c02023ae: 66 89 50 04 mov %dx,0x4(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:211 +c02023b2: e9 d2 01 00 00 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:190 +c02023b7: 8b 45 08 mov 0x8(%ebp),%eax +c02023ba: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02023be: 66 83 f8 1d cmp $0x1d,%ax +c02023c2: 7e 58 jle c020241c +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:190 (discriminator 1) +c02023c4: 8b 45 08 mov 0x8(%ebp),%eax +c02023c7: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02023cb: 66 83 f8 25 cmp $0x25,%ax +c02023cf: 7f 4b jg c020241c +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:191 +c02023d1: 8b 45 08 mov 0x8(%ebp),%eax +c02023d4: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02023d8: 83 e8 1e sub $0x1e,%eax +c02023db: 89 c2 mov %eax,%edx +c02023dd: 8b 45 08 mov 0x8(%ebp),%eax +c02023e0: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:192 +c02023e4: ff 75 08 push 0x8(%ebp) +c02023e7: e8 f1 fe ff ff call c02022dd +c02023ec: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:193 +c02023ef: 8b 45 08 mov 0x8(%ebp),%eax +c02023f2: 0f b7 40 04 movzwl 0x4(%eax),%eax +c02023f6: 80 e4 f8 and $0xf8,%ah +c02023f9: 89 c2 mov %eax,%edx +c02023fb: 8b 45 08 mov 0x8(%ebp),%eax +c02023fe: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202402: 0f b7 c0 movzwl %ax,%eax +c0202405: c1 e0 08 shl $0x8,%eax +c0202408: 66 25 00 0f and $0xf00,%ax +c020240c: 09 d0 or %edx,%eax +c020240e: 89 c2 mov %eax,%edx +c0202410: 8b 45 08 mov 0x8(%ebp),%eax +c0202413: 66 89 50 04 mov %dx,0x4(%eax) +c0202417: e9 6d 01 00 00 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:194 +c020241c: 8b 45 08 mov 0x8(%ebp),%eax +c020241f: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202423: 66 83 f8 27 cmp $0x27,%ax +c0202427: 7e 54 jle c020247d +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:194 (discriminator 1) +c0202429: 8b 45 08 mov 0x8(%ebp),%eax +c020242c: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202430: 66 83 f8 2f cmp $0x2f,%ax +c0202434: 7f 47 jg c020247d +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:195 +c0202436: 8b 45 08 mov 0x8(%ebp),%eax +c0202439: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020243d: 83 e8 28 sub $0x28,%eax +c0202440: 89 c2 mov %eax,%edx +c0202442: 8b 45 08 mov 0x8(%ebp),%eax +c0202445: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:196 +c0202449: ff 75 08 push 0x8(%ebp) +c020244c: e8 8c fe ff ff call c02022dd +c0202451: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:197 +c0202454: 8b 45 08 mov 0x8(%ebp),%eax +c0202457: 0f b7 40 04 movzwl 0x4(%eax),%eax +c020245b: 80 e4 8f and $0x8f,%ah +c020245e: 89 c2 mov %eax,%edx +c0202460: 8b 45 08 mov 0x8(%ebp),%eax +c0202463: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202467: 0f b7 c0 movzwl %ax,%eax +c020246a: c1 e0 0c shl $0xc,%eax +c020246d: 09 d0 or %edx,%eax +c020246f: 89 c2 mov %eax,%edx +c0202471: 8b 45 08 mov 0x8(%ebp),%eax +c0202474: 66 89 50 04 mov %dx,0x4(%eax) +c0202478: e9 0c 01 00 00 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:198 +c020247d: 8b 45 08 mov 0x8(%ebp),%eax +c0202480: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202484: 66 83 f8 59 cmp $0x59,%ax +c0202488: 7e 6b jle c02024f5 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:198 (discriminator 1) +c020248a: 8b 45 08 mov 0x8(%ebp),%eax +c020248d: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202491: 66 83 f8 61 cmp $0x61,%ax +c0202495: 7f 5e jg c02024f5 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:199 +c0202497: 8b 45 08 mov 0x8(%ebp),%eax +c020249a: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020249e: 83 e8 5a sub $0x5a,%eax +c02024a1: 89 c2 mov %eax,%edx +c02024a3: 8b 45 08 mov 0x8(%ebp),%eax +c02024a6: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:200 +c02024aa: ff 75 08 push 0x8(%ebp) +c02024ad: e8 2b fe ff ff call c02022dd +c02024b2: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:201 +c02024b5: 8b 45 08 mov 0x8(%ebp),%eax +c02024b8: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02024bc: 83 c8 08 or $0x8,%eax +c02024bf: 89 c2 mov %eax,%edx +c02024c1: 8b 45 08 mov 0x8(%ebp),%eax +c02024c4: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:202 +c02024c8: 8b 45 08 mov 0x8(%ebp),%eax +c02024cb: 0f b7 40 04 movzwl 0x4(%eax),%eax +c02024cf: 80 e4 f0 and $0xf0,%ah +c02024d2: 89 c2 mov %eax,%edx +c02024d4: 8b 45 08 mov 0x8(%ebp),%eax +c02024d7: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02024db: 0f b7 c0 movzwl %ax,%eax +c02024de: c1 e0 08 shl $0x8,%eax +c02024e1: 66 25 00 0f and $0xf00,%ax +c02024e5: 09 d0 or %edx,%eax +c02024e7: 89 c2 mov %eax,%edx +c02024e9: 8b 45 08 mov 0x8(%ebp),%eax +c02024ec: 66 89 50 04 mov %dx,0x4(%eax) +c02024f0: e9 94 00 00 00 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:203 +c02024f5: 8b 45 08 mov 0x8(%ebp),%eax +c02024f8: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02024fc: 66 83 f8 63 cmp $0x63,%ax +c0202500: 7e 65 jle c0202567 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:203 (discriminator 1) +c0202502: 8b 45 08 mov 0x8(%ebp),%eax +c0202505: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202509: 66 83 f8 6b cmp $0x6b,%ax +c020250d: 7f 58 jg c0202567 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:204 +c020250f: 8b 45 08 mov 0x8(%ebp),%eax +c0202512: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202516: 83 e8 64 sub $0x64,%eax +c0202519: 89 c2 mov %eax,%edx +c020251b: 8b 45 08 mov 0x8(%ebp),%eax +c020251e: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:205 +c0202522: ff 75 08 push 0x8(%ebp) +c0202525: e8 b3 fd ff ff call c02022dd +c020252a: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:206 +c020252d: 8b 45 08 mov 0x8(%ebp),%eax +c0202530: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202534: 83 c8 08 or $0x8,%eax +c0202537: 89 c2 mov %eax,%edx +c0202539: 8b 45 08 mov 0x8(%ebp),%eax +c020253c: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:207 +c0202540: 8b 45 08 mov 0x8(%ebp),%eax +c0202543: 0f b7 40 04 movzwl 0x4(%eax),%eax +c0202547: 66 25 ff 0f and $0xfff,%ax +c020254b: 89 c2 mov %eax,%edx +c020254d: 8b 45 08 mov 0x8(%ebp),%eax +c0202550: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202554: 0f b7 c0 movzwl %ax,%eax +c0202557: c1 e0 0c shl $0xc,%eax +c020255a: 09 d0 or %edx,%eax +c020255c: 89 c2 mov %eax,%edx +c020255e: 8b 45 08 mov 0x8(%ebp),%eax +c0202561: 66 89 50 04 mov %dx,0x4(%eax) +c0202565: eb 22 jmp c0202589 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:209 +c0202567: 8b 45 08 mov 0x8(%ebp),%eax +c020256a: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020256e: 98 cwtl +c020256f: 50 push %eax +c0202570: 68 14 48 20 c0 push $0xc0204814 +c0202575: 68 d1 00 00 00 push $0xd1 +c020257a: 68 27 48 20 c0 push $0xc0204827 +c020257f: e8 7e ec ff ff call c0201202 <_warn> +c0202584: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:211 +c0202587: eb 00 jmp c0202589 +c0202589: 90 nop +c020258a: c9 leave +c020258b: c3 ret + +c020258c : +CSI_handler(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:215 +c020258c: 55 push %ebp +c020258d: 89 e5 mov %esp,%ebp +c020258f: 53 push %ebx +c0202590: 83 ec 14 sub $0x14,%esp +c0202593: 8b 45 08 mov 0x8(%ebp),%eax +c0202596: 88 45 f4 mov %al,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:216 +c0202599: 8b 45 0c mov 0xc(%ebp),%eax +c020259c: c7 40 10 00 00 00 00 movl $0x0,0x10(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:218 +c02025a3: 0f b6 45 f4 movzbl -0xc(%ebp),%eax +c02025a7: 83 e8 41 sub $0x41,%eax +c02025aa: 83 f8 2c cmp $0x2c,%eax +c02025ad: 0f 87 47 02 00 00 ja c02027fa +c02025b3: 8b 04 85 50 48 20 c0 mov -0x3fdfb7b0(,%eax,4),%eax +c02025ba: ff e0 jmp *%eax +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:220 +c02025bc: 8b 45 0c mov 0xc(%ebp),%eax +c02025bf: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02025c3: 66 85 c0 test %ax,%ax +c02025c6: 75 09 jne c02025d1 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:221 +c02025c8: 8b 45 0c mov 0xc(%ebp),%eax +c02025cb: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:222 +c02025d1: 8b 45 0c mov 0xc(%ebp),%eax +c02025d4: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02025d8: f7 d8 neg %eax +c02025da: 98 cwtl +c02025db: ff 75 0c push 0xc(%ebp) +c02025de: 6a 00 push $0x0 +c02025e0: 50 push %eax +c02025e1: e8 28 f8 ff ff call c0201e0e +c02025e6: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:223 +c02025e9: e9 29 02 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:225 +c02025ee: 8b 45 0c mov 0xc(%ebp),%eax +c02025f1: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02025f5: 66 85 c0 test %ax,%ax +c02025f8: 75 09 jne c0202603 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:226 +c02025fa: 8b 45 0c mov 0xc(%ebp),%eax +c02025fd: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:227 +c0202603: 8b 45 0c mov 0xc(%ebp),%eax +c0202606: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020260a: 98 cwtl +c020260b: ff 75 0c push 0xc(%ebp) +c020260e: 6a 00 push $0x0 +c0202610: 50 push %eax +c0202611: e8 f8 f7 ff ff call c0201e0e +c0202616: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:228 +c0202619: e9 f9 01 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:230 +c020261e: 8b 45 0c mov 0xc(%ebp),%eax +c0202621: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202625: 66 85 c0 test %ax,%ax +c0202628: 75 09 jne c0202633 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:231 +c020262a: 8b 45 0c mov 0xc(%ebp),%eax +c020262d: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:232 +c0202633: 8b 45 0c mov 0xc(%ebp),%eax +c0202636: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020263a: 98 cwtl +c020263b: ff 75 0c push 0xc(%ebp) +c020263e: 50 push %eax +c020263f: 6a 00 push $0x0 +c0202641: e8 c8 f7 ff ff call c0201e0e +c0202646: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:233 +c0202649: e9 c9 01 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:235 +c020264e: 8b 45 0c mov 0xc(%ebp),%eax +c0202651: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202655: 66 85 c0 test %ax,%ax +c0202658: 75 09 jne c0202663 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:236 +c020265a: 8b 45 0c mov 0xc(%ebp),%eax +c020265d: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:237 +c0202663: 8b 45 0c mov 0xc(%ebp),%eax +c0202666: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020266a: f7 d8 neg %eax +c020266c: 98 cwtl +c020266d: ff 75 0c push 0xc(%ebp) +c0202670: 50 push %eax +c0202671: 6a 00 push $0x0 +c0202673: e8 96 f7 ff ff call c0201e0e +c0202678: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:238 +c020267b: e9 97 01 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:240 +c0202680: 8b 45 0c mov 0xc(%ebp),%eax +c0202683: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202687: 66 85 c0 test %ax,%ax +c020268a: 75 09 jne c0202695 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:241 +c020268c: 8b 45 0c mov 0xc(%ebp),%eax +c020268f: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:242 +c0202695: 8b 45 0c mov 0xc(%ebp),%eax +c0202698: 0f b7 40 08 movzwl 0x8(%eax),%eax +c020269c: 89 c2 mov %eax,%edx +c020269e: b8 01 00 00 00 mov $0x1,%eax +c02026a3: 29 d0 sub %edx,%eax +c02026a5: 0f bf d0 movswl %ax,%edx +c02026a8: 8b 45 0c mov 0xc(%ebp),%eax +c02026ab: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02026af: 98 cwtl +c02026b0: ff 75 0c push 0xc(%ebp) +c02026b3: 52 push %edx +c02026b4: 50 push %eax +c02026b5: e8 54 f7 ff ff call c0201e0e +c02026ba: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:243 +c02026bd: e9 55 01 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:245 +c02026c2: 8b 45 0c mov 0xc(%ebp),%eax +c02026c5: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02026c9: 66 85 c0 test %ax,%ax +c02026cc: 75 09 jne c02026d7 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:246 +c02026ce: 8b 45 0c mov 0xc(%ebp),%eax +c02026d1: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:247 +c02026d7: 8b 45 0c mov 0xc(%ebp),%eax +c02026da: 0f b7 40 08 movzwl 0x8(%eax),%eax +c02026de: 89 c2 mov %eax,%edx +c02026e0: b8 01 00 00 00 mov $0x1,%eax +c02026e5: 29 d0 sub %edx,%eax +c02026e7: 0f bf d0 movswl %ax,%edx +c02026ea: 8b 45 0c mov 0xc(%ebp),%eax +c02026ed: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02026f1: f7 d8 neg %eax +c02026f3: 98 cwtl +c02026f4: ff 75 0c push 0xc(%ebp) +c02026f7: 52 push %edx +c02026f8: 50 push %eax +c02026f9: e8 10 f7 ff ff call c0201e0e +c02026fe: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:248 +c0202701: e9 11 01 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:250 +c0202706: 8b 45 0c mov 0xc(%ebp),%eax +c0202709: 0f b7 40 14 movzwl 0x14(%eax),%eax +c020270d: 66 85 c0 test %ax,%ax +c0202710: 75 09 jne c020271b +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:251 +c0202712: 8b 45 0c mov 0xc(%ebp),%eax +c0202715: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:252 +c020271b: 8b 45 0c mov 0xc(%ebp),%eax +c020271e: 0f b7 40 16 movzwl 0x16(%eax),%eax +c0202722: 66 85 c0 test %ax,%ax +c0202725: 75 09 jne c0202730 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:253 +c0202727: 8b 45 0c mov 0xc(%ebp),%eax +c020272a: 66 c7 40 16 01 00 movw $0x1,0x16(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:255 +c0202730: 8b 45 0c mov 0xc(%ebp),%eax +c0202733: 0f b7 40 16 movzwl 0x16(%eax),%eax +c0202737: 89 c2 mov %eax,%edx +c0202739: 8b 45 0c mov 0xc(%ebp),%eax +c020273c: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0202740: 89 c1 mov %eax,%ecx +c0202742: 89 d0 mov %edx,%eax +c0202744: 29 c8 sub %ecx,%eax +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:254 +c0202746: 0f bf d0 movswl %ax,%edx +c0202749: 8b 45 0c mov 0xc(%ebp),%eax +c020274c: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202750: 89 c1 mov %eax,%ecx +c0202752: 8b 45 0c mov 0xc(%ebp),%eax +c0202755: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0202759: 89 c3 mov %eax,%ebx +c020275b: 89 c8 mov %ecx,%eax +c020275d: 29 d8 sub %ebx,%eax +c020275f: 98 cwtl +c0202760: ff 75 0c push 0xc(%ebp) +c0202763: 52 push %edx +c0202764: 50 push %eax +c0202765: e8 a4 f6 ff ff call c0201e0e +c020276a: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:256 +c020276d: e9 a5 00 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:258 +c0202772: ff 75 0c push 0xc(%ebp) +c0202775: e8 d3 f7 ff ff call c0201f4d +c020277a: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:259 +c020277d: e9 95 00 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:261 +c0202782: ff 75 0c push 0xc(%ebp) +c0202785: e8 a6 f8 ff ff call c0202030 +c020278a: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:262 +c020278d: e9 85 00 00 00 jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:264 +c0202792: 8b 45 0c mov 0xc(%ebp),%eax +c0202795: 0f b7 40 14 movzwl 0x14(%eax),%eax +c0202799: 66 85 c0 test %ax,%ax +c020279c: 75 09 jne c02027a7 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:265 +c020279e: 8b 45 0c mov 0xc(%ebp),%eax +c02027a1: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:266 +c02027a7: 8b 45 0c mov 0xc(%ebp),%eax +c02027aa: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02027ae: 98 cwtl +c02027af: 83 ec 0c sub $0xc,%esp +c02027b2: 50 push %eax +c02027b3: e8 d1 f9 ff ff call c0202189 +c02027b8: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:267 +c02027bb: eb 5a jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:269 +c02027bd: 8b 45 0c mov 0xc(%ebp),%eax +c02027c0: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02027c4: 66 85 c0 test %ax,%ax +c02027c7: 75 09 jne c02027d2 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:270 +c02027c9: 8b 45 0c mov 0xc(%ebp),%eax +c02027cc: 66 c7 40 14 01 00 movw $0x1,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:271 +c02027d2: 8b 45 0c mov 0xc(%ebp),%eax +c02027d5: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02027d9: f7 d8 neg %eax +c02027db: 98 cwtl +c02027dc: 83 ec 0c sub $0xc,%esp +c02027df: 50 push %eax +c02027e0: e8 a4 f9 ff ff call c0202189 +c02027e5: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:272 +c02027e8: eb 2d jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:274 +c02027ea: 83 ec 0c sub $0xc,%esp +c02027ed: ff 75 0c push 0xc(%ebp) +c02027f0: e8 56 fb ff ff call c020234b +c02027f5: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:275 +c02027f8: eb 1d jmp c0202817 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:277 +c02027fa: 0f b6 45 f4 movzbl -0xc(%ebp),%eax +c02027fe: 50 push %eax +c02027ff: 68 3b 48 20 c0 push $0xc020483b +c0202804: 68 15 01 00 00 push $0x115 +c0202809: 68 27 48 20 c0 push $0xc0204827 +c020280e: e8 ef e9 ff ff call c0201202 <_warn> +c0202813: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:278 +c0202816: 90 nop +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:280 +c0202817: 90 nop +c0202818: 8b 5d fc mov -0x4(%ebp),%ebx +c020281b: c9 leave +c020281c: c3 ret + +c020281d : +kprintfputch(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:284 +c020281d: 55 push %ebp +c020281e: 89 e5 mov %esp,%ebp +c0202820: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:285 +c0202823: 81 65 08 ff 00 00 00 andl $0xff,0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:286 +c020282a: 8b 45 0c mov 0xc(%ebp),%eax +c020282d: 8b 40 0c mov 0xc(%eax),%eax +c0202830: 8d 50 01 lea 0x1(%eax),%edx +c0202833: 8b 45 0c mov 0xc(%ebp),%eax +c0202836: 89 50 0c mov %edx,0xc(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:289 +c0202839: 8b 45 0c mov 0xc(%ebp),%eax +c020283c: 8b 40 10 mov 0x10(%eax),%eax +c020283f: 85 c0 test %eax,%eax +c0202841: 0f 85 1b 01 00 00 jne c0202962 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:290 +c0202847: 83 7d 08 1b cmpl $0x1b,0x8(%ebp) +c020284b: 0f 84 a4 00 00 00 je c02028f5 +c0202851: 83 7d 08 1b cmpl $0x1b,0x8(%ebp) +c0202855: 0f 8f ae 00 00 00 jg c0202909 +c020285b: 83 7d 08 0a cmpl $0xa,0x8(%ebp) +c020285f: 74 70 je c02028d1 +c0202861: 83 7d 08 0a cmpl $0xa,0x8(%ebp) +c0202865: 0f 8f 9e 00 00 00 jg c0202909 +c020286b: 83 7d 08 08 cmpl $0x8,0x8(%ebp) +c020286f: 74 0b je c020287c +c0202871: 83 7d 08 09 cmpl $0x9,0x8(%ebp) +c0202875: 74 15 je c020288c +c0202877: e9 8d 00 00 00 jmp c0202909 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:292 +c020287c: ff 75 0c push 0xc(%ebp) +c020287f: e8 27 f6 ff ff call c0201eab +c0202884: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:293 +c0202887: e9 ec 01 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:295 +c020288c: ff 75 0c push 0xc(%ebp) +c020288f: e8 54 f5 ff ff call c0201de8 +c0202894: 83 c4 04 add $0x4,%esp +c0202897: 66 3d cf 07 cmp $0x7cf,%ax +c020289b: 0f 84 d0 01 00 00 je c0202a71 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:297 +c02028a1: eb 0b jmp c02028ae +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:298 +c02028a3: ff 75 0c push 0xc(%ebp) +c02028a6: e8 51 f6 ff ff call c0201efc +c02028ab: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:297 +c02028ae: 8b 45 0c mov 0xc(%ebp),%eax +c02028b1: 0f b7 40 08 movzwl 0x8(%eax),%eax +c02028b5: 89 c2 mov %eax,%edx +c02028b7: 66 c1 fa 0f sar $0xf,%dx +c02028bb: 66 c1 ea 0e shr $0xe,%dx +c02028bf: 01 d0 add %edx,%eax +c02028c1: 83 e0 03 and $0x3,%eax +c02028c4: 29 d0 sub %edx,%eax +c02028c6: 66 83 f8 01 cmp $0x1,%ax +c02028ca: 75 d7 jne c02028a3 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:299 +c02028cc: e9 a7 01 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:301 +c02028d1: 8b 45 0c mov 0xc(%ebp),%eax +c02028d4: 0f b7 40 08 movzwl 0x8(%eax),%eax +c02028d8: 89 c2 mov %eax,%edx +c02028da: b8 01 00 00 00 mov $0x1,%eax +c02028df: 29 d0 sub %edx,%eax +c02028e1: 98 cwtl +c02028e2: ff 75 0c push 0xc(%ebp) +c02028e5: 50 push %eax +c02028e6: 6a 01 push $0x1 +c02028e8: e8 21 f5 ff ff call c0201e0e +c02028ed: 83 c4 0c add $0xc,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:302 +c02028f0: e9 83 01 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:304 +c02028f5: 8b 45 0c mov 0xc(%ebp),%eax +c02028f8: 8b 40 10 mov 0x10(%eax),%eax +c02028fb: 8d 50 01 lea 0x1(%eax),%edx +c02028fe: 8b 45 0c mov 0xc(%ebp),%eax +c0202901: 89 50 10 mov %edx,0x10(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:305 +c0202904: e9 6f 01 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:308 +c0202909: 8b 45 0c mov 0xc(%ebp),%eax +c020290c: 0f b7 40 06 movzwl 0x6(%eax),%eax +c0202910: 89 c2 mov %eax,%edx +c0202912: 89 d0 mov %edx,%eax +c0202914: c1 e0 02 shl $0x2,%eax +c0202917: 01 d0 add %edx,%eax +c0202919: c1 e0 04 shl $0x4,%eax +c020291c: 89 c2 mov %eax,%edx +c020291e: 8b 45 0c mov 0xc(%ebp),%eax +c0202921: 0f b7 40 08 movzwl 0x8(%eax),%eax +c0202925: 01 d0 add %edx,%eax +c0202927: 83 e8 51 sub $0x51,%eax +c020292a: 66 89 45 f6 mov %ax,-0xa(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:309 +c020292e: 8b 45 0c mov 0xc(%ebp),%eax +c0202931: 0f b7 40 04 movzwl 0x4(%eax),%eax +c0202935: 89 c2 mov %eax,%edx +c0202937: 8b 45 08 mov 0x8(%ebp),%eax +c020293a: 09 d0 or %edx,%eax +c020293c: 66 89 45 f4 mov %ax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:310 +c0202940: 0f b7 55 f4 movzwl -0xc(%ebp),%edx +c0202944: 0f b7 45 f6 movzwl -0xa(%ebp),%eax +c0202948: 52 push %edx +c0202949: 50 push %eax +c020294a: e8 73 f4 ff ff call c0201dc2 +c020294f: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:311 +c0202952: ff 75 0c push 0xc(%ebp) +c0202955: e8 a2 f5 ff ff call c0201efc +c020295a: 83 c4 04 add $0x4,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:312 +c020295d: e9 16 01 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:315 +c0202962: 8b 45 0c mov 0xc(%ebp),%eax +c0202965: 8b 40 10 mov 0x10(%eax),%eax +c0202968: 83 f8 01 cmp $0x1,%eax +c020296b: 75 40 jne c02029ad +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:316 +c020296d: 83 7d 08 5b cmpl $0x5b,0x8(%ebp) +c0202971: 75 2b jne c020299e +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:318 +c0202973: 8b 45 0c mov 0xc(%ebp),%eax +c0202976: 8b 40 10 mov 0x10(%eax),%eax +c0202979: 8d 50 01 lea 0x1(%eax),%edx +c020297c: 8b 45 0c mov 0xc(%ebp),%eax +c020297f: 89 50 10 mov %edx,0x10(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:319 +c0202982: 8b 45 0c mov 0xc(%ebp),%eax +c0202985: 66 c7 40 16 00 00 movw $0x0,0x16(%eax) +c020298b: 8b 45 0c mov 0xc(%ebp),%eax +c020298e: 0f b7 50 16 movzwl 0x16(%eax),%edx +c0202992: 8b 45 0c mov 0xc(%ebp),%eax +c0202995: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:320 +c0202999: e9 da 00 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:322 +c020299e: 8b 45 0c mov 0xc(%ebp),%eax +c02029a1: c7 40 10 00 00 00 00 movl $0x0,0x10(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:323 +c02029a8: e9 cb 00 00 00 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:326 +c02029ad: 83 7d 08 39 cmpl $0x39,0x8(%ebp) +c02029b1: 7f 08 jg c02029bb +c02029b3: 83 7d 08 30 cmpl $0x30,0x8(%ebp) +c02029b7: 7d 0a jge c02029c3 +c02029b9: eb 7d jmp c0202a38 +c02029bb: 83 7d 08 3b cmpl $0x3b,0x8(%ebp) +c02029bf: 74 66 je c0202a27 +c02029c1: eb 75 jmp c0202a38 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:337 +c02029c3: 8b 45 0c mov 0xc(%ebp),%eax +c02029c6: 8b 40 10 mov 0x10(%eax),%eax +c02029c9: 83 f8 02 cmp $0x2,%eax +c02029cc: 75 27 jne c02029f5 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:338 +c02029ce: 8b 45 0c mov 0xc(%ebp),%eax +c02029d1: 0f b7 40 14 movzwl 0x14(%eax),%eax +c02029d5: 89 c2 mov %eax,%edx +c02029d7: 89 d0 mov %edx,%eax +c02029d9: c1 e0 02 shl $0x2,%eax +c02029dc: 01 d0 add %edx,%eax +c02029de: 01 c0 add %eax,%eax +c02029e0: 89 c2 mov %eax,%edx +c02029e2: 8b 45 08 mov 0x8(%ebp),%eax +c02029e5: 01 d0 add %edx,%eax +c02029e7: 83 e8 30 sub $0x30,%eax +c02029ea: 89 c2 mov %eax,%edx +c02029ec: 8b 45 0c mov 0xc(%ebp),%eax +c02029ef: 66 89 50 14 mov %dx,0x14(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:343 +c02029f3: eb 7f jmp c0202a74 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:339 +c02029f5: 8b 45 0c mov 0xc(%ebp),%eax +c02029f8: 8b 40 10 mov 0x10(%eax),%eax +c02029fb: 83 f8 03 cmp $0x3,%eax +c02029fe: 75 74 jne c0202a74 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:340 +c0202a00: 8b 45 0c mov 0xc(%ebp),%eax +c0202a03: 0f b7 40 16 movzwl 0x16(%eax),%eax +c0202a07: 89 c2 mov %eax,%edx +c0202a09: 89 d0 mov %edx,%eax +c0202a0b: c1 e0 02 shl $0x2,%eax +c0202a0e: 01 d0 add %edx,%eax +c0202a10: 01 c0 add %eax,%eax +c0202a12: 89 c2 mov %eax,%edx +c0202a14: 8b 45 08 mov 0x8(%ebp),%eax +c0202a17: 01 d0 add %edx,%eax +c0202a19: 83 e8 30 sub $0x30,%eax +c0202a1c: 89 c2 mov %eax,%edx +c0202a1e: 8b 45 0c mov 0xc(%ebp),%eax +c0202a21: 66 89 50 16 mov %dx,0x16(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:343 +c0202a25: eb 4d jmp c0202a74 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:345 +c0202a27: 8b 45 0c mov 0xc(%ebp),%eax +c0202a2a: 8b 40 10 mov 0x10(%eax),%eax +c0202a2d: 8d 50 01 lea 0x1(%eax),%edx +c0202a30: 8b 45 0c mov 0xc(%ebp),%eax +c0202a33: 89 50 10 mov %edx,0x10(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:346 +c0202a36: eb 40 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:348 +c0202a38: 83 7d 08 1f cmpl $0x1f,0x8(%ebp) +c0202a3c: 7e 06 jle c0202a44 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:348 (discriminator 1) +c0202a3e: 83 7d 08 7e cmpl $0x7e,0x8(%ebp) +c0202a42: 7e 0a jle c0202a4e +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:349 +c0202a44: 8b 45 0c mov 0xc(%ebp),%eax +c0202a47: c7 40 10 00 00 00 00 movl $0x0,0x10(%eax) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:350 +c0202a4e: 83 7d 08 3f cmpl $0x3f,0x8(%ebp) +c0202a52: 7e 23 jle c0202a77 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:350 (discriminator 1) +c0202a54: 83 7d 08 7e cmpl $0x7e,0x8(%ebp) +c0202a58: 7f 1d jg c0202a77 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:351 +c0202a5a: 8b 45 08 mov 0x8(%ebp),%eax +c0202a5d: 0f b6 c0 movzbl %al,%eax +c0202a60: 83 ec 08 sub $0x8,%esp +c0202a63: ff 75 0c push 0xc(%ebp) +c0202a66: 50 push %eax +c0202a67: e8 20 fb ff ff call c020258c +c0202a6c: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:352 +c0202a6f: eb 06 jmp c0202a77 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:296 +c0202a71: 90 nop +c0202a72: eb 04 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:343 +c0202a74: 90 nop +c0202a75: eb 01 jmp c0202a78 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:352 +c0202a77: 90 nop +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:355 +c0202a78: 90 nop +c0202a79: c9 leave +c0202a7a: c3 ret + +c0202a7b : +vkprintf(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:359 +c0202a7b: 55 push %ebp +c0202a7c: 89 e5 mov %esp,%ebp +c0202a7e: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:360 +c0202a81: 90 nop +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:360 (discriminator 1) +c0202a82: 6a 01 push $0x1 +c0202a84: 68 a0 79 20 c0 push $0xc02079a0 +c0202a89: e8 1a f3 ff ff call c0201da8 +c0202a8e: 83 c4 08 add $0x8,%esp +c0202a91: 83 f8 01 cmp $0x1,%eax +c0202a94: 74 ec je c0202a82 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:362 +c0202a96: c7 05 ac 79 20 c0 00 movl $0x0,0xc02079ac +c0202a9d: 00 00 00 +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:363 +c0202aa0: ff 75 0c push 0xc(%ebp) +c0202aa3: ff 75 08 push 0x8(%ebp) +c0202aa6: 68 a0 79 20 c0 push $0xc02079a0 +c0202aab: 68 1d 28 20 c0 push $0xc020281d +c0202ab0: e8 92 01 00 00 call c0202c47 +c0202ab5: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:365 +c0202ab8: a1 ac 79 20 c0 mov 0xc02079ac,%eax +c0202abd: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:366 +c0202ac0: 83 ec 08 sub $0x8,%esp +c0202ac3: 6a 00 push $0x0 +c0202ac5: 68 a0 79 20 c0 push $0xc02079a0 +c0202aca: e8 d9 f2 ff ff call c0201da8 +c0202acf: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:368 +c0202ad2: 8b 45 f4 mov -0xc(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:369 +c0202ad5: c9 leave +c0202ad6: c3 ret + +c0202ad7 : +kprintf(): +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:420 +c0202ad7: 55 push %ebp +c0202ad8: 89 e5 mov %esp,%ebp +c0202ada: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:424 +c0202add: 8d 45 0c lea 0xc(%ebp),%eax +c0202ae0: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:425 +c0202ae3: 8b 45 f0 mov -0x10(%ebp),%eax +c0202ae6: 83 ec 08 sub $0x8,%esp +c0202ae9: 50 push %eax +c0202aea: ff 75 08 push 0x8(%ebp) +c0202aed: e8 89 ff ff ff call c0202a7b +c0202af2: 83 c4 10 add $0x10,%esp +c0202af5: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:428 +c0202af8: 8b 45 f4 mov -0xc(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/kern/terminal.c:429 +c0202afb: c9 leave +c0202afc: c3 ret + +c0202afd : +printnum(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:19 +c0202afd: 55 push %ebp +c0202afe: 89 e5 mov %esp,%ebp +c0202b00: 53 push %ebx +c0202b01: 83 ec 14 sub $0x14,%esp +c0202b04: 8b 45 10 mov 0x10(%ebp),%eax +c0202b07: 89 45 f0 mov %eax,-0x10(%ebp) +c0202b0a: 8b 45 14 mov 0x14(%ebp),%eax +c0202b0d: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:21 +c0202b10: 8b 45 18 mov 0x18(%ebp),%eax +c0202b13: ba 00 00 00 00 mov $0x0,%edx +c0202b18: 8b 4d f4 mov -0xc(%ebp),%ecx +c0202b1b: 39 45 f0 cmp %eax,-0x10(%ebp) +c0202b1e: 19 d1 sbb %edx,%ecx +c0202b20: 72 4b jb c0202b6d +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:22 +c0202b22: 8b 45 1c mov 0x1c(%ebp),%eax +c0202b25: 8d 58 ff lea -0x1(%eax),%ebx +c0202b28: 8b 45 18 mov 0x18(%ebp),%eax +c0202b2b: ba 00 00 00 00 mov $0x0,%edx +c0202b30: 52 push %edx +c0202b31: 50 push %eax +c0202b32: ff 75 f4 push -0xc(%ebp) +c0202b35: ff 75 f0 push -0x10(%ebp) +c0202b38: e8 93 07 00 00 call c02032d0 <__udivdi3> +c0202b3d: 83 c4 10 add $0x10,%esp +c0202b40: 83 ec 04 sub $0x4,%esp +c0202b43: ff 75 20 push 0x20(%ebp) +c0202b46: 53 push %ebx +c0202b47: ff 75 18 push 0x18(%ebp) +c0202b4a: 52 push %edx +c0202b4b: 50 push %eax +c0202b4c: ff 75 0c push 0xc(%ebp) +c0202b4f: ff 75 08 push 0x8(%ebp) +c0202b52: e8 a6 ff ff ff call c0202afd +c0202b57: 83 c4 20 add $0x20,%esp +c0202b5a: eb 1b jmp c0202b77 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:26 +c0202b5c: 83 ec 08 sub $0x8,%esp +c0202b5f: ff 75 0c push 0xc(%ebp) +c0202b62: ff 75 20 push 0x20(%ebp) +c0202b65: 8b 45 08 mov 0x8(%ebp),%eax +c0202b68: ff d0 call *%eax +c0202b6a: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:25 +c0202b6d: 83 6d 1c 01 subl $0x1,0x1c(%ebp) +c0202b71: 83 7d 1c 00 cmpl $0x0,0x1c(%ebp) +c0202b75: 7f e5 jg c0202b5c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:30 +c0202b77: 8b 4d 18 mov 0x18(%ebp),%ecx +c0202b7a: bb 00 00 00 00 mov $0x0,%ebx +c0202b7f: 8b 45 f0 mov -0x10(%ebp),%eax +c0202b82: 8b 55 f4 mov -0xc(%ebp),%edx +c0202b85: 53 push %ebx +c0202b86: 51 push %ecx +c0202b87: 52 push %edx +c0202b88: 50 push %eax +c0202b89: e8 62 08 00 00 call c02033f0 <__umoddi3> +c0202b8e: 83 c4 10 add $0x10,%esp +c0202b91: 05 04 49 20 c0 add $0xc0204904,%eax +c0202b96: 0f b6 00 movzbl (%eax),%eax +c0202b99: 0f be c0 movsbl %al,%eax +c0202b9c: 83 ec 08 sub $0x8,%esp +c0202b9f: ff 75 0c push 0xc(%ebp) +c0202ba2: 50 push %eax +c0202ba3: 8b 45 08 mov 0x8(%ebp),%eax +c0202ba6: ff d0 call *%eax +c0202ba8: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:31 +c0202bab: 90 nop +c0202bac: 8b 5d fc mov -0x4(%ebp),%ebx +c0202baf: c9 leave +c0202bb0: c3 ret + +c0202bb1 : +getuint(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:37 +c0202bb1: 55 push %ebp +c0202bb2: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:38 +c0202bb4: 83 7d 0c 01 cmpl $0x1,0xc(%ebp) +c0202bb8: 7e 14 jle c0202bce +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:39 +c0202bba: 8b 45 08 mov 0x8(%ebp),%eax +c0202bbd: 8b 00 mov (%eax),%eax +c0202bbf: 8d 48 08 lea 0x8(%eax),%ecx +c0202bc2: 8b 55 08 mov 0x8(%ebp),%edx +c0202bc5: 89 0a mov %ecx,(%edx) +c0202bc7: 8b 50 04 mov 0x4(%eax),%edx +c0202bca: 8b 00 mov (%eax),%eax +c0202bcc: eb 30 jmp c0202bfe +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:40 +c0202bce: 83 7d 0c 00 cmpl $0x0,0xc(%ebp) +c0202bd2: 74 16 je c0202bea +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:41 +c0202bd4: 8b 45 08 mov 0x8(%ebp),%eax +c0202bd7: 8b 00 mov (%eax),%eax +c0202bd9: 8d 48 04 lea 0x4(%eax),%ecx +c0202bdc: 8b 55 08 mov 0x8(%ebp),%edx +c0202bdf: 89 0a mov %ecx,(%edx) +c0202be1: 8b 00 mov (%eax),%eax +c0202be3: ba 00 00 00 00 mov $0x0,%edx +c0202be8: eb 14 jmp c0202bfe +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:43 +c0202bea: 8b 45 08 mov 0x8(%ebp),%eax +c0202bed: 8b 00 mov (%eax),%eax +c0202bef: 8d 48 04 lea 0x4(%eax),%ecx +c0202bf2: 8b 55 08 mov 0x8(%ebp),%edx +c0202bf5: 89 0a mov %ecx,(%edx) +c0202bf7: 8b 00 mov (%eax),%eax +c0202bf9: ba 00 00 00 00 mov $0x0,%edx +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:44 +c0202bfe: 5d pop %ebp +c0202bff: c3 ret + +c0202c00 : +getint(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:50 +c0202c00: 55 push %ebp +c0202c01: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:51 +c0202c03: 83 7d 0c 01 cmpl $0x1,0xc(%ebp) +c0202c07: 7e 14 jle c0202c1d +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:52 +c0202c09: 8b 45 08 mov 0x8(%ebp),%eax +c0202c0c: 8b 00 mov (%eax),%eax +c0202c0e: 8d 48 08 lea 0x8(%eax),%ecx +c0202c11: 8b 55 08 mov 0x8(%ebp),%edx +c0202c14: 89 0a mov %ecx,(%edx) +c0202c16: 8b 50 04 mov 0x4(%eax),%edx +c0202c19: 8b 00 mov (%eax),%eax +c0202c1b: eb 28 jmp c0202c45 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:53 +c0202c1d: 83 7d 0c 00 cmpl $0x0,0xc(%ebp) +c0202c21: 74 12 je c0202c35 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:54 +c0202c23: 8b 45 08 mov 0x8(%ebp),%eax +c0202c26: 8b 00 mov (%eax),%eax +c0202c28: 8d 48 04 lea 0x4(%eax),%ecx +c0202c2b: 8b 55 08 mov 0x8(%ebp),%edx +c0202c2e: 89 0a mov %ecx,(%edx) +c0202c30: 8b 00 mov (%eax),%eax +c0202c32: 99 cltd +c0202c33: eb 10 jmp c0202c45 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:56 +c0202c35: 8b 45 08 mov 0x8(%ebp),%eax +c0202c38: 8b 00 mov (%eax),%eax +c0202c3a: 8d 48 04 lea 0x4(%eax),%ecx +c0202c3d: 8b 55 08 mov 0x8(%ebp),%edx +c0202c40: 89 0a mov %ecx,(%edx) +c0202c42: 8b 00 mov (%eax),%eax +c0202c44: 99 cltd +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:57 +c0202c45: 5d pop %ebp +c0202c46: c3 ret + +c0202c47 : +vprintfmt(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:64 +c0202c47: 55 push %ebp +c0202c48: 89 e5 mov %esp,%ebp +c0202c4a: 56 push %esi +c0202c4b: 53 push %ebx +c0202c4c: 83 ec 20 sub $0x20,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:72 +c0202c4f: eb 17 jmp c0202c68 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:73 +c0202c51: 85 db test %ebx,%ebx +c0202c53: 0f 84 4d 03 00 00 je c0202fa6 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:75 +c0202c59: 83 ec 08 sub $0x8,%esp +c0202c5c: ff 75 0c push 0xc(%ebp) +c0202c5f: 53 push %ebx +c0202c60: 8b 45 08 mov 0x8(%ebp),%eax +c0202c63: ff d0 call *%eax +c0202c65: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:72 +c0202c68: 8b 45 10 mov 0x10(%ebp),%eax +c0202c6b: 8d 50 01 lea 0x1(%eax),%edx +c0202c6e: 89 55 10 mov %edx,0x10(%ebp) +c0202c71: 0f b6 00 movzbl (%eax),%eax +c0202c74: 0f b6 d8 movzbl %al,%ebx +c0202c77: 83 fb 25 cmp $0x25,%ebx +c0202c7a: 75 d5 jne c0202c51 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:79 +c0202c7c: c6 45 db 20 movb $0x20,-0x25(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:80 +c0202c80: c7 45 e4 ff ff ff ff movl $0xffffffff,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:81 +c0202c87: c7 45 e0 ff ff ff ff movl $0xffffffff,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:82 +c0202c8e: c7 45 e8 00 00 00 00 movl $0x0,-0x18(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:83 +c0202c95: c7 45 dc 00 00 00 00 movl $0x0,-0x24(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:85 +c0202c9c: 8b 45 10 mov 0x10(%ebp),%eax +c0202c9f: 8d 50 01 lea 0x1(%eax),%edx +c0202ca2: 89 55 10 mov %edx,0x10(%ebp) +c0202ca5: 0f b6 00 movzbl (%eax),%eax +c0202ca8: 0f b6 d8 movzbl %al,%ebx +c0202cab: 8d 43 dd lea -0x23(%ebx),%eax +c0202cae: 83 f8 55 cmp $0x55,%eax +c0202cb1: 0f 87 c2 02 00 00 ja c0202f79 +c0202cb7: 8b 04 85 1c 49 20 c0 mov -0x3fdfb6e4(,%eax,4),%eax +c0202cbe: ff e0 jmp *%eax +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:89 +c0202cc0: c6 45 db 2d movb $0x2d,-0x25(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:90 +c0202cc4: eb d6 jmp c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:94 +c0202cc6: c6 45 db 30 movb $0x30,-0x25(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:95 +c0202cca: eb d0 jmp c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:107 +c0202ccc: c7 45 e0 00 00 00 00 movl $0x0,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:108 +c0202cd3: 8b 55 e0 mov -0x20(%ebp),%edx +c0202cd6: 89 d0 mov %edx,%eax +c0202cd8: c1 e0 02 shl $0x2,%eax +c0202cdb: 01 d0 add %edx,%eax +c0202cdd: 01 c0 add %eax,%eax +c0202cdf: 01 d8 add %ebx,%eax +c0202ce1: 83 e8 30 sub $0x30,%eax +c0202ce4: 89 45 e0 mov %eax,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:109 +c0202ce7: 8b 45 10 mov 0x10(%ebp),%eax +c0202cea: 0f b6 00 movzbl (%eax),%eax +c0202ced: 0f be d8 movsbl %al,%ebx +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:110 +c0202cf0: 83 fb 2f cmp $0x2f,%ebx +c0202cf3: 7e 39 jle c0202d2e +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:110 (discriminator 1) +c0202cf5: 83 fb 39 cmp $0x39,%ebx +c0202cf8: 7f 34 jg c0202d2e +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:107 +c0202cfa: 83 45 10 01 addl $0x1,0x10(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:108 +c0202cfe: eb d3 jmp c0202cd3 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:116 +c0202d00: 8b 45 14 mov 0x14(%ebp),%eax +c0202d03: 8d 50 04 lea 0x4(%eax),%edx +c0202d06: 89 55 14 mov %edx,0x14(%ebp) +c0202d09: 8b 00 mov (%eax),%eax +c0202d0b: 89 45 e0 mov %eax,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:117 +c0202d0e: eb 1f jmp c0202d2f +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:120 +c0202d10: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp) +c0202d14: 79 86 jns c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:121 +c0202d16: c7 45 e4 00 00 00 00 movl $0x0,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:122 +c0202d1d: e9 7a ff ff ff jmp c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:125 +c0202d22: c7 45 dc 01 00 00 00 movl $0x1,-0x24(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:126 +c0202d29: e9 6e ff ff ff jmp c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:113 +c0202d2e: 90 nop +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:129 +c0202d2f: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp) +c0202d33: 0f 89 63 ff ff ff jns c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:130 +c0202d39: 8b 45 e0 mov -0x20(%ebp),%eax +c0202d3c: 89 45 e4 mov %eax,-0x1c(%ebp) +c0202d3f: c7 45 e0 ff ff ff ff movl $0xffffffff,-0x20(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:131 +c0202d46: e9 51 ff ff ff jmp c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:135 +c0202d4b: 83 45 e8 01 addl $0x1,-0x18(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:136 +c0202d4f: e9 48 ff ff ff jmp c0202c9c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:140 +c0202d54: 8b 45 14 mov 0x14(%ebp),%eax +c0202d57: 8d 50 04 lea 0x4(%eax),%edx +c0202d5a: 89 55 14 mov %edx,0x14(%ebp) +c0202d5d: 8b 00 mov (%eax),%eax +c0202d5f: 83 ec 08 sub $0x8,%esp +c0202d62: ff 75 0c push 0xc(%ebp) +c0202d65: 50 push %eax +c0202d66: 8b 45 08 mov 0x8(%ebp),%eax +c0202d69: ff d0 call *%eax +c0202d6b: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:141 +c0202d6e: e9 2e 02 00 00 jmp c0202fa1 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:145 +c0202d73: 8b 45 14 mov 0x14(%ebp),%eax +c0202d76: 8d 50 04 lea 0x4(%eax),%edx +c0202d79: 89 55 14 mov %edx,0x14(%ebp) +c0202d7c: 8b 30 mov (%eax),%esi +c0202d7e: 85 f6 test %esi,%esi +c0202d80: 75 05 jne c0202d87 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:146 +c0202d82: be 15 49 20 c0 mov $0xc0204915,%esi +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:147 +c0202d87: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp) +c0202d8b: 7e 6f jle c0202dfc +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:147 (discriminator 1) +c0202d8d: 80 7d db 2d cmpb $0x2d,-0x25(%ebp) +c0202d91: 74 69 je c0202dfc +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:148 +c0202d93: 8b 45 e0 mov -0x20(%ebp),%eax +c0202d96: 83 ec 08 sub $0x8,%esp +c0202d99: 50 push %eax +c0202d9a: 56 push %esi +c0202d9b: e8 0d 03 00 00 call c02030ad +c0202da0: 83 c4 10 add $0x10,%esp +c0202da3: 29 45 e4 sub %eax,-0x1c(%ebp) +c0202da6: eb 17 jmp c0202dbf +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:149 (discriminator 3) +c0202da8: 0f be 45 db movsbl -0x25(%ebp),%eax +c0202dac: 83 ec 08 sub $0x8,%esp +c0202daf: ff 75 0c push 0xc(%ebp) +c0202db2: 50 push %eax +c0202db3: 8b 45 08 mov 0x8(%ebp),%eax +c0202db6: ff d0 call *%eax +c0202db8: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:148 (discriminator 3) +c0202dbb: 83 6d e4 01 subl $0x1,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:148 (discriminator 1) +c0202dbf: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp) +c0202dc3: 7f e3 jg c0202da8 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:150 +c0202dc5: eb 35 jmp c0202dfc +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:151 +c0202dc7: 83 7d dc 00 cmpl $0x0,-0x24(%ebp) +c0202dcb: 74 1c je c0202de9 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:151 (discriminator 1) +c0202dcd: 83 fb 1f cmp $0x1f,%ebx +c0202dd0: 7e 05 jle c0202dd7 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:151 (discriminator 2) +c0202dd2: 83 fb 7e cmp $0x7e,%ebx +c0202dd5: 7e 12 jle c0202de9 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:152 +c0202dd7: 83 ec 08 sub $0x8,%esp +c0202dda: ff 75 0c push 0xc(%ebp) +c0202ddd: 6a 3f push $0x3f +c0202ddf: 8b 45 08 mov 0x8(%ebp),%eax +c0202de2: ff d0 call *%eax +c0202de4: 83 c4 10 add $0x10,%esp +c0202de7: eb 0f jmp c0202df8 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:154 +c0202de9: 83 ec 08 sub $0x8,%esp +c0202dec: ff 75 0c push 0xc(%ebp) +c0202def: 53 push %ebx +c0202df0: 8b 45 08 mov 0x8(%ebp),%eax +c0202df3: ff d0 call *%eax +c0202df5: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:150 +c0202df8: 83 6d e4 01 subl $0x1,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:150 (discriminator 1) +c0202dfc: 89 f0 mov %esi,%eax +c0202dfe: 8d 70 01 lea 0x1(%eax),%esi +c0202e01: 0f b6 00 movzbl (%eax),%eax +c0202e04: 0f be d8 movsbl %al,%ebx +c0202e07: 85 db test %ebx,%ebx +c0202e09: 74 26 je c0202e31 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:150 (discriminator 2) +c0202e0b: 83 7d e0 00 cmpl $0x0,-0x20(%ebp) +c0202e0f: 78 b6 js c0202dc7 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:150 (discriminator 3) +c0202e11: 83 6d e0 01 subl $0x1,-0x20(%ebp) +c0202e15: 83 7d e0 00 cmpl $0x0,-0x20(%ebp) +c0202e19: 79 ac jns c0202dc7 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:155 +c0202e1b: eb 14 jmp c0202e31 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:156 (discriminator 2) +c0202e1d: 83 ec 08 sub $0x8,%esp +c0202e20: ff 75 0c push 0xc(%ebp) +c0202e23: 6a 20 push $0x20 +c0202e25: 8b 45 08 mov 0x8(%ebp),%eax +c0202e28: ff d0 call *%eax +c0202e2a: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:155 (discriminator 2) +c0202e2d: 83 6d e4 01 subl $0x1,-0x1c(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:155 (discriminator 1) +c0202e31: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp) +c0202e35: 7f e6 jg c0202e1d +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:157 +c0202e37: e9 65 01 00 00 jmp c0202fa1 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:161 +c0202e3c: 83 ec 08 sub $0x8,%esp +c0202e3f: ff 75 e8 push -0x18(%ebp) +c0202e42: 8d 45 14 lea 0x14(%ebp),%eax +c0202e45: 50 push %eax +c0202e46: e8 b5 fd ff ff call c0202c00 +c0202e4b: 83 c4 10 add $0x10,%esp +c0202e4e: 89 45 f0 mov %eax,-0x10(%ebp) +c0202e51: 89 55 f4 mov %edx,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:162 +c0202e54: 8b 45 f0 mov -0x10(%ebp),%eax +c0202e57: 8b 55 f4 mov -0xc(%ebp),%edx +c0202e5a: 85 d2 test %edx,%edx +c0202e5c: 79 23 jns c0202e81 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:163 +c0202e5e: 83 ec 08 sub $0x8,%esp +c0202e61: ff 75 0c push 0xc(%ebp) +c0202e64: 6a 2d push $0x2d +c0202e66: 8b 45 08 mov 0x8(%ebp),%eax +c0202e69: ff d0 call *%eax +c0202e6b: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:164 +c0202e6e: 8b 45 f0 mov -0x10(%ebp),%eax +c0202e71: 8b 55 f4 mov -0xc(%ebp),%edx +c0202e74: f7 d8 neg %eax +c0202e76: 83 d2 00 adc $0x0,%edx +c0202e79: f7 da neg %edx +c0202e7b: 89 45 f0 mov %eax,-0x10(%ebp) +c0202e7e: 89 55 f4 mov %edx,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:166 +c0202e81: c7 45 ec 0a 00 00 00 movl $0xa,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:167 +c0202e88: e9 b6 00 00 00 jmp c0202f43 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:171 +c0202e8d: 83 ec 08 sub $0x8,%esp +c0202e90: ff 75 e8 push -0x18(%ebp) +c0202e93: 8d 45 14 lea 0x14(%ebp),%eax +c0202e96: 50 push %eax +c0202e97: e8 15 fd ff ff call c0202bb1 +c0202e9c: 83 c4 10 add $0x10,%esp +c0202e9f: 89 45 f0 mov %eax,-0x10(%ebp) +c0202ea2: 89 55 f4 mov %edx,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:172 +c0202ea5: c7 45 ec 0a 00 00 00 movl $0xa,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:173 +c0202eac: e9 92 00 00 00 jmp c0202f43 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:178 +c0202eb1: 83 ec 08 sub $0x8,%esp +c0202eb4: ff 75 0c push 0xc(%ebp) +c0202eb7: 6a 58 push $0x58 +c0202eb9: 8b 45 08 mov 0x8(%ebp),%eax +c0202ebc: ff d0 call *%eax +c0202ebe: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:179 +c0202ec1: 83 ec 08 sub $0x8,%esp +c0202ec4: ff 75 0c push 0xc(%ebp) +c0202ec7: 6a 58 push $0x58 +c0202ec9: 8b 45 08 mov 0x8(%ebp),%eax +c0202ecc: ff d0 call *%eax +c0202ece: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:180 +c0202ed1: 83 ec 08 sub $0x8,%esp +c0202ed4: ff 75 0c push 0xc(%ebp) +c0202ed7: 6a 58 push $0x58 +c0202ed9: 8b 45 08 mov 0x8(%ebp),%eax +c0202edc: ff d0 call *%eax +c0202ede: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:181 +c0202ee1: e9 bb 00 00 00 jmp c0202fa1 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:185 +c0202ee6: 83 ec 08 sub $0x8,%esp +c0202ee9: ff 75 0c push 0xc(%ebp) +c0202eec: 6a 30 push $0x30 +c0202eee: 8b 45 08 mov 0x8(%ebp),%eax +c0202ef1: ff d0 call *%eax +c0202ef3: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:186 +c0202ef6: 83 ec 08 sub $0x8,%esp +c0202ef9: ff 75 0c push 0xc(%ebp) +c0202efc: 6a 78 push $0x78 +c0202efe: 8b 45 08 mov 0x8(%ebp),%eax +c0202f01: ff d0 call *%eax +c0202f03: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:188 +c0202f06: 8b 45 14 mov 0x14(%ebp),%eax +c0202f09: 8d 50 04 lea 0x4(%eax),%edx +c0202f0c: 89 55 14 mov %edx,0x14(%ebp) +c0202f0f: 8b 00 mov (%eax),%eax +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:187 +c0202f11: 89 45 f0 mov %eax,-0x10(%ebp) +c0202f14: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:189 +c0202f1b: c7 45 ec 10 00 00 00 movl $0x10,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:190 +c0202f22: eb 1f jmp c0202f43 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:194 +c0202f24: 83 ec 08 sub $0x8,%esp +c0202f27: ff 75 e8 push -0x18(%ebp) +c0202f2a: 8d 45 14 lea 0x14(%ebp),%eax +c0202f2d: 50 push %eax +c0202f2e: e8 7e fc ff ff call c0202bb1 +c0202f33: 83 c4 10 add $0x10,%esp +c0202f36: 89 45 f0 mov %eax,-0x10(%ebp) +c0202f39: 89 55 f4 mov %edx,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:195 +c0202f3c: c7 45 ec 10 00 00 00 movl $0x10,-0x14(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:197 +c0202f43: 0f be 55 db movsbl -0x25(%ebp),%edx +c0202f47: 8b 45 ec mov -0x14(%ebp),%eax +c0202f4a: 83 ec 04 sub $0x4,%esp +c0202f4d: 52 push %edx +c0202f4e: ff 75 e4 push -0x1c(%ebp) +c0202f51: 50 push %eax +c0202f52: ff 75 f4 push -0xc(%ebp) +c0202f55: ff 75 f0 push -0x10(%ebp) +c0202f58: ff 75 0c push 0xc(%ebp) +c0202f5b: ff 75 08 push 0x8(%ebp) +c0202f5e: e8 9a fb ff ff call c0202afd +c0202f63: 83 c4 20 add $0x20,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:198 +c0202f66: eb 39 jmp c0202fa1 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:202 +c0202f68: 83 ec 08 sub $0x8,%esp +c0202f6b: ff 75 0c push 0xc(%ebp) +c0202f6e: 53 push %ebx +c0202f6f: 8b 45 08 mov 0x8(%ebp),%eax +c0202f72: ff d0 call *%eax +c0202f74: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:203 +c0202f77: eb 28 jmp c0202fa1 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:207 +c0202f79: 83 ec 08 sub $0x8,%esp +c0202f7c: ff 75 0c push 0xc(%ebp) +c0202f7f: 6a 25 push $0x25 +c0202f81: 8b 45 08 mov 0x8(%ebp),%eax +c0202f84: ff d0 call *%eax +c0202f86: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:208 +c0202f89: 83 6d 10 01 subl $0x1,0x10(%ebp) +c0202f8d: eb 04 jmp c0202f93 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:208 (discriminator 3) +c0202f8f: 83 6d 10 01 subl $0x1,0x10(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:208 (discriminator 1) +c0202f93: 8b 45 10 mov 0x10(%ebp),%eax +c0202f96: 83 e8 01 sub $0x1,%eax +c0202f99: 0f b6 00 movzbl (%eax),%eax +c0202f9c: 3c 25 cmp $0x25,%al +c0202f9e: 75 ef jne c0202f8f +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:210 +c0202fa0: 90 nop +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:72 (discriminator 1) +c0202fa1: e9 c2 fc ff ff jmp c0202c68 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:74 +c0202fa6: 90 nop +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:213 +c0202fa7: 8d 65 f8 lea -0x8(%ebp),%esp +c0202faa: 5b pop %ebx +c0202fab: 5e pop %esi +c0202fac: 5d pop %ebp +c0202fad: c3 ret + +c0202fae : +printfmt(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:217 +c0202fae: 55 push %ebp +c0202faf: 89 e5 mov %esp,%ebp +c0202fb1: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:220 +c0202fb4: 8d 45 14 lea 0x14(%ebp),%eax +c0202fb7: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:221 +c0202fba: 8b 45 f4 mov -0xc(%ebp),%eax +c0202fbd: 50 push %eax +c0202fbe: ff 75 10 push 0x10(%ebp) +c0202fc1: ff 75 0c push 0xc(%ebp) +c0202fc4: ff 75 08 push 0x8(%ebp) +c0202fc7: e8 7b fc ff ff call c0202c47 +c0202fcc: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:223 +c0202fcf: 90 nop +c0202fd0: c9 leave +c0202fd1: c3 ret + +c0202fd2 : +sprintputch(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:233 +c0202fd2: 55 push %ebp +c0202fd3: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:234 +c0202fd5: 8b 45 0c mov 0xc(%ebp),%eax +c0202fd8: 8b 40 08 mov 0x8(%eax),%eax +c0202fdb: 8d 50 01 lea 0x1(%eax),%edx +c0202fde: 8b 45 0c mov 0xc(%ebp),%eax +c0202fe1: 89 50 08 mov %edx,0x8(%eax) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:235 +c0202fe4: 8b 45 0c mov 0xc(%ebp),%eax +c0202fe7: 8b 10 mov (%eax),%edx +c0202fe9: 8b 45 0c mov 0xc(%ebp),%eax +c0202fec: 8b 40 04 mov 0x4(%eax),%eax +c0202fef: 39 c2 cmp %eax,%edx +c0202ff1: 73 12 jae c0203005 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:236 +c0202ff3: 8b 45 0c mov 0xc(%ebp),%eax +c0202ff6: 8b 00 mov (%eax),%eax +c0202ff8: 8d 48 01 lea 0x1(%eax),%ecx +c0202ffb: 8b 55 0c mov 0xc(%ebp),%edx +c0202ffe: 89 0a mov %ecx,(%edx) +c0203000: 8b 55 08 mov 0x8(%ebp),%edx +c0203003: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:237 +c0203005: 90 nop +c0203006: 5d pop %ebp +c0203007: c3 ret + +c0203008 : +vsnprintf(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:241 +c0203008: 55 push %ebp +c0203009: 89 e5 mov %esp,%ebp +c020300b: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:242 +c020300e: 8b 45 08 mov 0x8(%ebp),%eax +c0203011: 89 45 ec mov %eax,-0x14(%ebp) +c0203014: 8b 45 0c mov 0xc(%ebp),%eax +c0203017: 8d 50 ff lea -0x1(%eax),%edx +c020301a: 8b 45 08 mov 0x8(%ebp),%eax +c020301d: 01 d0 add %edx,%eax +c020301f: 89 45 f0 mov %eax,-0x10(%ebp) +c0203022: c7 45 f4 00 00 00 00 movl $0x0,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:244 +c0203029: 83 7d 08 00 cmpl $0x0,0x8(%ebp) +c020302d: 74 06 je c0203035 +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:244 (discriminator 1) +c020302f: 83 7d 0c 00 cmpl $0x0,0xc(%ebp) +c0203033: 7f 07 jg c020303c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:245 +c0203035: b8 ff ff ff ff mov $0xffffffff,%eax +c020303a: eb 20 jmp c020305c +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:248 +c020303c: ff 75 14 push 0x14(%ebp) +c020303f: ff 75 10 push 0x10(%ebp) +c0203042: 8d 45 ec lea -0x14(%ebp),%eax +c0203045: 50 push %eax +c0203046: 68 d2 2f 20 c0 push $0xc0202fd2 +c020304b: e8 f7 fb ff ff call c0202c47 +c0203050: 83 c4 10 add $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:251 +c0203053: 8b 45 ec mov -0x14(%ebp),%eax +c0203056: c6 00 00 movb $0x0,(%eax) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:253 +c0203059: 8b 45 f4 mov -0xc(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:254 (discriminator 1) +c020305c: c9 leave +c020305d: c3 ret + +c020305e : +snprintf(): +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:258 +c020305e: 55 push %ebp +c020305f: 89 e5 mov %esp,%ebp +c0203061: 83 ec 18 sub $0x18,%esp +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:262 +c0203064: 8d 45 14 lea 0x14(%ebp),%eax +c0203067: 89 45 f0 mov %eax,-0x10(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:263 +c020306a: 8b 45 f0 mov -0x10(%ebp),%eax +c020306d: 50 push %eax +c020306e: ff 75 10 push 0x10(%ebp) +c0203071: ff 75 0c push 0xc(%ebp) +c0203074: ff 75 08 push 0x8(%ebp) +c0203077: e8 8c ff ff ff call c0203008 +c020307c: 83 c4 10 add $0x10,%esp +c020307f: 89 45 f4 mov %eax,-0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:266 +c0203082: 8b 45 f4 mov -0xc(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/printfmt.c:267 +c0203085: c9 leave +c0203086: c3 ret + +c0203087 : +strlen(): +/media/unix/Data/Code/2020301918-os/lib/string.c:5 +c0203087: 55 push %ebp +c0203088: 89 e5 mov %esp,%ebp +c020308a: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:8 +c020308d: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp) +c0203094: eb 08 jmp c020309e +/media/unix/Data/Code/2020301918-os/lib/string.c:9 (discriminator 3) +c0203096: 83 45 fc 01 addl $0x1,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:8 (discriminator 3) +c020309a: 83 45 08 01 addl $0x1,0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:8 (discriminator 1) +c020309e: 8b 45 08 mov 0x8(%ebp),%eax +c02030a1: 0f b6 00 movzbl (%eax),%eax +c02030a4: 84 c0 test %al,%al +c02030a6: 75 ee jne c0203096 +/media/unix/Data/Code/2020301918-os/lib/string.c:10 +c02030a8: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:11 +c02030ab: c9 leave +c02030ac: c3 ret + +c02030ad : +strnlen(): +/media/unix/Data/Code/2020301918-os/lib/string.c:15 +c02030ad: 55 push %ebp +c02030ae: 89 e5 mov %esp,%ebp +c02030b0: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:18 +c02030b3: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp) +c02030ba: eb 0c jmp c02030c8 +/media/unix/Data/Code/2020301918-os/lib/string.c:19 (discriminator 4) +c02030bc: 83 45 fc 01 addl $0x1,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:18 (discriminator 4) +c02030c0: 83 45 08 01 addl $0x1,0x8(%ebp) +c02030c4: 83 6d 0c 01 subl $0x1,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:18 (discriminator 1) +c02030c8: 83 7d 0c 00 cmpl $0x0,0xc(%ebp) +c02030cc: 74 0a je c02030d8 +/media/unix/Data/Code/2020301918-os/lib/string.c:18 (discriminator 3) +c02030ce: 8b 45 08 mov 0x8(%ebp),%eax +c02030d1: 0f b6 00 movzbl (%eax),%eax +c02030d4: 84 c0 test %al,%al +c02030d6: 75 e4 jne c02030bc +/media/unix/Data/Code/2020301918-os/lib/string.c:20 +c02030d8: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:21 +c02030db: c9 leave +c02030dc: c3 ret + +c02030dd : +strcpy(): +/media/unix/Data/Code/2020301918-os/lib/string.c:25 +c02030dd: 55 push %ebp +c02030de: 89 e5 mov %esp,%ebp +c02030e0: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:28 +c02030e3: 8b 45 08 mov 0x8(%ebp),%eax +c02030e6: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:29 +c02030e9: 90 nop +/media/unix/Data/Code/2020301918-os/lib/string.c:29 (discriminator 1) +c02030ea: 8b 55 0c mov 0xc(%ebp),%edx +c02030ed: 8d 42 01 lea 0x1(%edx),%eax +c02030f0: 89 45 0c mov %eax,0xc(%ebp) +c02030f3: 8b 45 08 mov 0x8(%ebp),%eax +c02030f6: 8d 48 01 lea 0x1(%eax),%ecx +c02030f9: 89 4d 08 mov %ecx,0x8(%ebp) +c02030fc: 0f b6 12 movzbl (%edx),%edx +c02030ff: 88 10 mov %dl,(%eax) +c0203101: 0f b6 00 movzbl (%eax),%eax +c0203104: 84 c0 test %al,%al +c0203106: 75 e2 jne c02030ea +/media/unix/Data/Code/2020301918-os/lib/string.c:31 +c0203108: 8b 45 fc mov -0x4(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:32 +c020310b: c9 leave +c020310c: c3 ret + +c020310d : +strcat(): +/media/unix/Data/Code/2020301918-os/lib/string.c:36 +c020310d: 55 push %ebp +c020310e: 89 e5 mov %esp,%ebp +c0203110: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:37 +c0203113: ff 75 08 push 0x8(%ebp) +c0203116: e8 6c ff ff ff call c0203087 +c020311b: 83 c4 04 add $0x4,%esp +c020311e: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:38 +c0203121: 8b 55 fc mov -0x4(%ebp),%edx +c0203124: 8b 45 08 mov 0x8(%ebp),%eax +c0203127: 01 d0 add %edx,%eax +c0203129: ff 75 0c push 0xc(%ebp) +c020312c: 50 push %eax +c020312d: e8 ab ff ff ff call c02030dd +c0203132: 83 c4 08 add $0x8,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:39 +c0203135: 8b 45 08 mov 0x8(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:40 +c0203138: c9 leave +c0203139: c3 ret + +c020313a : +strncpy(): +/media/unix/Data/Code/2020301918-os/lib/string.c:43 +c020313a: 55 push %ebp +c020313b: 89 e5 mov %esp,%ebp +c020313d: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:47 +c0203140: 8b 45 08 mov 0x8(%ebp),%eax +c0203143: 89 45 f8 mov %eax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:48 +c0203146: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp) +c020314d: eb 23 jmp c0203172 +/media/unix/Data/Code/2020301918-os/lib/string.c:49 +c020314f: 8b 45 08 mov 0x8(%ebp),%eax +c0203152: 8d 50 01 lea 0x1(%eax),%edx +c0203155: 89 55 08 mov %edx,0x8(%ebp) +c0203158: 8b 55 0c mov 0xc(%ebp),%edx +c020315b: 0f b6 12 movzbl (%edx),%edx +c020315e: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/lib/string.c:51 +c0203160: 8b 45 0c mov 0xc(%ebp),%eax +c0203163: 0f b6 00 movzbl (%eax),%eax +c0203166: 84 c0 test %al,%al +c0203168: 74 04 je c020316e +/media/unix/Data/Code/2020301918-os/lib/string.c:52 +c020316a: 83 45 0c 01 addl $0x1,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:48 (discriminator 2) +c020316e: 83 45 fc 01 addl $0x1,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:48 (discriminator 1) +c0203172: 8b 45 fc mov -0x4(%ebp),%eax +c0203175: 3b 45 10 cmp 0x10(%ebp),%eax +c0203178: 72 d5 jb c020314f +/media/unix/Data/Code/2020301918-os/lib/string.c:54 +c020317a: 8b 45 f8 mov -0x8(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:55 +c020317d: c9 leave +c020317e: c3 ret + +c020317f : +strcmp(): +/media/unix/Data/Code/2020301918-os/lib/string.c:59 +c020317f: 55 push %ebp +c0203180: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/string.c:60 +c0203182: eb 08 jmp c020318c +/media/unix/Data/Code/2020301918-os/lib/string.c:61 +c0203184: 83 45 08 01 addl $0x1,0x8(%ebp) +c0203188: 83 45 0c 01 addl $0x1,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:60 +c020318c: 8b 45 08 mov 0x8(%ebp),%eax +c020318f: 0f b6 00 movzbl (%eax),%eax +c0203192: 84 c0 test %al,%al +c0203194: 74 10 je c02031a6 +/media/unix/Data/Code/2020301918-os/lib/string.c:60 (discriminator 1) +c0203196: 8b 45 08 mov 0x8(%ebp),%eax +c0203199: 0f b6 10 movzbl (%eax),%edx +c020319c: 8b 45 0c mov 0xc(%ebp),%eax +c020319f: 0f b6 00 movzbl (%eax),%eax +c02031a2: 38 c2 cmp %al,%dl +c02031a4: 74 de je c0203184 +/media/unix/Data/Code/2020301918-os/lib/string.c:62 +c02031a6: 8b 45 08 mov 0x8(%ebp),%eax +c02031a9: 0f b6 00 movzbl (%eax),%eax +c02031ac: 0f b6 d0 movzbl %al,%edx +c02031af: 8b 45 0c mov 0xc(%ebp),%eax +c02031b2: 0f b6 00 movzbl (%eax),%eax +c02031b5: 0f b6 c8 movzbl %al,%ecx +c02031b8: 89 d0 mov %edx,%eax +c02031ba: 29 c8 sub %ecx,%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:63 +c02031bc: 5d pop %ebp +c02031bd: c3 ret + +c02031be : +strncmp(): +/media/unix/Data/Code/2020301918-os/lib/string.c:67 +c02031be: 55 push %ebp +c02031bf: 89 e5 mov %esp,%ebp +/media/unix/Data/Code/2020301918-os/lib/string.c:68 +c02031c1: eb 0c jmp c02031cf +/media/unix/Data/Code/2020301918-os/lib/string.c:69 +c02031c3: 83 6d 10 01 subl $0x1,0x10(%ebp) +c02031c7: 83 45 08 01 addl $0x1,0x8(%ebp) +c02031cb: 83 45 0c 01 addl $0x1,0xc(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:68 +c02031cf: 83 7d 10 00 cmpl $0x0,0x10(%ebp) +c02031d3: 74 1a je c02031ef +/media/unix/Data/Code/2020301918-os/lib/string.c:68 (discriminator 1) +c02031d5: 8b 45 08 mov 0x8(%ebp),%eax +c02031d8: 0f b6 00 movzbl (%eax),%eax +c02031db: 84 c0 test %al,%al +c02031dd: 74 10 je c02031ef +/media/unix/Data/Code/2020301918-os/lib/string.c:68 (discriminator 2) +c02031df: 8b 45 08 mov 0x8(%ebp),%eax +c02031e2: 0f b6 10 movzbl (%eax),%edx +c02031e5: 8b 45 0c mov 0xc(%ebp),%eax +c02031e8: 0f b6 00 movzbl (%eax),%eax +c02031eb: 38 c2 cmp %al,%dl +c02031ed: 74 d4 je c02031c3 +/media/unix/Data/Code/2020301918-os/lib/string.c:70 +c02031ef: 83 7d 10 00 cmpl $0x0,0x10(%ebp) +c02031f3: 75 07 jne c02031fc +/media/unix/Data/Code/2020301918-os/lib/string.c:71 +c02031f5: b8 00 00 00 00 mov $0x0,%eax +c02031fa: eb 16 jmp c0203212 +/media/unix/Data/Code/2020301918-os/lib/string.c:73 +c02031fc: 8b 45 08 mov 0x8(%ebp),%eax +c02031ff: 0f b6 00 movzbl (%eax),%eax +c0203202: 0f b6 d0 movzbl %al,%edx +c0203205: 8b 45 0c mov 0xc(%ebp),%eax +c0203208: 0f b6 00 movzbl (%eax),%eax +c020320b: 0f b6 c8 movzbl %al,%ecx +c020320e: 89 d0 mov %edx,%eax +c0203210: 29 c8 sub %ecx,%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:74 +c0203212: 5d pop %ebp +c0203213: c3 ret + +c0203214 : +memset(): +/media/unix/Data/Code/2020301918-os/lib/string.c:78 +c0203214: 55 push %ebp +c0203215: 89 e5 mov %esp,%ebp +c0203217: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:82 +c020321a: 8b 45 08 mov 0x8(%ebp),%eax +c020321d: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:83 +c0203220: 8b 45 10 mov 0x10(%ebp),%eax +c0203223: 89 45 f8 mov %eax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:84 +c0203226: eb 0e jmp c0203236 +/media/unix/Data/Code/2020301918-os/lib/string.c:85 +c0203228: 8b 45 fc mov -0x4(%ebp),%eax +c020322b: 8d 50 01 lea 0x1(%eax),%edx +c020322e: 89 55 fc mov %edx,-0x4(%ebp) +c0203231: 8b 55 0c mov 0xc(%ebp),%edx +c0203234: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/lib/string.c:84 +c0203236: 83 6d f8 01 subl $0x1,-0x8(%ebp) +c020323a: 83 7d f8 00 cmpl $0x0,-0x8(%ebp) +c020323e: 79 e8 jns c0203228 +/media/unix/Data/Code/2020301918-os/lib/string.c:87 +c0203240: 8b 45 08 mov 0x8(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:88 +c0203243: c9 leave +c0203244: c3 ret + +c0203245 : +memcpy(): +/media/unix/Data/Code/2020301918-os/lib/string.c:92 +c0203245: 55 push %ebp +c0203246: 89 e5 mov %esp,%ebp +c0203248: 83 ec 10 sub $0x10,%esp +/media/unix/Data/Code/2020301918-os/lib/string.c:96 +c020324b: 8b 45 0c mov 0xc(%ebp),%eax +c020324e: 89 45 fc mov %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:97 +c0203251: 8b 45 08 mov 0x8(%ebp),%eax +c0203254: 89 45 f8 mov %eax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:99 +c0203257: 8b 45 fc mov -0x4(%ebp),%eax +c020325a: 3b 45 f8 cmp -0x8(%ebp),%eax +c020325d: 73 54 jae c02032b3 +/media/unix/Data/Code/2020301918-os/lib/string.c:99 (discriminator 1) +c020325f: 8b 55 fc mov -0x4(%ebp),%edx +c0203262: 8b 45 10 mov 0x10(%ebp),%eax +c0203265: 01 d0 add %edx,%eax +c0203267: 39 45 f8 cmp %eax,-0x8(%ebp) +c020326a: 73 47 jae c02032b3 +/media/unix/Data/Code/2020301918-os/lib/string.c:100 +c020326c: 8b 45 10 mov 0x10(%ebp),%eax +c020326f: 01 45 fc add %eax,-0x4(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:101 +c0203272: 8b 45 10 mov 0x10(%ebp),%eax +c0203275: 01 45 f8 add %eax,-0x8(%ebp) +/media/unix/Data/Code/2020301918-os/lib/string.c:102 +c0203278: eb 13 jmp c020328d +/media/unix/Data/Code/2020301918-os/lib/string.c:103 +c020327a: 83 6d fc 01 subl $0x1,-0x4(%ebp) +c020327e: 83 6d f8 01 subl $0x1,-0x8(%ebp) +c0203282: 8b 45 fc mov -0x4(%ebp),%eax +c0203285: 0f b6 10 movzbl (%eax),%edx +c0203288: 8b 45 f8 mov -0x8(%ebp),%eax +c020328b: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/lib/string.c:102 +c020328d: 8b 45 10 mov 0x10(%ebp),%eax +c0203290: 8d 50 ff lea -0x1(%eax),%edx +c0203293: 89 55 10 mov %edx,0x10(%ebp) +c0203296: 85 c0 test %eax,%eax +c0203298: 75 e0 jne c020327a +/media/unix/Data/Code/2020301918-os/lib/string.c:99 +c020329a: eb 24 jmp c02032c0 +/media/unix/Data/Code/2020301918-os/lib/string.c:106 +c020329c: 8b 55 fc mov -0x4(%ebp),%edx +c020329f: 8d 42 01 lea 0x1(%edx),%eax +c02032a2: 89 45 fc mov %eax,-0x4(%ebp) +c02032a5: 8b 45 f8 mov -0x8(%ebp),%eax +c02032a8: 8d 48 01 lea 0x1(%eax),%ecx +c02032ab: 89 4d f8 mov %ecx,-0x8(%ebp) +c02032ae: 0f b6 12 movzbl (%edx),%edx +c02032b1: 88 10 mov %dl,(%eax) +/media/unix/Data/Code/2020301918-os/lib/string.c:105 +c02032b3: 8b 45 10 mov 0x10(%ebp),%eax +c02032b6: 8d 50 ff lea -0x1(%eax),%edx +c02032b9: 89 55 10 mov %edx,0x10(%ebp) +c02032bc: 85 c0 test %eax,%eax +c02032be: 75 dc jne c020329c +/media/unix/Data/Code/2020301918-os/lib/string.c:109 +c02032c0: 8b 45 08 mov 0x8(%ebp),%eax +/media/unix/Data/Code/2020301918-os/lib/string.c:110 +c02032c3: c9 leave +c02032c4: c3 ret +c02032c5: 66 90 xchg %ax,%ax +c02032c7: 66 90 xchg %ax,%ax +c02032c9: 66 90 xchg %ax,%ax +c02032cb: 66 90 xchg %ax,%ax +c02032cd: 66 90 xchg %ax,%ax +c02032cf: 90 nop + +c02032d0 <__udivdi3>: +__udivdi3(): +c02032d0: f3 0f 1e fb endbr32 +c02032d4: 55 push %ebp +c02032d5: 57 push %edi +c02032d6: 56 push %esi +c02032d7: 53 push %ebx +c02032d8: 83 ec 1c sub $0x1c,%esp +c02032db: 8b 44 24 3c mov 0x3c(%esp),%eax +c02032df: 8b 6c 24 30 mov 0x30(%esp),%ebp +c02032e3: 8b 74 24 34 mov 0x34(%esp),%esi +c02032e7: 8b 5c 24 38 mov 0x38(%esp),%ebx +c02032eb: 85 c0 test %eax,%eax +c02032ed: 75 19 jne c0203308 <__udivdi3+0x38> +c02032ef: 39 f3 cmp %esi,%ebx +c02032f1: 76 4d jbe c0203340 <__udivdi3+0x70> +c02032f3: 31 ff xor %edi,%edi +c02032f5: 89 e8 mov %ebp,%eax +c02032f7: 89 f2 mov %esi,%edx +c02032f9: f7 f3 div %ebx +c02032fb: 89 fa mov %edi,%edx +c02032fd: 83 c4 1c add $0x1c,%esp +c0203300: 5b pop %ebx +c0203301: 5e pop %esi +c0203302: 5f pop %edi +c0203303: 5d pop %ebp +c0203304: c3 ret +c0203305: 8d 76 00 lea 0x0(%esi),%esi +c0203308: 39 f0 cmp %esi,%eax +c020330a: 76 14 jbe c0203320 <__udivdi3+0x50> +c020330c: 31 ff xor %edi,%edi +c020330e: 31 c0 xor %eax,%eax +c0203310: 89 fa mov %edi,%edx +c0203312: 83 c4 1c add $0x1c,%esp +c0203315: 5b pop %ebx +c0203316: 5e pop %esi +c0203317: 5f pop %edi +c0203318: 5d pop %ebp +c0203319: c3 ret +c020331a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi +c0203320: 0f bd f8 bsr %eax,%edi +c0203323: 83 f7 1f xor $0x1f,%edi +c0203326: 75 48 jne c0203370 <__udivdi3+0xa0> +c0203328: 39 f0 cmp %esi,%eax +c020332a: 72 06 jb c0203332 <__udivdi3+0x62> +c020332c: 31 c0 xor %eax,%eax +c020332e: 39 eb cmp %ebp,%ebx +c0203330: 77 de ja c0203310 <__udivdi3+0x40> +c0203332: b8 01 00 00 00 mov $0x1,%eax +c0203337: eb d7 jmp c0203310 <__udivdi3+0x40> +c0203339: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi +c0203340: 89 d9 mov %ebx,%ecx +c0203342: 85 db test %ebx,%ebx +c0203344: 75 0b jne c0203351 <__udivdi3+0x81> +c0203346: b8 01 00 00 00 mov $0x1,%eax +c020334b: 31 d2 xor %edx,%edx +c020334d: f7 f3 div %ebx +c020334f: 89 c1 mov %eax,%ecx +c0203351: 31 d2 xor %edx,%edx +c0203353: 89 f0 mov %esi,%eax +c0203355: f7 f1 div %ecx +c0203357: 89 c6 mov %eax,%esi +c0203359: 89 e8 mov %ebp,%eax +c020335b: 89 f7 mov %esi,%edi +c020335d: f7 f1 div %ecx +c020335f: 89 fa mov %edi,%edx +c0203361: 83 c4 1c add $0x1c,%esp +c0203364: 5b pop %ebx +c0203365: 5e pop %esi +c0203366: 5f pop %edi +c0203367: 5d pop %ebp +c0203368: c3 ret +c0203369: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi +c0203370: 89 f9 mov %edi,%ecx +c0203372: ba 20 00 00 00 mov $0x20,%edx +c0203377: 29 fa sub %edi,%edx +c0203379: d3 e0 shl %cl,%eax +c020337b: 89 44 24 08 mov %eax,0x8(%esp) +c020337f: 89 d1 mov %edx,%ecx +c0203381: 89 d8 mov %ebx,%eax +c0203383: d3 e8 shr %cl,%eax +c0203385: 8b 4c 24 08 mov 0x8(%esp),%ecx +c0203389: 09 c1 or %eax,%ecx +c020338b: 89 f0 mov %esi,%eax +c020338d: 89 4c 24 08 mov %ecx,0x8(%esp) +c0203391: 89 f9 mov %edi,%ecx +c0203393: d3 e3 shl %cl,%ebx +c0203395: 89 d1 mov %edx,%ecx +c0203397: d3 e8 shr %cl,%eax +c0203399: 89 f9 mov %edi,%ecx +c020339b: 89 5c 24 0c mov %ebx,0xc(%esp) +c020339f: 89 eb mov %ebp,%ebx +c02033a1: d3 e6 shl %cl,%esi +c02033a3: 89 d1 mov %edx,%ecx +c02033a5: d3 eb shr %cl,%ebx +c02033a7: 09 f3 or %esi,%ebx +c02033a9: 89 c6 mov %eax,%esi +c02033ab: 89 f2 mov %esi,%edx +c02033ad: 89 d8 mov %ebx,%eax +c02033af: f7 74 24 08 divl 0x8(%esp) +c02033b3: 89 d6 mov %edx,%esi +c02033b5: 89 c3 mov %eax,%ebx +c02033b7: f7 64 24 0c mull 0xc(%esp) +c02033bb: 39 d6 cmp %edx,%esi +c02033bd: 72 19 jb c02033d8 <__udivdi3+0x108> +c02033bf: 89 f9 mov %edi,%ecx +c02033c1: d3 e5 shl %cl,%ebp +c02033c3: 39 c5 cmp %eax,%ebp +c02033c5: 73 04 jae c02033cb <__udivdi3+0xfb> +c02033c7: 39 d6 cmp %edx,%esi +c02033c9: 74 0d je c02033d8 <__udivdi3+0x108> +c02033cb: 89 d8 mov %ebx,%eax +c02033cd: 31 ff xor %edi,%edi +c02033cf: e9 3c ff ff ff jmp c0203310 <__udivdi3+0x40> +c02033d4: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi +c02033d8: 8d 43 ff lea -0x1(%ebx),%eax +c02033db: 31 ff xor %edi,%edi +c02033dd: e9 2e ff ff ff jmp c0203310 <__udivdi3+0x40> +c02033e2: 66 90 xchg %ax,%ax +c02033e4: 66 90 xchg %ax,%ax +c02033e6: 66 90 xchg %ax,%ax +c02033e8: 66 90 xchg %ax,%ax +c02033ea: 66 90 xchg %ax,%ax +c02033ec: 66 90 xchg %ax,%ax +c02033ee: 66 90 xchg %ax,%ax + +c02033f0 <__umoddi3>: +__umoddi3(): +c02033f0: f3 0f 1e fb endbr32 +c02033f4: 55 push %ebp +c02033f5: 57 push %edi +c02033f6: 56 push %esi +c02033f7: 53 push %ebx +c02033f8: 83 ec 1c sub $0x1c,%esp +c02033fb: 8b 74 24 30 mov 0x30(%esp),%esi +c02033ff: 8b 5c 24 34 mov 0x34(%esp),%ebx +c0203403: 8b 7c 24 3c mov 0x3c(%esp),%edi +c0203407: 8b 6c 24 38 mov 0x38(%esp),%ebp +c020340b: 89 f0 mov %esi,%eax +c020340d: 89 da mov %ebx,%edx +c020340f: 85 ff test %edi,%edi +c0203411: 75 15 jne c0203428 <__umoddi3+0x38> +c0203413: 39 dd cmp %ebx,%ebp +c0203415: 76 39 jbe c0203450 <__umoddi3+0x60> +c0203417: f7 f5 div %ebp +c0203419: 89 d0 mov %edx,%eax +c020341b: 31 d2 xor %edx,%edx +c020341d: 83 c4 1c add $0x1c,%esp +c0203420: 5b pop %ebx +c0203421: 5e pop %esi +c0203422: 5f pop %edi +c0203423: 5d pop %ebp +c0203424: c3 ret +c0203425: 8d 76 00 lea 0x0(%esi),%esi +c0203428: 39 df cmp %ebx,%edi +c020342a: 77 f1 ja c020341d <__umoddi3+0x2d> +c020342c: 0f bd cf bsr %edi,%ecx +c020342f: 83 f1 1f xor $0x1f,%ecx +c0203432: 89 4c 24 04 mov %ecx,0x4(%esp) +c0203436: 75 40 jne c0203478 <__umoddi3+0x88> +c0203438: 39 df cmp %ebx,%edi +c020343a: 72 04 jb c0203440 <__umoddi3+0x50> +c020343c: 39 f5 cmp %esi,%ebp +c020343e: 77 dd ja c020341d <__umoddi3+0x2d> +c0203440: 89 da mov %ebx,%edx +c0203442: 89 f0 mov %esi,%eax +c0203444: 29 e8 sub %ebp,%eax +c0203446: 19 fa sbb %edi,%edx +c0203448: eb d3 jmp c020341d <__umoddi3+0x2d> +c020344a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi +c0203450: 89 e9 mov %ebp,%ecx +c0203452: 85 ed test %ebp,%ebp +c0203454: 75 0b jne c0203461 <__umoddi3+0x71> +c0203456: b8 01 00 00 00 mov $0x1,%eax +c020345b: 31 d2 xor %edx,%edx +c020345d: f7 f5 div %ebp +c020345f: 89 c1 mov %eax,%ecx +c0203461: 89 d8 mov %ebx,%eax +c0203463: 31 d2 xor %edx,%edx +c0203465: f7 f1 div %ecx +c0203467: 89 f0 mov %esi,%eax +c0203469: f7 f1 div %ecx +c020346b: 89 d0 mov %edx,%eax +c020346d: 31 d2 xor %edx,%edx +c020346f: eb ac jmp c020341d <__umoddi3+0x2d> +c0203471: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi +c0203478: 8b 44 24 04 mov 0x4(%esp),%eax +c020347c: ba 20 00 00 00 mov $0x20,%edx +c0203481: 29 c2 sub %eax,%edx +c0203483: 89 c1 mov %eax,%ecx +c0203485: 89 e8 mov %ebp,%eax +c0203487: d3 e7 shl %cl,%edi +c0203489: 89 d1 mov %edx,%ecx +c020348b: 89 54 24 0c mov %edx,0xc(%esp) +c020348f: d3 e8 shr %cl,%eax +c0203491: 89 c1 mov %eax,%ecx +c0203493: 8b 44 24 04 mov 0x4(%esp),%eax +c0203497: 09 f9 or %edi,%ecx +c0203499: 89 df mov %ebx,%edi +c020349b: 89 4c 24 08 mov %ecx,0x8(%esp) +c020349f: 89 c1 mov %eax,%ecx +c02034a1: d3 e5 shl %cl,%ebp +c02034a3: 89 d1 mov %edx,%ecx +c02034a5: d3 ef shr %cl,%edi +c02034a7: 89 c1 mov %eax,%ecx +c02034a9: 89 f0 mov %esi,%eax +c02034ab: d3 e3 shl %cl,%ebx +c02034ad: 89 d1 mov %edx,%ecx +c02034af: 89 fa mov %edi,%edx +c02034b1: d3 e8 shr %cl,%eax +c02034b3: 0f b6 4c 24 04 movzbl 0x4(%esp),%ecx +c02034b8: 09 d8 or %ebx,%eax +c02034ba: f7 74 24 08 divl 0x8(%esp) +c02034be: 89 d3 mov %edx,%ebx +c02034c0: d3 e6 shl %cl,%esi +c02034c2: f7 e5 mul %ebp +c02034c4: 89 c7 mov %eax,%edi +c02034c6: 89 d1 mov %edx,%ecx +c02034c8: 39 d3 cmp %edx,%ebx +c02034ca: 72 06 jb c02034d2 <__umoddi3+0xe2> +c02034cc: 75 0e jne c02034dc <__umoddi3+0xec> +c02034ce: 39 c6 cmp %eax,%esi +c02034d0: 73 0a jae c02034dc <__umoddi3+0xec> +c02034d2: 29 e8 sub %ebp,%eax +c02034d4: 1b 54 24 08 sbb 0x8(%esp),%edx +c02034d8: 89 d1 mov %edx,%ecx +c02034da: 89 c7 mov %eax,%edi +c02034dc: 89 f5 mov %esi,%ebp +c02034de: 8b 74 24 04 mov 0x4(%esp),%esi +c02034e2: 29 fd sub %edi,%ebp +c02034e4: 19 cb sbb %ecx,%ebx +c02034e6: 0f b6 4c 24 0c movzbl 0xc(%esp),%ecx +c02034eb: 89 d8 mov %ebx,%eax +c02034ed: d3 e0 shl %cl,%eax +c02034ef: 89 f1 mov %esi,%ecx +c02034f1: d3 ed shr %cl,%ebp +c02034f3: d3 eb shr %cl,%ebx +c02034f5: 09 e8 or %ebp,%eax +c02034f7: 89 da mov %ebx,%edx +c02034f9: 83 c4 1c add $0x1c,%esp +c02034fc: 5b pop %ebx +c02034fd: 5e pop %esi +c02034fe: 5f pop %edi +c02034ff: 5d pop %ebp +c0203500: c3 ret diff --git a/kern/main.c b/kern/main.c index d1b924c..4762e8a 100644 --- a/kern/main.c +++ b/kern/main.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -37,6 +38,23 @@ init_segment_regs(PROCESS *p_proc) | RPL_USER; } +static inline void +lml_map(phyaddr_t cr3, uintptr_t vaddr, phyaddr_t paddr, u32 flags) { + uintptr_t *pde_ptr = (uintptr_t *)K_PHY2LIN(cr3); + // pde_ptr += PDX(3 * GB); // get page table base addr + // get pdx item, pde_ptr + PDX(vaddr) + pde_ptr += PDX(vaddr); + if (!(*pde_ptr & PTE_P)) { + // pdx ot exists, allocate a page and assign to pde + *pde_ptr = phy_malloc_4k() | PTE_P | flags; + } + uintptr_t *ptx_ptr = (uintptr_t *)K_PHY2LIN(*pde_ptr & (~0xfff)); + // get ptx item + ptx_ptr += PTX(vaddr); + // assume paddr is allocated, just set it to paddr[31:12] | FLAGS + *ptx_ptr = (paddr & (~0xfff)) | PTE_P | flags; +} + /* * 内核的main函数 * 用于初始化用户进程,然后将执行流交给用户进程 @@ -69,15 +87,49 @@ void kernel_main(void) // 推荐将文件加载到3GB + 48MB处,应用程序保证不会有16MB那么大 read_file(filename[i], (void *)K_PHY2LIN(48 * MB)); // 现在你就需要将从磁盘中读出的ELF文件解析到用户进程的地址空间中 - panic("unimplement! load elf file"); - + // panic("unimplement! load elf file"); +// ---------------------------- load elf -------------------------------------- + void * elf_start = (void *)K_PHY2LIN(48 * MB); + assert(*(u32*)elf_start == ELF_MAGIC); + Elf32_Ehdr* ehdr = (Elf32_Ehdr*) elf_start; + for (int i = 0; i < ehdr->e_phnum; ++ i) { + Elf32_Phdr* phdr = elf_start + i * ehdr->e_phentsize + ehdr->e_phoff; + if (phdr->p_type == PT_LOAD) { + u32 vpage_fst = phdr->p_va & (~0xfff); // clear low 12 bit, start of the first pg + u32 vpage_lst = (phdr->p_va + phdr->p_memsz - 1) & (~0xfff); // start of the last pg +// in fact, we allocate 4k aligned vpage to every segment; its ok because elf32 segment align is 0x1000 + u32 page_num = ((vpage_lst - vpage_fst) >> 12) + 1; + phyaddr_t newpage = 0; // useless initialization + for (int j = 0; j < page_num; ++ j) { + newpage = phy_malloc_4k(); + lml_map(p_proc->pcb.cr3, vpage_fst + (j << 12), newpage, PTE_P | PTE_W | PTE_U); + } + phyaddr_t page_start = newpage - (page_num - 1) * 4 * KB; + memcpy((void*)K_PHY2LIN(page_start), (void*)(elf_start + phdr->p_offset), phdr->p_filesz); + memset((void*)K_PHY2LIN(page_start) + phdr->p_filesz, 0, phdr->p_memsz - phdr->p_filesz); + } + } + // 上一个实验中,我们开栈是用内核中的一个数组临时充当栈 // 但是现在就不行了,用户是无法访问内核的地址空间(3GB ~ 3GB + 128MB) // 需要你自行处理给用户分配用户栈。 - panic("unimplement! init user stack and esp"); +// ---------------------------- alloc user stack ------------------------------ + phyaddr_t ustack_low = phy_malloc_4k(); + for (int i = 0; i < 6; ++ i) phy_malloc_4k(); + phyaddr_t ustack_high = phy_malloc_4k(); // alloc 8 pages, 32KB stack for each program + for (int i = 0; i < 8; ++ i) { + lml_map(p_proc->pcb.cr3, (3*GB - (8-i)*PGSIZE), ustack_low + i*PGSIZE, PTE_P | PTE_W | PTE_U); + } + p_proc->pcb.user_regs.esp = 3*GB; + // p_proc->pcb.user_regs.esp -= 4; + // uintptr_t* ustack_top = (uintptr_t*)K_PHY2LIN(ustack_high + PGSIZE); + // ustack_top --; + // *ustack_top = ehdr->e_entry; + p_proc->pcb.user_regs.eip = ehdr->e_entry; // 初始化用户寄存器 p_proc->pcb.user_regs.eflags = 0x1202; /* IF=1, IOPL=1 */ + // panic("unimplement! init user stack and esp"); // 接下来初始化内核寄存器, // 为什么需要初始化内核寄存器原因是加入了系统调用后 // 非常有可能出现系统调用执行过程中插入其余中断的情况,