電腦是如何工作的

來源:互聯網
上載者:User

標籤:

知識點:

馮諾依曼體繫結構結構,它最核心的思想是儲存程式電腦。

cpu通過匯流排與記憶體串連,依靠ip指標依次從記憶體中取出一條指令執行。

API:程式員與電腦的介面介面。

ABI:程式與CPU的介面介面。

寄存器、定址方式和各類指令在學習《深入理解電腦》和《彙編》時已做了詳細瞭解,不再贅述。

 

實驗:

入下:

 

原代碼為:

int g(int x)
{
return x+3;
}

int f(int x)
{
return g(x);
}
a
int main(void)
{
return f(8)+1;
}

彙編代碼為:

g:
pushl%ebp
movl%esp, %ebp
movl8(%ebp), %eax
addl$3, %eax
popl%ebp
ret
f:
pushl%ebp
movl%esp, %ebp
subl$4, %esp
movl8(%ebp), %eax
movl%eax, (%esp)
callg
leave
ret
main:
pushl%ebp
movl%esp, %ebp
subl$4, %esp
movl$8, (%esp)
callf
addl$1, %eax
leave
ret

代碼非常簡單,只要記住

pushl %ebp 等價於 subl $4,%esp movl %ebp,(%esp)

leave 等價於 movl %ebp,%esp popl %ebp

popl %ebp 等價於 movl (%esp),%ebp addl $4

call是將返回地址也就是當前eip的值壓入棧頂,然後跳轉到函數的起始地址

ret彈出返回地址到eip繼續執行下面的指令

 

電腦的工作原理:

就是按照程式的編排,cpu從記憶體中一個一個取出指令和資料並執行。

 

胡禦風

原創作品轉載請註明出處

《Linux核心分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000

電腦是如何工作的

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.