国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站框架指的是什么百度公司推廣電話

網(wǎng)站框架指的是什么,百度公司推廣電話,專業(yè)的會(huì)議網(wǎng)站建設(shè),軟件開發(fā)屬于什么專業(yè)《匯編語(yǔ)言》- 讀書筆記 - 第4章-第一個(gè)程序 4.1 一個(gè)源程序從寫出到執(zhí)行的過(guò)程4.2 源程序程序 4.11. 偽指令1.1 segment ends 聲明段1.2 end 結(jié)束標(biāo)記1.3 assume 關(guān)聯(lián) 2. 源程序中的“程序”3. 標(biāo)號(hào)4. 程序的結(jié)構(gòu)5. 程序返回6. 語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤 4.3 編輯源程序4.4 編譯4.5 …

《匯編語(yǔ)言》- 讀書筆記 - 第4章-第一個(gè)程序

  • 4.1 一個(gè)源程序從寫出到執(zhí)行的過(guò)程
  • 4.2 源程序
    • 程序 4.1
    • 1. 偽指令
      • 1.1 segment ends 聲明段
      • 1.2 end 結(jié)束標(biāo)記
      • 1.3 assume 關(guān)聯(lián)
    • 2. 源程序中的“程序”
    • 3. 標(biāo)號(hào)
    • 4. 程序的結(jié)構(gòu)
    • 5. 程序返回
    • 6. 語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤
  • 4.3 編輯源程序
  • 4.4 編譯
  • 4.5 連接
  • 4.6 以簡(jiǎn)化的方式進(jìn)行編譯和連接
  • 4.7 執(zhí)行exe
  • 4.8 誰(shuí)將可執(zhí)行文件中的程序裝載進(jìn)入內(nèi)存并使它運(yùn)行?
    • 問(wèn)題 4.1
    • 問(wèn)題 4.2
    • 操作系統(tǒng)的shell
  • 4.9 程序執(zhí)行過(guò)程的跟蹤
  • 實(shí)驗(yàn)3 編程、編譯、連接、跟蹤

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

  • 第一步:編寫匯編源程序。
  • 第二步:對(duì)源程序進(jìn)行編譯連接。
    可執(zhí)行文件包含兩部分內(nèi)容
    • 程序(從源程序中的匯編指令翻譯過(guò)來(lái)的機(jī)器碼)和數(shù)據(jù)(源程序中定義的)
    • 相關(guān)的描述信息(比如,程序有多大、要占用多少內(nèi)存空間等)
  • 第三步:執(zhí)行可執(zhí)行文件中的程序。

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

4.2 源程序

程序 4.1

assume cs:codesg
codesg segmentmov ax, 0123Hmov bx, 0456Hadd ax, bxadd ax, axmov ax,4c00Hint 21H
codesg ends
end

1. 偽指令

匯編指令:會(huì)被編譯為機(jī)器指令,最終為 CPU 所執(zhí)行。
而偽指令:沒(méi)有對(duì)應(yīng)的機(jī)器指令,它被用來(lái)輔助編譯器進(jìn)行相關(guān)的編譯工作。

1.1 segment ends 聲明段

段名 segment; 代碼... 
段名 ends

segmentends 是一對(duì)偽指令,功能是定義一個(gè)段,segment 說(shuō)明一個(gè)段開始,ends 說(shuō)明一個(gè)段結(jié)束。一個(gè)段必須有一個(gè)名稱來(lái)標(biāo)識(shí)。
一個(gè)匯編程序是由多個(gè)段組成的,指令、數(shù)據(jù)、,被劃分到了不同的段中。
一個(gè)有意義的匯編程序中至少要有一個(gè)段,這個(gè)段用來(lái)存放代碼。

1.2 end 結(jié)束標(biāo)記

編譯器在編譯匯編程序的過(guò)程中,碰到了偽指end,就結(jié)束對(duì)源程序的編譯。

1.3 assume 關(guān)聯(lián)

用于將特定的與相關(guān)段寄存器建立關(guān)聯(lián)。

assume cs:codesg

將代碼段的段 codesg 和段寄存器 cs 聯(lián)系起來(lái)。

2. 源程序中的“程序”

程序最先以匯編指令的形式存在源程序中,經(jīng)編譯、連接后轉(zhuǎn)變?yōu)闄C(jī)器碼,存儲(chǔ)在可執(zhí)行文件中。這個(gè)過(guò)程如圖 4.2 所示。
在這里插入圖片描述

3. 標(biāo)號(hào)

匯編源程序中,除了匯編指令偽指令外,還有一些標(biāo)號(hào),比如codesg。它指代了一個(gè)地址。
比如 codesgsegment 的前面,作為一個(gè)段的名稱,這個(gè)段的名稱最終將被編譯、連接程序處理為一個(gè)段的段地址。

4. 程序的結(jié)構(gòu)

源程序是由一些構(gòu)成的。
任務(wù): 編程運(yùn)算 2^3。源程序應(yīng)該怎樣來(lái)寫呢?

assume cs:abc	; 將 abc 和 cs 建立關(guān)聯(lián),當(dāng)作代碼段。
abc segment		; 定義一個(gè)段,名稱為 abcmov ax,2		; 在段中寫入?yún)R編指令 1add ax,ax		; 在段中寫入?yún)R編指令 2add ax,ax		; 在段中寫入?yún)R編指令 3; 這里還缺程序返回指令,后面自己補(bǔ)上。
abc ends		; 段 abc 結(jié)束
end				; 指出程序在何處結(jié)束

5. 程序返回

程序原本只是躺在硬盤中的一坨二進(jìn)制數(shù)據(jù)。
執(zhí)行程序的流程:(這里討論的是DOS系統(tǒng))

  1. 程序A將程序B加載到內(nèi)存。
  2. 程序A將CPU控制權(quán)交給程序B。
  3. 程序B執(zhí)行。
  4. 程序B執(zhí)行完畢,程序返回。交出CPU控制權(quán)。
  5. 程序A拿到CPU控制權(quán),繼續(xù)執(zhí)行。

程序返回指令如下:(書上說(shuō)先死記,后面會(huì)講)

mov ax, 4c00H
int 21H

表4.1 與結(jié)束相關(guān)的概念

目的相關(guān)指令指令性質(zhì)指令執(zhí)行者
通知編譯器一個(gè)段結(jié)束段名 ends偽指令編譯時(shí),由編譯器執(zhí)行
通知編譯器程序結(jié)束end偽指令編譯時(shí),由編譯器執(zhí)行
程序返回mov ax,4c00H int 21H匯編指令執(zhí)行時(shí),由 CPU 執(zhí)行

6. 語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤

語(yǔ)法錯(cuò)誤:編譯器能發(fā)現(xiàn)。
邏輯錯(cuò)誤:跑起來(lái)看了效果才知道。

4.3 編輯源程序

任何你熟悉的文本編輯器都可以。

4.4 編譯

  1. 將源文件保存得到 test.asm
  2. 編譯:masm test.asm 得到目標(biāo)文件 test.obj。(也可以直接輸入masm 回車,交互式設(shè)置編譯參數(shù) )
    在這里插入圖片描述

4.5 連接

連接的作用:

  1. 根據(jù)需要將源程序分為多個(gè)來(lái)編譯,得到多個(gè)目標(biāo)標(biāo)文件后,再連接生成一個(gè)可執(zhí)行文件;
  2. 程序中調(diào)用了某個(gè)庫(kù)文件中的子程序,需要將這個(gè)庫(kù)文件和該程序生成的目標(biāo)文件連接到一起,生成一個(gè)可執(zhí)行文件;
  3. 一個(gè)源程序編譯后,得到了存有機(jī)器碼的目標(biāo)文件,目標(biāo)文件中的有些內(nèi)容還不能直接用來(lái)生成可執(zhí)行文件,連接程序?qū)⑦@些內(nèi)容處理為最終的可執(zhí)行信息。所以,在只有一個(gè)源程序文件,而又不需要調(diào)用某個(gè)庫(kù)中的子程序的情況下,也必須用連接程序?qū)δ繕?biāo)文件進(jìn)行處理,生成可執(zhí)行文件。

使用微軟的 Overlay Linker3.60 連接器,文件名為 link.exe

在這里插入圖片描述

4.6 以簡(jiǎn)化的方式進(jìn)行編譯和連接

末尾加分號(hào) ; 表示都用默認(rèn)參數(shù):

masm test.asm;
link test.obj;

當(dāng)然還有更簡(jiǎn)化的,我們直接用 ML.exe
在這里插入圖片描述

4.7 執(zhí)行exe

在這里插入圖片描述

我們的 test.exe 只是對(duì)寄存器進(jìn)行操作。直接執(zhí)行是看不到效果的,debug調(diào)試一下,就能看到效果了。(作者說(shuō)后面會(huì)介紹輸出到屏幕的程序,不過(guò)要幾章之后去了)
在這里插入圖片描述

4.8 誰(shuí)將可執(zhí)行文件中的程序裝載進(jìn)入內(nèi)存并使它運(yùn)行?

我們?cè)谇懊嬷v過(guò),在 DOS 中,可執(zhí)行文件中的程序 P1 若要運(yùn)行,必須有一個(gè)正在運(yùn)行的程序 P2,將 P1 從可執(zhí)行文件中加載入內(nèi)存,將 CPU 的控制權(quán)交給它,P1 才能得以運(yùn)行;當(dāng) P1 運(yùn)行完畢后,應(yīng)該將 CPU 的控制權(quán)交還給使它得以運(yùn)行的程序 P2。
按照上面的原理,再來(lái)看一下 4.7 節(jié)中 test.exe 的執(zhí)行過(guò)程(思考相關(guān)的問(wèn)題)。

  1. 在提示符c:\后面輸入可執(zhí)行文件的名字 test,按 Enter 鍵。這時(shí),請(qǐng)思考問(wèn)題 4.1。
  2. l.exe 中的程序運(yùn)行。
  3. 運(yùn)行結(jié)束,返回,再次顯示提示符“c:masm’。請(qǐng)思考問(wèn)題 4.2。

問(wèn)題 4.1

此時(shí),有一個(gè)正在運(yùn)行的程序?qū)?test.exe 中的程序加載入內(nèi)存,這個(gè)正在運(yùn)行的程序是什么? 它將程序加載入內(nèi)存后,如何使程序得以運(yùn)行?

  1. 在 DOS 中直接執(zhí)行 test.exe 時(shí),是正在運(yùn)行的 shell 程序 command,將其加載入內(nèi)存。
  2. command 設(shè)置 CS:IP 指向test.exe 的第一條指令(即程序的入口),從而使 test.exe 得以運(yùn)行。

問(wèn)題 4.2

程序運(yùn)行結(jié)束后,返回到哪里?

  1. 程序運(yùn)行結(jié)束后,返回到 command。

操作系統(tǒng)的shell

操作系統(tǒng)是由多個(gè)功能模塊組成的龐大、復(fù)雜的軟件系統(tǒng)。任何通用的操作系統(tǒng),都要提供一個(gè)稱為 shell外殼)的程序,用戶(操作人員)使用這個(gè)程序來(lái)操作計(jì)算機(jī)系統(tǒng)進(jìn)行工作。


DOS 中有一個(gè)程序 command.com,這個(gè)程序在 DOS 中稱為命令解釋器,也就是 DOS 系統(tǒng)的 shell


DOS 啟動(dòng)時(shí),先完成其他重要的初始化工作,然后運(yùn)行 command.comcommand.com 運(yùn)行后,執(zhí)行完其他的相關(guān)任務(wù)后,在屏幕上顯示出由當(dāng)前盤符和當(dāng)前路徑組成的提示符,比如:c:\或“c:\windows`等,然后等待用戶的輸入。


用戶可以輸入所要執(zhí)行的命令,比如,cd、dir、 type 等,這些命令由 command 執(zhí)行,command 執(zhí)行完這些命令后,再次顯示由當(dāng)前盤符和當(dāng)前路徑組成的提示符,等待用戶的輸入。

如果用戶要執(zhí)行一個(gè)程序,則輸入該程序的可執(zhí)行文件的名稱,command 首先根據(jù)文件名找到可執(zhí)行文件,然后將這個(gè)可執(zhí)行文件中的程序加載入內(nèi)存,設(shè)置 CS:IP 指向程序的入口。此后,command 暫停運(yùn)行,CPU運(yùn)行程序。程序運(yùn)行結(jié)束后,返回到 command 中,command 再次顯示由當(dāng)前盤符和當(dāng)前路徑組成的提示符,等待用戶的輸入。

在 DOS 中,command 處理各種輸入: 命令或要執(zhí)行的程序的文件名。我們就是通過(guò) command 來(lái)進(jìn)行工作的。

在這里插入圖片描述

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

在 DOS 系統(tǒng)中EXE 文件中的程序的加載過(guò)程
在這里插入圖片描述

debug test.exe
在這里插入圖片描述

CX:存放程序的長(zhǎng)度。
DS:存放程序所在內(nèi)存區(qū)的段地址。
CS:CS = DS + 10H。
PSP:此內(nèi)存區(qū)的前256字節(jié)(100H),是DOS用來(lái)與程就進(jìn)行通信的。
程序:PSP之后就是程序。物理地址:SA16 + 0 + 256 = SA * 16 + 1616 +0 = (SA+16) * 16 + 0

段地址:偏移地址表示為 SA+10H:0

  • 單步執(zhí)行用T
  • 執(zhí)行到 int 21P,正常執(zhí)行結(jié)束會(huì)顯示Program terminated normally,然后回到 debug中。(因?yàn)槭?Debug 加載程序進(jìn)內(nèi)存執(zhí)行的)

實(shí)驗(yàn)3 編程、編譯、連接、跟蹤

《匯編語(yǔ)言》- 讀書筆記 - 實(shí)驗(yàn)3 編程、編譯、連接、跟蹤

http://aloenet.com.cn/news/38760.html

相關(guān)文章:

  • 吉林省最新疫情最新消息優(yōu)化大師官網(wǎng)登錄入口
  • 滄州 網(wǎng)站建設(shè)鄭州seo外包顧問(wèn)
  • 學(xué)生靜態(tài)網(wǎng)頁(yè)模板成都百度seo公司
  • 做營(yíng)銷型網(wǎng)站公司蘇州優(yōu)化排名seo
  • muse怎么做響應(yīng)式網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)作品集
  • 滕州盛揚(yáng)網(wǎng)絡(luò)公司網(wǎng)站建設(shè)推廣優(yōu)化的含義是什么
  • 南京做網(wǎng)站公司地點(diǎn)南寧seo營(yíng)銷推廣
  • 做明星粉絲網(wǎng)站seo關(guān)鍵詞排名軟件流量詞
  • 可以做推廣的門戶網(wǎng)站軟件開發(fā)工資一般多少
  • 網(wǎng)站生成wap媒體公關(guān)
  • 網(wǎng)站建立數(shù)據(jù)庫(kù)連接時(shí)出錯(cuò)職業(yè)技能培訓(xùn)機(jī)構(gòu)
  • hao愛做網(wǎng)站一鍵優(yōu)化是什么意思
  • 網(wǎng)站默認(rèn)首頁(yè)友鏈購(gòu)買網(wǎng)
  • 颶風(fēng)算法受影響的網(wǎng)站seo優(yōu)化主要做什么
  • 做網(wǎng)站必須注冊(cè)的商標(biāo)網(wǎng)頁(yè)生成
  • 做網(wǎng)站 創(chuàng)業(yè)seo查詢平臺(tái)
  • wordpress 彈出框企業(yè)網(wǎng)站優(yōu)化服務(wù)公司
  • 鄭州制作網(wǎng)站ihanshi河北優(yōu)化seo
  • 中原建設(shè)信息網(wǎng) 網(wǎng)站seo優(yōu)化方式包括
  • 漯河網(wǎng)站建設(shè)公司怎么建網(wǎng)站賣東西
  • 可以查企業(yè)備案的網(wǎng)站游戲推廣賺錢
  • 建設(shè)部國(guó)家標(biāo)準(zhǔn)網(wǎng)站線上銷售的方法和技巧
  • 怎么制作h5廣州seo推廣服務(wù)
  • 創(chuàng)辦一個(gè)網(wǎng)站需要多少錢百度灰色關(guān)鍵詞排名推廣
  • 南京醫(yī)院手機(jī)網(wǎng)站建設(shè)b站推廣鏈接
  • 網(wǎng)站專題頁(yè)面設(shè)計(jì)網(wǎng)絡(luò)推廣方案范文
  • 小程序appid格式東莞seo收費(fèi)
  • 過(guò)年做哪些網(wǎng)站能致富seo概念
  • 模板網(wǎng)站建設(shè)青島seo做的好的網(wǎng)站
  • 江門網(wǎng)站建設(shè)運(yùn)營(yíng)團(tuán)隊(duì)蘇州網(wǎng)站建設(shè)開發(fā)公司