⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lib386.t

📁 操作系统设计与实现源码
💻 T
📖 第 1 页 / 共 5 页
字号:
			src/lib/i386/em/em_ngf4.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++04700	.sect .text; .sect .rom; .sect .data; .sect .bss04701	.define .ngf404702	04703	        .sect .text04704	.ngf4:04705	        mov     bx,sp04706	        flds    4(bx)04707	        fchs04708	        fstps   4(bx)04709	        wait04710	        ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_ngf8.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++04800	.sect .text; .sect .rom; .sect .data; .sect .bss04801	.define .ngf804802	04803	        .sect .text04804	.ngf8:04805	        mov     bx,sp04806	        fldd    4(bx)04807	        fchs04808	        fstpd   4(bx)04809	        wait04810	        ret.Ep 26 src/lib/i386/em/em_ngi.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_ngi.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++04900	.sect .text; .sect .rom; .sect .data; .sect .bss04901	.sect .text04902	.define .ngi04903	04904	        ! #bytes in eax04905	.ngi:04906	        pop     ebx              ! return address04907	        cmp     eax,404908	        jne     1f04909	        pop     ecx04910	        neg     ecx04911	        push    ecx04912	        jmp     ebx04913	1:04914	.extern EODDZ04915	.extern .trp04916	        mov     eax,EODDZ04917	        push    ebx04918	        jmp     .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_nop.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05000	.sect .text; .sect .rom; .sect .data; .sect .bss05001	.sect .text05002	.define .nop05003	.extern printd, printc, hol005004	05005	.nop:05006	        mov     eax,(hol0)05007	        call    printd05008	        movb    al,'\n'05009	        jmp     printc++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_print.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05100	.sect .text; .sect .rom; .sect .data; .sect .bss05101	.sect .text05102	.define printc,printd,prints05103	05104	        ! argument in eax05105	        ! uses ebx05106	prints:05107	        xchg    eax,ebx05108	1:05109	        movb    al,(ebx).Op 27 src/lib/i386/em/em_print.s05110	        inc     ebx05111	        testb   al,al05112	        jz      2f05113	        call    printc05114	        jmp     1b05115	2:05116	        ret05117	05118	        ! argument in eax05119	        ! uses ecx and edx05120	printd:05121	        xor     edx,edx05122	        mov     ecx,1005123	        div     ecx05124	        test    eax,eax05125	        jz      1f05126	        push    edx05127	        call    printd05128	        pop     edx05129	1:05130	        xchg    eax,edx05131	        addb    al,'0'05132	05133	        ! argument in eax05134	printc:05135	        push    eax05136	        mov     ebx,esp05137	        mov     eax,105138	        push    eax05139	        push    ebx05140	        push    eax05141	        call    __write05142	        pop     ebx05143	        pop     ebx05144	        pop     ebx05145	        pop     ebx05146	        ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_rck.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05200	.sect .text; .sect .rom; .sect .data; .sect .bss05201	.sect .text05202	.define .rck05203	05204	        ! descriptor address in ebx05205	        ! value in eax, must be left there05206	.rck:05207	        cmp     eax,(ebx)05208	        jl      2f05209	        cmp     eax,4(ebx)05210	        jg      2f05211	        ret05212	2:05213	        push    eax05214	.extern ERANGE.Ep 28 src/lib/i386/em/em_rck.s05215	.extern .error05216	        mov     eax,ERANGE05217	        call    .error05218	        pop     eax05219	        ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_rmi.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05300	.sect .text; .sect .rom; .sect .data; .sect .bss05301	.sect .text05302	.define .rmi05303	05304	        ! #bytes in eax05305	.rmi:05306	        pop     ebx              ! return address05307	        cmp     eax,405308	        jne     1f05309	        pop     eax05310	        cwd05311	        pop     ecx05312	        idiv    ecx05313	        push    edx05314	        jmp     ebx05315	1:05316	.extern EODDZ05317	.extern .trp05318	        mov     eax,EODDZ05319	        push    ebx05320	        jmp     .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_rmu.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05400	.sect .text; .sect .rom; .sect .data; .sect .bss05401	.sect .text05402	.define .rmu05403	05404	        ! #bytes in eax05405	.rmu:05406	        pop     ebx              ! return address05407	        cmp     eax,405408	        jne     1f05409	        pop     eax05410	        xor     edx,edx05411	        pop     ecx05412	        idiv    ecx05413	        push    edx05414	        jmp     ebx.Op 29 src/lib/i386/em/em_rmu.s05415	1:05416	.extern EODDZ05417	.extern .trp05418	        mov     eax,EODDZ05419	        push    ebx05420	        jmp     .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_rol.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05500	.sect .text; .sect .rom; .sect .data; .sect .bss05501	.sect .text05502	.define .rol05503	05504	        ! #bytes in eax05505	.rol:05506	        pop     edx              ! return address05507	        cmp     eax,405508	        jne     1f05509	        pop     eax05510	        pop     ecx05511	        rol     eax,cl05512	        push    eax05513	        jmp     edx05514	1:05515	.extern EODDZ05516	.extern .trp05517	        mov     eax,EODDZ05518	        push    edx05519	        jmp     .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_ror.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05600	.sect .text; .sect .rom; .sect .data; .sect .bss05601	.sect .text05602	.define .ror05603	05604	        ! #bytes in eax05605	.ror:05606	        pop     edx              ! return address05607	        cmp     eax,405608	        jne     1f05609	        pop     eax05610	        pop     ecx05611	        ror     eax,cl05612	        push    eax05613	        jmp     edx05614	1:.Ep 30 src/lib/i386/em/em_ror.s05615	.extern EODDZ05616	.extern .trp05617	        mov     eax,EODDZ05618	        push    edx05619	        jmp     .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_sar4.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05700	.sect .text; .sect .rom; .sect .data; .sect .bss05701	.sect .text05702	.define .sar405703	05704	.sar4:05705	                                ! ebx, descriptor address05706	                                ! eax, index05707	        sub     eax,(ebx)05708	        mov     ecx,8(ebx)05709	        imul    ecx05710	        pop     ebx05711	        pop     edx             ! base address05712	        add     edx,eax05713	        sar     ecx,105714	        jnb     1f05715	        pop     eax05716	        movb    (edx),al05717	        jmp     ebx05718	1:05719	        sar     ecx,105720	        jnb     1f05721	        pop     eax05722	        o16 mov (edx),ax05723	        jmp     ebx05724	1:05725	        xchg    edi,edx         ! edi = base address, edx is saved edi05726	        mov     eax,esi05727	        mov     esi,esp05728	        rep movs05729	        mov     esp,esi05730	        mov     esi,eax05731	        mov     edi,edx05732	        jmp     ebx.Op 31 src/lib/i386/em/em_sbf4.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_sbf4.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05800	.sect .text; .sect .rom; .sect .data; .sect .bss05801	.define .sbf405802	05803	        .sect .text05804	.sbf4:05805	        mov     bx,sp05806	        flds    8(bx)05807	        fsubs   4(bx)05808	        fstps   8(bx)05809	        wait05810	        ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_sbf8.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++05900	.sect .text; .sect .rom; .sect .data; .sect .bss05901	.define .sbf805902	05903	        .sect .text05904	.sbf8:05905	        mov     bx,sp05906	        fldd    12(bx)05907	        fsubd   4(bx)05908	        fstpd   12(bx)05909	        wait05910	        ret++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_sbi.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++06000	.sect .text; .sect .rom; .sect .data; .sect .bss06001	.sect .text06002	.define .sbi06003	06004	        ! #bytes in ecx , top of stack in eax06005	.sbi:06006	        pop     ebx              ! return subress06007	        cmp     ecx,406008	        jne     1f06009	        pop     ecx06010	        sub     eax,ecx06011	        neg     eax06012	        jmp     ebx06013	1:06014	.extern EODDZ.Ep 32 src/lib/i386/em/em_sbi.s06015	.extern .trp06016	        mov     eax,EODDZ06017	        push    ebx06018	        jmp     .trp++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_set.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++06100	.sect .text; .sect .rom; .sect .data; .sect .bss06101	.sect .text06102	.define .set06103	06104	        ! #bytes in ecx06105	        ! bit # in eax06106	.set:06107	        pop     ebx              ! return address06108	        xor     edx,edx06109	!ifdef create set06110	        sub     esp,ecx06111	        push    ebx06112	        push    edi06113	        mov     ebx,esp06114	        xor     edi,edi06115	        sar     ecx,206116	1:06117	        mov     8(ebx)(edi),edx06118	        add     edi,406119	        loop    1b06120	!endif06121	        mov     ebx,806122	        div     ebx06123	        cmp     eax,edi06124	        jae     2f06125	        mov     edi,edx06126	        movb    dl,bits(edi)06127	        mov     edi,esp06128	        add     edi,eax06129	        orb     8(edi),dl06130	        pop     edi06131	        ret06132	2:06133	.extern ESET06134	.extern .trp06135	        pop     edi06136	        mov     eax,ESET06137	        jmp     .trp06138	06139	        .sect .rom06140	bits:06141	        .data1   1,2,4,8,16,32,64,128.Op 33 src/lib/i386/em/em_sli.s++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++			src/lib/i386/em/em_sli.s	 	 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++06200	.sect .text; .sect .rom; .sect .data; .sect .bss06201	.sect .text06202	.define .sli06203	06204	        ! #bytes in eax06205	.sli:06206	        pop     edx              ! return address06207	        cmp     eax,406208	        jne     1f06209	        pop     eax06210	        pop     ecx06211	        sal     eax,cl

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -