📄 lib386.t
字号:
.fp 5 CW LucidaT .\" To use a font other than Lucida, change 'LucidaT'.po .9i.lg 0.nf.ec `.ps 7.vs 9.lt 5.25i`f5.nr Tb `w'0'.nr Fp 0.ta 9u*`n(Tbu 17u*`n(Tbu 25u*`n(Tbu 33u*`n(Tbu 41u*`n(Tbu 49u*`n(Tbu 57u*`n(Tbu 65u*`n(Tbu 73u*`n(Tbu 81u*`n(Tbu.de Op .if ``n(Fp>0 .bp.nr Fp 1.sp 0.75i.tl '``fR``s10MINIX SOURCE CODE``s0'``s11File: ``$2``s0``fP'``fB``s12``n%``s0``fP'.sp 0.25i...de Ep .if ``n(Fp>0 .bp.sp 0.75i.tl '``fB``s12``n%``s0``fP``fR'``s11File: ``$2'``s0``s10MINIX SOURCE CODE``s0``fP'.nr Fp 1.sp 0.25i...Op 1 src/lib/i386/em/byte_order.h++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/byte_order.h ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00000 #define CHAR_UNSIGNED 000001 #define MSB_AT_LOW_ADDRESS 000002 #define MSW_AT_LOW_ADDRESS 000003 #define FL_MSB_AT_LOW_ADDRESS 000004 #define FL_MSW_AT_LOW_ADDRESS 000005 #define FL_MSL_AT_LOW_ADDRESS 0++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_adf4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00100 .sect .text; .sect .rom; .sect .data; .sect .bss00101 .define .adf400102 00103 .sect .text00104 .adf4:00105 mov bx,sp00106 flds 4(bx)00107 fadds 8(bx)00108 fstps 8(bx)00109 wait00110 ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_adf8.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00200 .sect .text; .sect .rom; .sect .data; .sect .bss00201 .define .adf800202 00203 .sect .text00204 .adf8:00205 mov bx,sp00206 fldd 4(bx)00207 faddd 12(bx)00208 fstpd 12(bx)00209 wait00210 ret.Ep 2 src/lib/i386/em/em_adi.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_adi.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00300 .sect .text; .sect .rom; .sect .data; .sect .bss00301 .define .adi00302 00303 ! #bytes in ecx , top of stack in eax00304 .sect .text00305 .adi:00306 pop ebx ! return address00307 cmp ecx,400308 jne 9f00309 pop ecx00310 add eax,ecx00311 jmp ebx00312 9:00313 .extern EODDZ00314 .extern .trp00315 mov eax,EODDZ00316 push ebx00317 jmp .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_and.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00400 .sect .text; .sect .rom; .sect .data; .sect .bss00401 .define .and00402 00403 ! #bytes in ecx00404 ! save edi; it might be a register variable00405 00406 .sect .text00407 .and:00408 pop ebx ! return address00409 mov edx,edi00410 mov edi,esp00411 add edi,ecx00412 sar ecx,200413 1:00414 pop eax00415 and eax,(edi)00416 stos00417 loop 1b00418 mov edi,edx00419 jmp ebx.Op 3 src/lib/i386/em/em_blm.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_blm.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00500 .sect .text; .sect .rom; .sect .data; .sect .bss00501 .sect .text00502 .define .blm00503 00504 ! ecx: count in words00505 .blm:00506 mov ebx,esp00507 mov eax,esi00508 mov edx,edi00509 mov edi,4(ebx)00510 mov esi,8(ebx)00511 rep movs00512 mov esi,eax00513 mov edi,edx00514 ret 800515 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cff4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00600 .sect .text; .sect .rom; .sect .data; .sect .bss00601 .define .cff400602 00603 .sect .text00604 .cff4:00605 mov bx,sp00606 fldd 4(bx)00607 fstcw 4(bx)00608 wait00609 mov dx,4(bx)00610 and 4(bx),0xf3ff ! set to rounding mode00611 wait00612 fldcw 4(bx)00613 fstps 8(bx)00614 mov 4(bx),dx00615 wait00616 fldcw 4(bx)00617 wait00618 ret.Ep 4 src/lib/i386/em/em_cff8.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cff8.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00700 .sect .text; .sect .rom; .sect .data; .sect .bss00701 .define .cff800702 00703 .sect .text00704 .cff8:00705 mov bx,sp00706 flds 4(bx)00707 fstpd 4(bx)00708 wait00709 ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cfi.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00800 .sect .text; .sect .rom; .sect .data; .sect .bss00801 .define .cfi00802 00803 .sect .text00804 .cfi:00805 mov bx,sp00806 fstcw 4(bx)00807 wait00808 mov dx,4(bx)00809 or 4(bx),0xc00 ! truncating mode00810 wait00811 fldcw 4(bx)00812 cmp 8(bx),400813 jne 2f00814 ! loc 4 loc ? cfi00815 flds 12(bx)00816 fistpl 12(bx)00817 1:00818 mov 4(bx),dx00819 wait00820 fldcw 4(bx)00821 ret00822 2:00823 ! loc 8 loc ? cfi00824 fldd 12(bx)00825 fistpl 16(bx)00826 jmp 1b.Op 5 src/lib/i386/em/em_cfu.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cfu.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00900 .sect .text; .sect .rom; .sect .data; .sect .bss00901 .define .cfu00902 00903 .sect .text00904 .cfu:00905 mov bx,sp00906 fstcw 4(bx)00907 wait00908 mov dx,4(bx)00909 or 4(bx),0xc00 ! truncating mode00910 wait00911 fldcw 4(bx)00912 cmp 8(bx),400913 jne 2f00914 ! loc 4 loc ? cfu00915 flds 12(bx)00916 fabs ! ???00917 fiaddl (bigmin)00918 fistpl 12(bx)00919 wait00920 mov ax,12(bx)00921 sub ax,(bigmin)00922 mov 12(bx),ax00923 1:00924 mov 4(bx),dx00925 wait00926 fldcw 4(bx)00927 ret00928 2:00929 ! loc 8 loc ? cfu00930 fldd 12(bx)00931 fabs ! ???00932 fiaddl (bigmin)00933 fistpl 16(bx)00934 mov ax,16(bx)00935 sub ax,(bigmin)00936 mov 16(bx),ax00937 jmp 1b++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cif4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01000 .sect .text; .sect .rom; .sect .data; .sect .bss01001 .define .cif401002 01003 .sect .text01004 .cif4:01005 mov bx,sp01006 fildl 8(bx)01007 fstps 8(bx)01008 wait01009 ret.Ep 6 src/lib/i386/em/em_cif8.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cif8.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01100 .sect .text; .sect .rom; .sect .data; .sect .bss01101 .define .cif801102 01103 .sect .text01104 .cif8:01105 mov bx,sp01106 fildl 8(bx)01107 fstpd 4(bx)01108 wait01109 ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cii.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01200 .sect .text; .sect .rom; .sect .data; .sect .bss01201 .define .cii01202 01203 .sect .text01204 .cii:01205 pop ebx ! return address01206 ! pop ecx, dest. size01207 ! pop edx, src. size01208 ! eax is source01209 cmp edx,101210 jne 2f01211 movsxb eax,al01212 mov edx,401213 jmp 1f01214 2:01215 cmp edx,201216 jne 1f01217 cwde ! convert from 2 to 4 bytes01218 mov edx,401219 1:01220 cmp edx,ecx01221 jne 9f01222 cmp edx,401223 jne 9f01224 jmp ebx01225 9:01226 .extern EILLINS01227 .extern .fat01228 mov eax,EILLINS01229 push eax01230 jmp .fat.Op 7 src/lib/i386/em/em_cmf4.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cmf4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01300 .sect .text; .sect .rom; .sect .data; .sect .bss01301 .define .cmf401302 01303 .sect .text01304 .cmf4:01305 mov bx,sp01306 xor cx,cx01307 flds 8(bx)01308 flds 4(bx)01309 fcompp ! compare and pop operands01310 fstsw ax01311 wait01312 sahf01313 je 1f01314 jb 2f01315 dec cx01316 jmp 1f01317 2:01318 inc cx01319 1:01320 mov ax,cx01321 ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cmf8.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01400 .sect .text; .sect .rom; .sect .data; .sect .bss01401 .define .cmf801402 01403 .sect .text01404 .cmf8:01405 mov bx,sp01406 xor cx,cx01407 fldd 12(bx)01408 fldd 4(bx)01409 fcompp ! compare and pop operands01410 fstsw ax01411 wait01412 sahf01413 je 1f01414 jb 2f01415 dec cx01416 jmp 1f01417 2:01418 inc cx01419 1:01420 mov ax,cx01421 ret.Ep 8 src/lib/i386/em/em_cms.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_cms.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01500 .sect .text; .sect .rom; .sect .data; .sect .bss01501 .define .cms01502 01503 ! #bytes in ecx01504 .sect .text01505 .cms:01506 pop ebx ! return address01507 mov edx,esp01508 push esi01509 push edi01510 mov esi,edx01511 add edx,ecx01512 mov edi,edx01513 add edx,ecx01514 sar ecx,201515 repe cmps01516 je 1f01517 inc ecx01518 1:01519 pop edi01520 pop esi01521 mov esp,edx01522 jmp ebx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i386/em/em_com.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01600 .sect .text; .sect .rom; .sect .data; .sect .bss01601 .define .com01602 01603 ! #bytes in ecx01604 .sect .text01605 .com:01606 mov ebx,esp01607 add ebx,401608 sar ecx,201609 1:01610 not (ebx)01611 add ebx,401612 loop 1b01613 ret.Op 9 src/lib/i386/em/em_csa4.s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -