匯編干貨筆記->6.0 代碼段中使用數(shù)據(jù)


以下是文字提取部分,閱讀完畢的同學(xué)可以離開了
考慮這樣一個(gè)問題
我們想用;循環(huán);累加一組數(shù)據(jù)
顯然這段數(shù)據(jù);不在內(nèi)存中;
;無法做到;循環(huán)操作

但你有沒有想過
程序在運(yùn)行時(shí),會(huì)被;裝入內(nèi)存;
我們完全可以;借用這段內(nèi)存;來放數(shù)據(jù)

;dw;是定義字型數(shù)據(jù)
這里定義了八個(gè)字型數(shù)據(jù)
我們說過,cs存放代碼段的;段地址;
既然數(shù)據(jù);在代碼段中;
那么cs也必然是;數(shù)據(jù)的段地址;
它的;偏移地址;是0~E
;0,2,4,6,8,A,C,E;

下面我debug一下這個(gè)程序
紅線部分是我們;存放的數(shù)據(jù);
從IP=;0010;開始
是我們的;代碼區(qū)域;

現(xiàn)在存在;一個(gè)問題;
debug中我們;可以設(shè)置;CS:IP=1CA5:10
但可執(zhí)行文件.exe并;不知道程序入口;在哪里
exe文件只會(huì);從CS:IP處;開始執(zhí)行
你可以用start:;指定程序入口;

在;源程序一篇中;
我們說過end;代表程序的結(jié)束;
而這里end start指明了;程序的入口在start;
也就是說mov bx,0是程序的;第一條指令;

既然end可以指定程序的入口
那么如何知道;哪一條指令;是程序的入口
源程序一章講過
可執(zhí)行文件=;描述文件;+程序
;編譯和連接;后
end start將;被轉(zhuǎn)換為;入口地址
存儲(chǔ)在;描述信息中;

當(dāng)程序被;加載到內(nèi)存;后
;加載者;會(huì)從描述信息中讀取到入口地址
這個(gè)加載者就是前面我們說過的
;p1程序;

最后
;歡迎光臨小站:yuruotong.com;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容