* same with xv6
[mascara-docs.git] / i386 / ucla / src / lab1 / obj / boot / boot.asm
blob4b3aa7335e8de4038bd9885df661ba450c73e2be
2 obj/boot/boot.out: file format elf32-i386
5 Disassembly of section .text:
7 00007c00 <_text>:
8 7c00: fa cli
9 7c01: fc cld
10 7c02: 31 c0 xor %eax,%eax
11 7c04: 8e d8 mov %eax,%ds
12 7c06: 8e c0 mov %eax,%es
13 7c08: 8e d0 mov %eax,%ss
15 00007c0a <seta20.1>:
16 7c0a: e4 64 in $0x64,%al
17 7c0c: a8 02 test $0x2,%al
18 7c0e: 75 fa jne 7c0a <seta20.1>
19 7c10: b0 d1 mov $0xd1,%al
20 7c12: e6 64 out %al,$0x64
22 00007c14 <seta20.2>:
23 7c14: e4 64 in $0x64,%al
24 7c16: a8 02 test $0x2,%al
25 7c18: 75 fa jne 7c14 <seta20.2>
26 7c1a: b0 df mov $0xdf,%al
27 7c1c: e6 60 out %al,$0x60
28 7c1e: 0f 01 16 lgdtl (%esi)
29 7c21: 64 fs
30 7c22: 7c 0f jl 7c33 <protcseg+0x1>
31 7c24: 20 c0 and %al,%al
32 7c26: 66 83 c8 01 or $0x1,%ax
33 7c2a: 0f 22 c0 mov %eax,%cr0
34 7c2d: ea 32 7c 08 00 66 b8 ljmp $0xb866,$0x87c32
36 00007c32 <protcseg>:
37 7c32: 66 b8 10 00 mov $0x10,%ax
38 7c36: 8e d8 mov %eax,%ds
39 7c38: 8e c0 mov %eax,%es
40 7c3a: 8e e0 mov %eax,%fs
41 7c3c: 8e e8 mov %eax,%gs
42 7c3e: 8e d0 mov %eax,%ss
43 7c40: bc 00 7c 00 00 mov $0x7c00,%esp
44 7c45: e8 da 00 00 00 call 7d24 <bootmain>
46 00007c4a <spin>:
47 7c4a: eb fe jmp 7c4a <spin>
49 00007c4c <gdt>:
50 ...
51 7c54: ff (bad)
52 7c55: ff 00 incl (%eax)
53 7c57: 00 00 add %al,(%eax)
54 7c59: 9a cf 00 ff ff 00 00 lcall $0x0,$0xffff00cf
55 7c60: 00 92 cf 00 17 00 add %dl,0x1700cf(%edx)
57 00007c64 <gdtdesc>:
58 7c64: 17 pop %ss
59 7c65: 00 4c 7c 00 add %cl,0x0(%esp,%edi,2)
60 7c69: 00 00 add %al,(%eax)
61 ...
63 00007c6c <waitdisk>:
64 7c6c: 55 push %ebp
65 7c6d: ba f7 01 00 00 mov $0x1f7,%edx
66 7c72: 89 e5 mov %esp,%ebp
67 7c74: ec in (%dx),%al
68 7c75: 25 c0 00 00 00 and $0xc0,%eax
69 7c7a: 83 f8 40 cmp $0x40,%eax
70 7c7d: 75 f5 jne 7c74 <waitdisk+0x8>
71 7c7f: 5d pop %ebp
72 7c80: c3 ret
74 00007c81 <readsect>:
75 7c81: 55 push %ebp
76 7c82: 89 e5 mov %esp,%ebp
77 7c84: 57 push %edi
78 7c85: 8b 7d 0c mov 0xc(%ebp),%edi
79 7c88: e8 df ff ff ff call 7c6c <waitdisk>
80 7c8d: ba f2 01 00 00 mov $0x1f2,%edx
81 7c92: b0 01 mov $0x1,%al
82 7c94: ee out %al,(%dx)
83 7c95: b2 f3 mov $0xf3,%dl
84 7c97: 89 f8 mov %edi,%eax
85 7c99: ee out %al,(%dx)
86 7c9a: 89 f8 mov %edi,%eax
87 7c9c: b2 f4 mov $0xf4,%dl
88 7c9e: c1 e8 08 shr $0x8,%eax
89 7ca1: ee out %al,(%dx)
90 7ca2: 89 f8 mov %edi,%eax
91 7ca4: b2 f5 mov $0xf5,%dl
92 7ca6: c1 e8 10 shr $0x10,%eax
93 7ca9: ee out %al,(%dx)
94 7caa: c1 ef 18 shr $0x18,%edi
95 7cad: b2 f6 mov $0xf6,%dl
96 7caf: 89 f8 mov %edi,%eax
97 7cb1: 83 c8 e0 or $0xffffffe0,%eax
98 7cb4: ee out %al,(%dx)
99 7cb5: b0 20 mov $0x20,%al
100 7cb7: b2 f7 mov $0xf7,%dl
101 7cb9: ee out %al,(%dx)
102 7cba: e8 ad ff ff ff call 7c6c <waitdisk>
103 7cbf: 8b 7d 08 mov 0x8(%ebp),%edi
104 7cc2: b9 80 00 00 00 mov $0x80,%ecx
105 7cc7: ba f0 01 00 00 mov $0x1f0,%edx
106 7ccc: fc cld
107 7ccd: f2 6d repnz insl (%dx),%es:(%edi)
108 7ccf: 5f pop %edi
109 7cd0: 5d pop %ebp
110 7cd1: c3 ret
112 00007cd2 <readseg>:
113 7cd2: 55 push %ebp
114 7cd3: 89 e5 mov %esp,%ebp
115 7cd5: 57 push %edi
116 7cd6: 56 push %esi
117 7cd7: 53 push %ebx
118 7cd8: 51 push %ecx
119 7cd9: 8b 75 08 mov 0x8(%ebp),%esi
120 7cdc: 8b 5d 0c mov 0xc(%ebp),%ebx
121 7cdf: 8b 7d 14 mov 0x14(%ebp),%edi
122 7ce2: 89 f0 mov %esi,%eax
123 7ce4: 81 e6 00 fe ff 00 and $0xfffe00,%esi
124 7cea: 25 ff ff ff 00 and $0xffffff,%eax
125 7cef: 01 c3 add %eax,%ebx
126 7cf1: 03 45 10 add 0x10(%ebp),%eax
127 7cf4: c1 ef 09 shr $0x9,%edi
128 7cf7: 47 inc %edi
129 7cf8: 89 45 f0 mov %eax,-0x10(%ebp)
130 7cfb: eb 10 jmp 7d0d <readseg+0x3b>
131 7cfd: 57 push %edi
132 7cfe: 47 inc %edi
133 7cff: 56 push %esi
134 7d00: 81 c6 00 02 00 00 add $0x200,%esi
135 7d06: e8 76 ff ff ff call 7c81 <readsect>
136 7d0b: 58 pop %eax
137 7d0c: 5a pop %edx
138 7d0d: 39 de cmp %ebx,%esi
139 7d0f: 72 ec jb 7cfd <readseg+0x2b>
140 7d11: eb 04 jmp 7d17 <readseg+0x45>
141 7d13: c6 03 00 movb $0x0,(%ebx)
142 7d16: 43 inc %ebx
143 7d17: 3b 5d f0 cmp -0x10(%ebp),%ebx
144 7d1a: 72 f7 jb 7d13 <readseg+0x41>
145 7d1c: 8d 65 f4 lea -0xc(%ebp),%esp
146 7d1f: 5b pop %ebx
147 7d20: 5e pop %esi
148 7d21: 5f pop %edi
149 7d22: 5d pop %ebp
150 7d23: c3 ret
152 00007d24 <bootmain>:
153 7d24: 55 push %ebp
154 7d25: 89 e5 mov %esp,%ebp
155 7d27: 56 push %esi
156 7d28: 53 push %ebx
157 7d29: 6a 00 push $0x0
158 7d2b: 68 00 10 00 00 push $0x1000
159 7d30: 68 00 10 00 00 push $0x1000
160 7d35: 68 00 00 01 00 push $0x10000
161 7d3a: e8 93 ff ff ff call 7cd2 <readseg>
162 7d3f: 83 c4 10 add $0x10,%esp
163 7d42: 81 3d 00 00 01 00 7f cmpl $0x464c457f,0x10000
164 7d49: 45 4c 46
165 7d4c: 75 42 jne 7d90 <bootmain+0x6c>
166 7d4e: 8b 1d 1c 00 01 00 mov 0x1001c,%ebx
167 7d54: 0f b7 05 2c 00 01 00 movzwl 0x1002c,%eax
168 7d5b: 81 c3 00 00 01 00 add $0x10000,%ebx
169 7d61: c1 e0 05 shl $0x5,%eax
170 7d64: 8d 34 03 lea (%ebx,%eax,1),%esi
171 7d67: eb 17 jmp 7d80 <bootmain+0x5c>
172 7d69: ff 73 04 pushl 0x4(%ebx)
173 7d6c: ff 73 14 pushl 0x14(%ebx)
174 7d6f: ff 73 10 pushl 0x10(%ebx)
175 7d72: ff 73 08 pushl 0x8(%ebx)
176 7d75: 83 c3 20 add $0x20,%ebx
177 7d78: e8 55 ff ff ff call 7cd2 <readseg>
178 7d7d: 83 c4 10 add $0x10,%esp
179 7d80: 39 f3 cmp %esi,%ebx
180 7d82: 72 e5 jb 7d69 <bootmain+0x45>
181 7d84: a1 18 00 01 00 mov 0x10018,%eax
182 7d89: 25 ff ff ff 00 and $0xffffff,%eax
183 7d8e: ff d0 call *%eax
184 7d90: ba 00 8a 00 00 mov $0x8a00,%edx
185 7d95: b8 00 8a ff ff mov $0xffff8a00,%eax
186 7d9a: 66 ef out %ax,(%dx)
187 7d9c: b8 00 8e ff ff mov $0xffff8e00,%eax
188 7da1: 66 ef out %ax,(%dx)
189 7da3: 8d 65 f8 lea -0x8(%ebp),%esp
190 7da6: 5b pop %ebx
191 7da7: 5e pop %esi
192 7da8: 5d pop %ebp
193 7da9: c3 ret