欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

匯編語言4,5章學習筆記-創(chuàng)新互聯(lián)

4.1一個源程序從寫出到執(zhí)行的過程

成都創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎服務商,為您提供服務器托管,高防主機,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務。

一個匯編語言程序從寫出到最終執(zhí)行的簡要過程:

編寫~編譯連接~執(zhí)行

1、編寫:使用文本編輯器(如記事本、nodepad++、UltraEdit等),用匯編語言編寫匯編源程序。

2、對源程序編譯連接:使用匯編語言編譯程序(MASM.EXE)對源程序文件中的源程序進行編譯,? 產(chǎn)生目標文件;再用連接程序(LINK.EXE)對目標文件進行連接,生成可在操作系統(tǒng)中直接運行的可執(zhí)行文件。

?可執(zhí)行文件包含兩部分內(nèi)容:

?程序(從源程序中的匯編指令翻譯過來的機器碼)和數(shù)據(jù)(源程序中定義的數(shù)據(jù))

?相關的描述信息(比如:程序有多大、要占多少內(nèi)存空間等)

3、執(zhí)行可執(zhí)行文件中的程序:操作系統(tǒng)依照可執(zhí)行文件中的描述信息,將可執(zhí)行文件中的機器碼和數(shù)據(jù)加載入內(nèi)存,并進行相關的初始化(比如:設置CS:IP指向第一條要執(zhí)行的指令),然后由cpu執(zhí)行程序。

4.2源程序

匯編指令? 有對應的機器碼的指令,可以被編譯成機器指令,最終為cpu所執(zhí)行。

偽指令? 沒有對應的機器碼的指令,最終不被cpu所執(zhí)行。是由編譯器來執(zhí)行的指令,編譯器根據(jù)? ? ? ? ? ? ? ? ?偽指令來進行相關的編譯工作。

定義一個段? ? ?segment和ends是成對使用的偽指令,在寫被編譯器編譯的匯編程序時,必須要用? ? ? ? ? ? ? ? ? ? ? ? ?到的一對偽指令,其功能是定義一個段,segment說明一個段開始,ends說明一個? ? ? ? ? ? ? ? ? ? ? ? ?段結束。

?(一個段必須有一個名稱來標識,使用格式為:段名 segment? ? 段名 ends)

一個匯編程序由多個段組成,這些段被用來存放代碼,數(shù)據(jù),或當作棧空間來使用。

end是一個匯編程序的結束標記

assume含義為假設 其假設某一段寄存器和程序中的某一個用segment...?ends定義的段相關聯(lián)。?

源程序中的“程序”

匯編源程序:

偽指令(編譯器處理)

匯編指令(編譯為機器碼)

程序:源程序中最終由計算機執(zhí)行、處理的指令或數(shù)據(jù)。

標號

一個標號指代了一個地址

codesg:放在segment的前面,作為一個段的名稱,這個段的名稱最終將被編譯、連接程序處理為一個段的段地址。

一個程序結束后,將cpu的控制權交還給使它得以運行的程序,我們稱這個過程為:程序返回

應該在程序末尾添加返回的程序段。

? mov ax,4c00H

? int 21H

? 這兩條指令所實現(xiàn)的功能就是程序返回

段結束 程序結束 程序返回

編譯和連接

連接的作用:

?當源程序很大時,可以將它分為多個源程序文件夾來編譯,每個源程序編譯成為目標文件后,再? ? ?用連接程序將他們連接到一起,生成一個可執(zhí)行文件;

?程序中調(diào)用了某個庫文件中的子程序,需要將這個庫文件和該程序生成的目標文件連接到一起,? ? ?生成一個可執(zhí)行文件。

?一個源程序編譯后,得到了存有機器碼的目標文件,目標文件中有些內(nèi)容不能直接用來生成執(zhí)行? ? ?文件,連接程序將這些內(nèi)容處理為最終的可執(zhí)行文件。

4.8可執(zhí)行文件中的程序裝入內(nèi)存并運行的原理?

1.exe的執(zhí)行過程:

??(1)我們在提示符”G:\TRY“后面輸入可執(zhí)行文件的名字”1“,按enter鍵。

??(2)1.exe中的程序運行;

? (3)運行結束,返回,再次顯示提示符”G:\TRY"。

操作系統(tǒng)的外殼shell

匯編程序從寫出到執(zhí)行的過程:

4.9程序執(zhí)行過程的跟蹤

debug可以將程序加載入內(nèi)存,設置CS:IP指向程序的入口,但debug并不放棄對cpu的控制,這樣,我們就可以使用debug的相關命令來單步執(zhí)行程序,查看每條指令的執(zhí)行結果。

程序加載后,ds中存放著程序所在內(nèi)存區(qū)的段地址,這個內(nèi)存區(qū)的偏移地址為0,則程序所在的內(nèi)存區(qū)的地址為:ds:0;

這個內(nèi)存區(qū)的前256個字節(jié)中存放的是PSP,dos用來和程序進行通信。

從256字節(jié)處向后的空間存放的是程序。

所以 PSP的段地址SA,偏移地址為0,物理地址為SA*16+0.。

要使用P命令執(zhí)行int21。

5.1[bx]

[bx]和[0]有些類似,[0]表示內(nèi)存單元,它的偏移地址是0.

(1)內(nèi)存單元的地址:

(2)內(nèi)存單元的長度。

我們用[0]表示一個內(nèi)存單元時,0 表示單元的 偏移地址,段地址默認在ds中,單元的長度 (類型)可以由具體指令中的其他操作對象 (比如說寄存器)指出如前邊的AX.AL。

[bx]同樣也表示一個內(nèi)存單元,它的偏移地址在bx中,比如下面的指令:

mov ax,[bx]

mov al, [bx]

loop循環(huán)

描述性符號()

pop ax?

(ax)=((ss)*16+(sp))

(sp)=(sp)+2

idata表示常量

mov ax,[bx] 功能:bx中存放的數(shù)據(jù)作為一個偏移地址 EA ,段地址SA 默認在ds中,將SA:EA處 的教據(jù)送入ax中 即(ax)=(ds*16+(bx))

5.2loop

指令的格式是:loop標號,CPU 執(zhí)行l(wèi)oop指令的時候,要進行兩步操作:

1、(cx)?=(cx)-1

2、?判斷cx中的值,不為零則轉至標號處執(zhí)行程序,如果為零則向下執(zhí)行。

通常用loop實現(xiàn)循環(huán)功能,cx中存放循環(huán)次數(shù)

mov cx,循環(huán)次數(shù)

s:

? 循環(huán)執(zhí)行的程序段

? loops

利用加法計算123*236

assume cs:code
code segment
  mov ax,0
  mov cx,236
s:add ax,123
 loop s

mov ax,4c00h
int 21h
code ends
end

5.3在debug中跟蹤用loop指令實現(xiàn)的循環(huán)程序

苜先,將其編輯為源程序文件,文件名 定為 p3.asm:對其進行編譯連接后生成 p3.exe:然后西用Debug對p3.exe中的程序進行跟蹤。

5.5loop和[bx]的聯(lián)合應用

計算ffff:0~ffff:b單元中的數(shù)據(jù)的和,結果存儲在dx中。

(1)運算后的結果是否會超出dx 所能存儲的范圍?

ffff0~ffffb內(nèi)存單元中的數(shù)據(jù)是字節(jié)型數(shù)據(jù),范圍在0~255之間,12個這樣的數(shù)據(jù)相加,結果不會大于 65535,可以在dx中存放下。

(2)是否能將量0~ffffb中的數(shù)據(jù)直接累加到dx?

不行,因為量:0~ffffb中的數(shù)據(jù)是8位 的,不能直接加到16位寄存器dx中

5.7一段安全的空間

在8086模 式中,隨意向一 段內(nèi)存空間寫入內(nèi)容是很危險的,因為這段空間中可能存放著重要的系統(tǒng)數(shù)據(jù)或代碼。

比如下面的指令:

mov ax.1000h

mov ds.ax

mov al.0

mov ds:[0],al??

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前名稱:匯編語言4,5章學習筆記-創(chuàng)新互聯(lián)
URL分享:http://aaarwkj.com/article18/dpgddp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號Google、網(wǎng)站內(nèi)鏈網(wǎng)站制作、域名注冊、網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
日本理伦片一区二区| 国产国产人免费人成免费人妖| 少妇一区二区三区免费| 国产九色91中文在线视频| 亚洲精品a在线观看av| 97成品视频在线播放| 亚洲精品成人一区二区| 一区二区日韩欧美国产| 国产精品美女自拍视频| 99久久精品国产熟女拳交| 日本久久精品免费网站| 亚洲欧美韩国日本成人综合| 亚洲欧美一区二区色慰| 成人免费毛片1000部| 亭亭丁香激情五月涩久久| 91黄色国产在线播放| 欧美一区二区日本国产激情| 婷婷丁香六月激情综合| 午夜视频在线观看麻豆| 欧美日韩在线一区二区| 日韩欧美国产精品福利| 中文字幕人成乱码在线| 亚洲av最近在线观看| 四虎影视国产精品久久| 国产精品国产三级国产专播精品 | 欧美日韩亚洲人人夜夜澡| 国产大片在线观看一区二区| 又爽又色的日本网站| 婷婷国产成人久久精品激情| 韩国av网址在线观看| 欧美精品福利一区二区三区| 国产一区二区欧美日本| 国产精品精品久久久久久| 中文字幕人妻日韩在线| 国产欧美日韩一级二级三级| 欧美一区二区三区顶级黄片| 色哟哟亚洲精品一区二区| 国产视频一区二区麻豆| 日本免费一区二区三区视频观看| 亚洲欧美日韩国产在线一区| 亚洲日本欧美在线一区|