📄 lib86.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/i86/em/adi.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/adi.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00000 .define .adi00001 00002 .text00003 .adi:00004 pop bx 00005 cmp cx,#200006 jne 1f00007 pop cx00008 add ax,cx00009 jmp (bx)00010 1:00011 cmp cx,#400012 jne 9f00013 pop dx00014 pop cx00015 add ax,cx00016 pop cx00017 adc dx,cx00018 push dx00019 jmp (bx)00020 9:00021 .extern .trpilin00022 push bx00023 jmp .trpilin++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/and.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00100 .define .and00101 00102 ! #bytes in cx00103 ! save di; it might be a register variable00104 00105 .text00106 .and:00107 pop bx ! return address00108 mov dx,di00109 mov di,sp00110 add di,cx00111 sar cx,#100112 1:00113 pop ax00114 and ax,(di)00115 stos00116 loop 1b00117 mov di,dx00118 jmp (bx).Ep 2 src/lib/i86/em/blm.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/blm.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00200 .define .blm00201 .text00202 00203 ! cx: count in words00204 .blm:00205 mov bx,sp00206 mov ax,si00207 mov dx,di00208 mov di,2(bx)00209 mov si,4(bx)00210 rep00211 mov00212 mov si,ax00213 mov di,dx00214 ret 4++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/cii.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00300 .define .cii00301 00302 .text00303 .cii:00304 pop bx ! return address00305 ! pop cx, dest. size00306 ! pop dx, src. size00307 ! ax is first word of source00308 cmp dx,#100309 jne 2f00310 cbw00311 mov dx,#200312 2:00313 cmp dx,cx00314 je 8f00315 cmp dx,#200316 je 1f00317 cmp dx,#400318 jne 9f00319 cmp cx,#200320 jne 9f00321 pop dx00322 8:00323 jmp (bx)00324 1:00325 cmp cx,#400326 jne 9f00327 cwd00328 push dx00329 jmp (bx).Op 3 src/lib/i86/em/cii.s00330 9:00331 push ax ! push low source00332 EILLINS = 1800333 .extern .fat00334 mov ax,#EILLINS00335 push ax00336 jmp .fat++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/cmi4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00400 .define .cmi400401 00402 .text00403 .cmi4:00404 pop bx ! return address00405 pop cx00406 pop dx00407 pop ax00408 push si00409 mov si,sp00410 xchg bx,2(si)00411 pop si00412 cmp bx,dx00413 jg 1f00414 jl 2f00415 cmp ax,cx00416 ja 1f00417 je 3f00418 2:00419 mov ax,#-100420 ret00421 3:00422 xor ax,ax00423 ret00424 1:00425 mov ax,#100426 ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/cms.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00500 .define .cms00501 00502 ! #bytes in cx00503 .text00504 .cms:00505 pop bx ! return address00506 mov dx,sp00507 push si00508 push di00509 mov si,dx.Ep 4 src/lib/i86/em/cms.s00510 add dx,cx00511 mov di,dx00512 add dx,cx00513 sar cx,#100514 repe00515 cmp00516 je 1f00517 inc cx00518 1:00519 pop di00520 pop si00521 mov sp,dx00522 jmp (bx)++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/cmu4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00600 .define .cmu400601 00602 .text00603 .cmu4:00604 pop bx ! return address00605 pop cx00606 pop dx00607 pop ax00608 push si00609 mov si,sp00610 xchg bx,2(si)00611 pop si00612 cmp bx,dx00613 ja 1f00614 jb 2f00615 cmp ax,cx00616 ja 1f00617 je 3f00618 2:00619 mov ax,#-100620 ret00621 3:00622 xor ax,ax00623 ret00624 1:00625 mov ax,#100626 ret.Op 5 src/lib/i86/em/com.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/com.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00700 .define .com00701 00702 ! #bytes in cx00703 .text00704 .com:00705 mov bx,sp00706 inc bx00707 inc bx00708 sar cx,#100709 1:00710 not (bx)00711 inc bx00712 inc bx00713 loop 1b00714 ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/csa2.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00800 .define .csa200801 00802 .text00803 .csa2:00804 ! bx, descriptor address00805 ! ax, index00806 mov dx,(bx) ! default00807 sub ax,2(bx)00808 cmp ax,4(bx)00809 ja 1f00810 sal ax,#100811 add bx,ax00812 mov bx,6(bx)00813 test bx,bx00814 jnz 2f00815 1:00816 mov bx,dx00817 test bx,bx00818 jnz 2f00819 ECASE = 2000820 .extern .fat00821 mov ax,#ECASE00822 push ax00823 jmp .fat00824 2:00825 jmp (bx).Ep 6 src/lib/i86/em/csa4.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/csa4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++00900 .sect .text; .sect .rom; .sect .data; .sect .bss00901 .define .csa400902 00903 .sect .text00904 .csa4:00905 ! bx, descriptor address00906 ! ax, dx: index00907 mov cx,(bx) ! default00908 sub ax,2(bx)00909 ! ignore high order word; if non-zero, the00910 ! case descriptor would not fit anyway00911 cmp ax,6(bx)00912 ja 1f00913 2:00914 sal ax,#100915 add bx,ax00916 mov bx,10(bx)00917 test bx,bx00918 jnz 2f00919 1:00920 mov bx,cx00921 test bx,bx00922 jnz 2f00923 ECASE = 2000924 .extern .fat00925 mov ax,#ECASE00926 push ax00927 jmp .fat00928 2:00929 jmp (bx)++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/csb2.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01000 .define .csb201001 01002 .text01003 .csb2:01004 !bx, descriptor address01005 !ax, index01006 mov dx,(bx)01007 mov cx,2(bx)01008 1:01009 add bx,#401010 dec cx01011 jl 4f01012 cmp ax,(bx)01013 jne 1b01014 mov bx,2(bx).Op 7 src/lib/i86/em/csb2.s01015 2:01016 test bx,bx01017 jnz 3f01018 ECASE = 2001019 .extern .fat01020 mov ax,#ECASE01021 push ax01022 jmp .fat01023 3:01024 jmp (bx)01025 4:01026 mov bx,dx01027 jmp 2b++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/csb4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01100 .sect .text; .sect .rom; .sect .data; .sect .bss01101 .define .csb401102 01103 .sect .text01104 .csb4:01105 !bx: descriptor address01106 !ax, dx: index01107 push (bx) ! default01108 mov cx,2(bx) ! count (ignore high order word, the descriptor01109 ! would not fit anyway)01110 1:01111 add bx,#601112 dec cx01113 jl 4f01114 cmp ax,(bx)01115 jne 1b01116 cmp dx,2(bx)01117 jne 1b01118 pop bx01119 mov bx,4(bx)01120 2:01121 test bx,bx01122 jnz 3f01123 ECASE = 2001124 .extern .fat01125 mov ax,#ECASE01126 push ax01127 jmp .fat01128 3:01129 jmp (bx)01130 4:01131 pop bx01132 jmp 2b.Ep 8 src/lib/i86/em/cuu.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/cuu.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01200 .define .ciu01201 .define .cui01202 .define .cuu01203 01204 .text01205 .ciu:01206 .cui:01207 .cuu:01208 pop bx ! return address01209 ! pop cx, dest. size01210 ! pop dx, source size01211 ! ax is low word of source01212 cmp dx,cx01213 je 8f01214 cmp dx,#201215 je 1f01216 cmp dx,#401217 jne 9f01218 cmp cx,#201219 jne 9f01220 pop dx01221 8:01222 jmp (bx)01223 1:01224 cmp cx,#401225 jne 9f01226 xor dx,dx01227 push dx01228 jmp (bx)01229 9:01230 push ax ! to help debugging ?01231 EILLINS = 1801232 .extern .fat01233 mov ax,#EILLINS01234 push ax01235 jmp .fat++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/dup.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++01300 .define .dup01301 01302 ! #bytes in cx01303 .text01304 .dup:01305 pop bx ! return address01306 mov ax,si01307 mov dx,di01308 mov si,sp01309 sub sp,cx.Op 9 src/lib/i86/em/dup.s01310 mov di,sp01311 sar cx,#101312 rep01313 mov01314 mov si,ax01315 mov di,dx01316 jmp (bx)++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/i86/em/dvi4.s ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -