freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微機(jī)原理與匯編語(yǔ)言及接口技術(shù)(4)-資料下載頁(yè)

2024-10-18 14:50本頁(yè)面
  

【正文】 〔 例 417〕 有符號(hào)十進(jìn)制數(shù)輸入程序- 6 readerr: mov eax,offset errmsg 。 顯示出錯(cuò)信息 call dispmsg jmp read0 。 read3: test ecx,ecx 。 判斷是正數(shù)還是負(fù)數(shù) jz read4 neg ebx 。 是負(fù)數(shù) , 進(jìn)行求補(bǔ) jmp read5 read4: cmp ebx,7fffffffh 。 正數(shù)超過(guò) 2311, 出錯(cuò) ja readerr 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 417〕 有符號(hào)十進(jìn)制數(shù)輸入程序- 7 read5: mov temp,ebx 。 設(shè)置出口參數(shù) pop edx pop ecx pop ebx pop eax ret 。 子程序返回 errmsg byte 39。Input error, enter again: 39。,0 read endp 共享變量傳遞參數(shù) 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 3. 堆棧傳遞參數(shù) ?主程序?qū)⑷肟趨?shù)壓入堆棧 , 子程序從堆棧中取出參數(shù) ?出口參數(shù)通常不使用堆棧傳遞 ?高級(jí)語(yǔ)言進(jìn)行函數(shù)調(diào)用時(shí)提供的參數(shù) , 實(shí)質(zhì)也利用堆棧傳遞 ?采用堆棧傳遞參數(shù)是程式化的 , 它是編譯程序處理參數(shù)傳遞 、 以及匯編語(yǔ)言與高級(jí)語(yǔ)言混合編程時(shí)的常規(guī)方法 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 418〕 計(jì)算有符號(hào)數(shù)平均值程序- 1 。 數(shù)據(jù)段 array dword 675,354,34, ... 。 代碼段 push lengthof array 。 壓入數(shù)據(jù)個(gè)數(shù) push offset array 。 壓數(shù)組的偏移地址 call mean 。 調(diào)用求平均值子程序 。出口參數(shù): EAX=平均值 ( 整數(shù)部分 ) add esp,8 。 平衡堆棧 ( 壓入了 8個(gè)字節(jié)數(shù)據(jù) ) call dispsid 。 顯示 堆棧傳遞參數(shù) 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 418〕 計(jì)算有符號(hào)數(shù)平均值程序- 2 。 計(jì)算 32位有符號(hào)數(shù)平均值子程序 mean proc 。 入口參數(shù):順序壓入數(shù)據(jù)個(gè)數(shù)和數(shù)組偏移地址 push ebp 。出口參數(shù): EAX=平均值 mov ebp,esp push ebx 。 保護(hù)寄存器 push ecx push edx mov ebx,[ebp+8] 。 EBX=取出的偏移地址 mov ecx,[ebp+12] 。 ECX=取出的數(shù)據(jù)個(gè)數(shù) xor eax,eax 。 EAX保存和值 xor edx,edx 。 EDX=指向數(shù)組元素 堆棧傳遞參數(shù) 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 418〕 計(jì)算有符號(hào)數(shù)平均值程序- 3 mean1: add eax,[ebx+edx*4] 。 求和 add edx,1 。 指向下一個(gè)數(shù)據(jù) cmp edx,ecx 。 比較個(gè)數(shù) jb mean1 。 循環(huán) cdq 。 將累加和 EAX符號(hào)擴(kuò)展到 EDX idiv ecx 。 有符號(hào)數(shù)除法 , EAX=平均值 pop edx 。 恢復(fù)寄存器 pop ecx pop ebx pop ebp ret mean endp 示意圖 求和溢出與個(gè)數(shù)為 0的問(wèn)題 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 程序模塊 ?程序分段 、 子程序等是進(jìn)行程序模塊化 ?開發(fā)大型程序時(shí)采用的方法 子程序模塊 子程序庫(kù) 庫(kù)文件包含 宏匯編 源文件包含 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 1. 子程序模塊 ?子程序單獨(dú)編寫 , 匯編形成目標(biāo)模塊 OBJ文件 ?連接時(shí)輸入子程序模塊文件名 ?用共用偽指令 PUBLIC和外部偽指令 EXTERN聲明 PUBLIC 標(biāo)識(shí)符 [,標(biāo)識(shí)符 ? ] 。定義標(biāo)識(shí)符的模塊使用 EXTERN 標(biāo)識(shí)符 :類型 [,標(biāo)識(shí)符 :類型 ? ] 。調(diào)用標(biāo)識(shí)符的模塊使用 ?子程序在代碼段 , 與主程序文件采用相同的存儲(chǔ)模型 , 沒(méi)有開始執(zhí)行和結(jié)束執(zhí)行點(diǎn) ?處理好子程序與主程序之間的參數(shù)傳問(wèn)題 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 419〕 數(shù)據(jù)輸入輸出程序- 1 。 ( 子程序文件 ) include public read,write,mean 。 子程序共用 extern temp:dword 。 外部變量 .data 。 定義的變量集中起來(lái) writebuf byte 12 dup(0) 。 顯示緩沖區(qū) readbuf byte 30 dup(0) .code 。 代碼段 write proc c 。 明確采用 C語(yǔ)言規(guī)范 ?? 。 輸出子程序 read proc c ?? 。 輸入子程序 mean proc c ?? 。 計(jì)算平均值子程序 end 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 419〕 數(shù)據(jù)輸入輸出程序- 2 。 ( 主程序文件 ) include extern read:near,write:near,mean:near 。 外部子程序 public temp 。 變量共用 .data count = 10 array dword count dup(0) temp dword ? msg1 byte 39。Enter 10 numbers:39。,13,10,0 msg2 byte 39。The mean is: 39。,0 .code start: mov eax,offset msg1 。 提示輸入 10個(gè)數(shù)據(jù) call dispmsg 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 419〕 數(shù)據(jù)輸入輸出程序- 3 xor ebx,ebx mov ecx,count 。 ECX=數(shù)據(jù)個(gè)數(shù) again: call read 。 調(diào)用子程序 , 輸入一個(gè)數(shù)據(jù) mov eax,temp 。 獲得出口參數(shù) mov array [ebx*4],eax add ebx,1 cmp ebx,ecx jb again 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 〔 例 419〕 數(shù)據(jù)輸入輸出程序- 4 push ecx 。 傳遞參數(shù) push offset array call mean 。 調(diào)用子程序 , 求平均值 add esp,8 mov ebx,eax 。 EAX返回值轉(zhuǎn)存到 EBX mov eax,offset msg2 。 提示輸出平均值 call dispmsg mov eax,ebx 。 提示輸出平均值 call write 。 調(diào)用子程序 , 顯示平均值 exit 0 end start 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 2. 子程序庫(kù) ?子程序庫(kù):統(tǒng)一管理子程序模塊 ?遵循更加嚴(yán)格的子程序模塊要求 ?子程序文件編寫完成 、 匯編形成目標(biāo)模塊 ?利用庫(kù)管理工具程序 :把子程序模塊逐個(gè)加入到子程序庫(kù) ( .LIB) ?使用子程序庫(kù):在連接主程序模塊時(shí)提供子程序庫(kù)文件名 操作演示 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 3. 庫(kù)文件包含 ?直接在主程序源文件中用庫(kù)文件包含偽指令I(lǐng)NCLUDELIB說(shuō)明 ?不用在連接時(shí)輸入庫(kù)文件名 INCLUDELIB 文件名 ?子程序庫(kù)文件名要符合操作系統(tǒng)規(guī)范 必要時(shí)含有路徑 , 用于指明文件的存儲(chǔ)位置 如果沒(méi)有路徑名 , 匯編程序?qū)⒃谀J(rèn)目錄 、 當(dāng)前目錄和指定目錄下尋找 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 4. 宏匯編 ?宏 ( Macro) :具有宏名的一段匯編語(yǔ)句序列 ?宏需要先定義 宏名 MACRO 形參表 ?? 。宏定義體 ENDM ?然后程序中進(jìn)行宏調(diào)用 宏名 實(shí)體參數(shù) ?在匯編時(shí) , 宏指令被匯編程序用宏定義的代碼序列替代 , 實(shí)現(xiàn)宏展開 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 宏匯編示例 ?宏定義 WriteString macro msg push eax lea eax,msg call dispmsg pop eax endm ?宏展開 push eax lea eax,msg call dispmsg pop eax ?宏調(diào)用 WriteString msg 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 5. 源文件包含 INCLUDE 文件名 ?將 INCLUDE偽指令指定的文本文件內(nèi)容插入源程序 ?可以包含任何文本文件 一些常用的或有價(jià)值的宏定義存放在 .MAC宏定義文件 各種常量定義 、 聲明語(yǔ)句等組織在 .INC包含文件 常用的子程序形成 .ASM匯編語(yǔ)言源文件 ?利用 INCLUDE偽指令包含其他文件 , 其實(shí)質(zhì)仍然是一個(gè)源程序 , 只不過(guò)是分在了幾個(gè)文件書寫 ?組合兩種文件包含 、 以及宏匯編等方法 , 可以精簡(jiǎn)程序框架 、 簡(jiǎn)化程序設(shè)計(jì) 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 Windows應(yīng)用程序編程 ?匯編語(yǔ)言可以編寫 32位 Windows應(yīng)用程序 調(diào)用 Windows的應(yīng)用程序接口 API 運(yùn)行于 Windows操作系統(tǒng)平臺(tái) ?可以利用 Windows的高級(jí)特性 , 生成的可執(zhí)行文件相對(duì)較小 、 性能更高 ?從更深層次理解 Windows運(yùn)行機(jī)制及程序設(shè)計(jì)思想 微 機(jī) 原 理 與 接 口 技 術(shù) 第 4 版 機(jī) 械 工 業(yè) 出 版 社 操作系統(tǒng)函數(shù)調(diào)用 ?操作系統(tǒng)以其提供的系統(tǒng)函數(shù) ( 系統(tǒng)功能System function) 支持程序員進(jìn)行編程 ?Windows的系統(tǒng)函數(shù) ( 功能 ) 以動(dòng)態(tài)連接庫(kù)DLL( DynamicLink Library) 形式提供 ,利用其應(yīng)用程序接口
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1