U E D R , A S I H C RSS

C/Assembly/Main

šฐ„  ธฐ–ต ํ•˜Š” ฒƒ ณตŠต.

~cpp 
int main(){ return; }

.globl main
        .type   main, @function
main:
        pushl   %ebp            // ํ˜„žฌ˜ ช… –ด Counter Stack—  €žฅํ•จ. ด ํ”„กœทธžจด ‚˜ฉด stack—„œ ‹ค‹œ ƒ„.
        movl    %esp, %ebp
        subl    $8, %esp        // ˆ Šคํƒ ํ• ‹
        andl    $-16, %esp

        movl    $0, %eax        // eax = 0
        addl    $15, %eax       // eax = 15
        addl    $15, %eax       // eax = 15  11110(Bin)
        shrl    $4, %eax        // eax = 0xF0000001   11110000000000000000000000000001(bin)
        sall    $4, %eax        // eax = 0x1F         00000000000000000000000000011111(bin)

        subl    %eax, %esp

        movl    $0, %eax        // return 0;
        leave                   // ํ”„กœทธžจ˜ ข…ฃŒ. stack—„œ ํ”„กœทธžจ ‹œž‘  „˜ ช… –ด ‚ด %ebp— ง‘–ด „Š” —ญํ• .
        ret                     // ํ”„กœทธžจด ข…ฃŒ.

push - ret
Windows OS€ •„‹Œ DOS OSŠ” ฉ”ชจฆฌ˜ €ฆฌ Kernel(OS˜ Core)ด •„‹Œ Program—„œ ํ•ดฒŒ œ‹ค.
”ฐ„œ ํ”„กœทธžจด ‹œž‘ํ•˜ณ  ‚˜ฐˆ•Œ—Š” –ด””„œ ํ”„กœทธžจ„ ‹œž‘ํ•˜ณ  ƒˆŠ”€ œ„˜  €žฅ(push)ํ•˜ณ  ฐ˜ํ™˜(leave)ํ•ด•ํ•œ‹ค.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:47
Processing time 0.0098 sec