[問題] 請問malloc, calloc這類c語言在assembly的對應指令

看板ASM (組合語言)作者 (OK的啦~我都可以接受)時間16年前 (2008/07/14 02:27), 編輯推噓5(504)
留言9則, 5人參與, 最新討論串1/1
這學期學了組語 在課堂上老師解釋的時候 時常會拿c語言跟組語之間的轉換來給我們作為比較 可是我最近在寫的時候突然發現 如果說, 一個c程式對於變數的靜態宣告 ex. int a = 5 其實就是在組語程式的最前面, 先給了一塊變數位址 那動態的呢(ex. malloc, calloc)?? 翻了整本教科書, 實在想不到什麼組語的指令可以做到這件事 OTZ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.243.43

07/14 02:46, , 1F
靜態的通常是sub esp, N吧?
07/14 02:46, 1F

07/14 02:46, , 2F
動態的是透過Heap,你只能說他是 call _malloc
07/14 02:46, 2F

07/14 02:47, , 3F
因為malloc是一__cdecl calling convention的global func
07/14 02:47, 3F

07/14 02:48, , 4F
由作業系統進行底層呼叫以及記憶體管理.
07/14 02:48, 4F

07/14 09:32, , 5F
由底層控制, x86有 int 可以做這些事
07/14 09:32, 5F

07/14 09:34, , 6F
若是在DOS下, 則是DOS呼叫... mov ah,XX int 21h
07/14 09:34, 6F

07/14 09:35, , 7F
XX=48h 相當於 malloc, 49h 則是 free, 4ah 則是 realloc
07/14 09:35, 7F

07/14 19:49, , 8F
樓上以回文的方式詳細說明的話可收至精華區
07/14 19:49, 8F

07/21 23:04, , 9F
都是 call OS 提供的 function. DOS是 int, Win 是 HeapAlloc
07/21 23:04, 9F
文章代碼(AID): #18UaZxBc (ASM)
文章代碼(AID): #18UaZxBc (ASM)