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

正文內(nèi)容

[工學(xué)]新第4章-匯編語(yǔ)言-資料下載頁(yè)

2024-12-29 12:09本頁(yè)面
  

【正文】 A MOV DS,AX MOV ES,AX LEA SI,BLOCK LEA DI,BUFF1 LEA BX,BUFF2 MOV CX,60 CLD LOP: LODSB TEST AL,80H JNZ FU STOBS JMP AGAIN FU: XCHG BX,DI STOSB XCHG BX,DI INT 21H AGAIN: LOOP LOP CODE ENDS MOV AX,4C00H END START 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章典型匯編程序設(shè)計(jì) — 舉例 按數(shù)據(jù)大小排序 實(shí)現(xiàn)從一串帶符號(hào)字型數(shù)據(jù)中找出最大值 DATA SEGMENT BLOCK DW 762EH,6A8BH,664AH,0B945H,85DH COUNT EQU ($BLOCK)/2 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BLOCK MOV CX,COUNT MOV AX,[SI] DEC CX AA1: ADD SI,2 CMP AX,[SI] JG AA2 MOV AX,[SI] AA2: LOOP AA1 MOV BX,AX MOV AX,4C00H INT 21H CODE ENDS END START 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章典型匯編程序設(shè)計(jì) — 舉例 數(shù)據(jù)排序 冒泡法 — 將數(shù)據(jù)兩兩比較: 冒泡排序的過程:首先比較第一個(gè)和第二個(gè)數(shù)據(jù) , 將其中較小的數(shù)據(jù)放到第一個(gè)位置 , 較大的放到第二個(gè)位置;然后比較第二個(gè)和第三個(gè)數(shù)據(jù) , 仍將較小放到后一個(gè)位置 。 依此類推 , 直到比較第 n1和第 n個(gè)數(shù)據(jù) 。 這樣 , 就將待排序序列中的最大的一個(gè)放到了第 n個(gè)數(shù)據(jù) , 這個(gè)過程稱為第一趟排序 。 下面對(duì)前 N1個(gè)數(shù)據(jù)重復(fù)這個(gè)過程 ( 不用考慮第 n個(gè)數(shù)據(jù) , 因?yàn)樗呀?jīng)是最大的了 ) , 又將次大的數(shù)據(jù)放到了第 n1個(gè)位置 。 一般地 , 第 i趟冒泡排序是對(duì)第 1個(gè)到第 ni+1個(gè)數(shù)據(jù)進(jìn)行操作 , 選出原序列第 i大的數(shù)據(jù)放到數(shù)組的第 ni+1位置 。 重復(fù)這個(gè)過程 , 直到 i=n1為止 。 前一數(shù)較大 , 則不改變位置;否則兩數(shù)交換 , 依次將全部數(shù)據(jù)排序一次 小循環(huán) ( 從小到大 ) 前一數(shù)較小 , 則不改變位置;否則兩數(shù)交換 , 依次將全部數(shù)據(jù)排序一次 大循環(huán) ( 從大到小 ) 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 對(duì)比原數(shù)據(jù)經(jīng)過第一趟排序,實(shí)現(xiàn)了什么目的? 第一趟排序,一共進(jìn)行了多少次比較? 49 27 13 76 97 65 38 49 數(shù)據(jù) 8 7 6 5 4 3 2 1 序號(hào) 4938,交換位置 原數(shù)據(jù)和序號(hào) 序號(hào) 1 2 3 4 5 6 7 8 數(shù)據(jù) 49 38 65 97 76 13 27 49 第一趟排序的步驟: 序號(hào)數(shù)據(jù) 38 49序號(hào)數(shù)據(jù)序號(hào)數(shù)據(jù)序號(hào)數(shù)據(jù) 76 97序號(hào)數(shù)據(jù) 13 97序號(hào)數(shù)據(jù) 27 97序號(hào)數(shù)據(jù) 49 97經(jīng)過第一趟排序,把最大的數(shù)沉到最底了! 4965, 保持不變 6597, 保持不變 9776, 交換位置 9713, 交換位置 9727, 交換位置 9749, 交換位置 冒泡法 — 大循環(huán) 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 經(jīng)過第二趟排序,實(shí)現(xiàn)了什么目的? 經(jīng)過第二趟排序,把第二大的數(shù)沉到倒數(shù)第二個(gè)位置了 ! 97 49 27 13 76 65 49 38 數(shù)據(jù) 8 7 6 5 4 3 2 1 序號(hào) 3849,保持不變 第一趟排序后的數(shù)據(jù)和序號(hào) 第二趟排序的步驟: 序號(hào) 1 2 3 4 5 6 7 8 數(shù)據(jù) 38 49 65 76 13 27 49 97 4965, 保持不變 6576, 保持不變 7613, 交換位置 7627, 交換位置 7649, 交換位置 序號(hào)數(shù)據(jù)序號(hào)數(shù)據(jù)序號(hào)數(shù)據(jù)序號(hào)數(shù)據(jù) 13 76序號(hào)數(shù)據(jù) 27 76序號(hào)數(shù)據(jù) 49 767697, 保持不變 序號(hào)數(shù)據(jù)冒泡法 — 大循環(huán) 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 觀察原數(shù)據(jù)與第一、二趟排序后的數(shù)據(jù) 序號(hào) 1 2 3 4 5 6 7 8 數(shù)據(jù) 38 49 65 76 13 27 49 97 序號(hào) 1 2 3 4 5 6 7 8 數(shù)據(jù) 38 49 65 13 27 49 76 97 序號(hào) 1 2 3 4 5 6 7 8 數(shù)據(jù) 49 38 65 97 76 13 27 49 問:為了使這一組無序數(shù)組完全按照要求排成 從小到大我們還需不需要再繼續(xù)排序呢? 問:那么我們預(yù)計(jì)最多一共要經(jīng)過多少次排序呢? 冒泡法 — 大循環(huán) N個(gè)數(shù) ,則要進(jìn)行 N1 趟比較。 在第一趟比較中要進(jìn)行 N1 次兩兩比較, 在第 j趟比較中要進(jìn)行 Nj次兩兩比較。 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 從大到小排序 編程實(shí)現(xiàn) , 一個(gè)帶符號(hào)字節(jié)型數(shù)據(jù)組中的數(shù)據(jù)按從小到大的順序排序 。 DATA SEGMENT BUFF DB 13,39,96,84,75,58 COUNT EQU $BUFF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,COUNT1 LOOP1: MOV DX,CX MOV SI,0 LOOP2: MOV AL,BUFF[SI] CMP AL,BUFF[SI+1] JGE COT XCHG AL,BUFF[SI+1] MOV BUFF[SI],AL COT: INC SI LOOP LOOP2 MOV CX,DX LOOP LOOP1 MOV AX,4C00H INT 21H CODE ENDS END START 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章: DOS功能調(diào)用與子程序設(shè)計(jì) DOS功能: 命令 子程序:磁盤的讀 /寫 、 控制管理 、 內(nèi)存管理 、 基本輸入 /輸出管理; 所有子程序從 1號(hào)開始順序編號(hào) , 這些編號(hào)稱為 DOS功能調(diào)用號(hào) 。 子程序調(diào)用過程: DOS功能調(diào)用號(hào)送 AH寄存器 按要求給定輸入?yún)?shù) ( 有的不需要輸入?yún)?shù) ) 寫入中斷指令 “ INT 21H” 調(diào)用結(jié)束 , 按功能使用其輸出參數(shù) 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章:子程序設(shè)計(jì) 把功能相對(duì)獨(dú)立的程序段單獨(dú)編寫和調(diào)試 ,作為一個(gè)相對(duì)獨(dú)立的模塊供程序使用 , 就形成 子程序 子程序可以實(shí)現(xiàn)源程序的 模塊化 , 可簡(jiǎn)化源程序結(jié)構(gòu) , 可以提高編程效率 主程序 ( 調(diào)用程序 ) 需要利用 CALL指令調(diào)用子程序 ( 被調(diào)用程序 ) 子程序需要利用 RET指令返回主程序 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章:過程定義和子程序編寫 匯編語(yǔ)言中 , 子程序要用一對(duì)過程偽指令PROC和 ENDP聲明 , 格式如下: 過程名 PROC [NEAR|FAR] …… ; 過程體 過程名 ENDP 可選的參數(shù)指定過程的調(diào)用屬性 。 沒有指定過程屬性 , 則采用默認(rèn)屬性 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章:子程序編寫注意事項(xiàng) ⑴ 子程序要利用過程定義偽指令聲明 ⑵ 子程序最后利用 RET指令返回主程序 , 主程序執(zhí)行 CALL指令調(diào)用子程序 ⑶ 子程序中對(duì)堆棧的壓入和彈出操作要成對(duì)使用 ,保持堆棧的平衡 ⑷ 子程序開始應(yīng)該保護(hù)使用到的寄存器內(nèi)容 , 子程序返回前相應(yīng)進(jìn)行恢復(fù) ⑸ 子程序應(yīng)安排在代碼段的主程序之外 , 最好放在主程序執(zhí)行終止后的位置 ( 返回 DOS后 、 匯編結(jié)束 END偽指令前 ) , 也可以放在主程序開始執(zhí)行之前的位置 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章:子程序編寫注意事項(xiàng)(續(xù)) ⑹ 子程序允許嵌套和遞歸 ⑺ 子程序可以與主程序共用一個(gè)數(shù)據(jù)段 , 也可以使用不同的數(shù)據(jù)段 ( 注意修改 DS) , 還可以在子程序最后設(shè)置數(shù)據(jù)區(qū) ( 利用 CS尋址 ) ⑻ 子程序的編寫可以很靈活 , 例如具有多個(gè)出口( 多個(gè) RET指令 ) 和入口 , 但一定要保證堆棧操作的正確性 ⑼ 處理好子程序與主程序間的參數(shù)傳遞問題 ⑽ 提供必要的子程序說明信息 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章:參數(shù)傳遞 主程序與子程序間一個(gè)主要問題是參數(shù)傳遞 入口參數(shù) ( 輸入?yún)?shù) ) :主程序調(diào)用子程序時(shí) , 提供給子程序的參數(shù) 出口參數(shù) ( 輸出參數(shù) ) :子程序執(zhí)行結(jié)束返回給主程序的參數(shù) 參數(shù)的具體內(nèi)容 傳數(shù)值:傳送數(shù)據(jù)本身 傳地址:傳送數(shù)據(jù)的主存地址 常用的參數(shù)傳遞方法 寄存器 共享變量 堆棧 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章: 用寄存器傳遞參數(shù) 最簡(jiǎn)單和常用的參數(shù)傳遞方法是通過寄存器 , 只要把參數(shù)存于約定的寄存器中就可以了 由于通用寄存器個(gè)數(shù)有限 , 這種方法對(duì)少量數(shù)據(jù)可以直接傳遞數(shù)值 , 而對(duì)大量數(shù)據(jù)只能傳遞地址 采用寄存器傳遞參數(shù) , 注意帶有出口參數(shù)的寄存器不能保護(hù)和恢復(fù) , 帶有入口參數(shù)的寄存器可以保護(hù) 、 也可以不保護(hù) , 但最好能夠保持一致 dpchar dpstri HTOASC 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章: 用共享變量傳遞參數(shù) 子程序和主程序使用同一個(gè)變量名存取數(shù)據(jù)就是利用共享變量 ( 全局變量 ) 進(jìn)行參數(shù)傳遞 如果變量定義和使用不在同一個(gè)源程序中 , 需要利用 PUBLIC、 EXTREN聲明 如果主程序還要利用原來的變量值 , 則需要保護(hù)和恢復(fù) 利用共享變量傳遞參數(shù) , 子程序的通用性較差 ,但特別適合在多個(gè)程序段間 、 尤其在不同的程序模塊間傳遞數(shù)據(jù) 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 第 4章: 用堆棧傳遞參數(shù) 參數(shù)傳遞還可以通過 堆棧 這個(gè)臨時(shí)存儲(chǔ)區(qū) 。 主程序?qū)⑷肟趨?shù)壓入堆棧 , 子程序從堆棧中取出參數(shù);子程序?qū)⒊隹趨?shù)壓入堆棧 , 主程序彈出堆棧取得它們 采用堆棧傳遞參數(shù)是程式化的 , 它是編譯程序處理參數(shù)傳遞 、 以及匯編語(yǔ)言與高級(jí)語(yǔ)言混合編程時(shí)的常規(guī)方法 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 DOS功能調(diào)用與子程序設(shè)計(jì) 單字符輸入并回顯 1號(hào) 入口 : AH=01H 出口: AL=輸入字符編碼并屏幕顯示字符 輸出 /顯示單個(gè)字符 2號(hào) 入口 : AH=02H, DL=字符編碼 出口:顯示字符 多字符輸入 0AH 入口 : AH=0AH, DS:DX指向輸入緩沖區(qū)首址 出口: DS:DX指向輸入字符串緩沖區(qū)首址 , 顯示字符 注意: 緩沖區(qū)第 1個(gè)字節(jié)存放預(yù)定字符個(gè)數(shù) , 最多 255個(gè) 緩沖區(qū)第 2個(gè)字節(jié)保留 , 調(diào)用返回時(shí)存放實(shí)際輸入字符個(gè)數(shù) 緩沖區(qū)第 2個(gè)字節(jié)開始存放字符 保留一個(gè)字節(jié)的回車符 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 DOS功能調(diào)用與子程序設(shè)計(jì) 顯示輸出字符串 9號(hào) 入口 : AH=09H, DS:DX指向輸出字符緩沖區(qū)首址 , 該字符串以 ? $”結(jié)尾 。 出口:顯示字符串 單字符輸入輸出 6號(hào) 1號(hào)和 2號(hào)功能的組合 DL=0FFH, 與 1號(hào)功能相同 , 從鍵盤輸入單個(gè)字符 DL=字符的 ASCII碼 , 與 2號(hào)功能相同 , 從鍵盤輸出單個(gè)字符 結(jié)束程序 , 返回操作系統(tǒng) 入口 : AH=4CH 出口:屏幕顯示操作系統(tǒng)提示符 n 如果在 DEBUG狀態(tài)下運(yùn)行則返回 DEBUG, 在 DOS下運(yùn)行 , 則返回 DOS 杭州電子科技大學(xué) 微機(jī)原理及應(yīng)用 DOS功能調(diào)用與子程序設(shè)計(jì) 編寫一個(gè)子程序 , 實(shí)現(xiàn)一個(gè) 2位十六進(jìn)制數(shù)到 ASCII碼的轉(zhuǎn)換 。 子程序: CONHA— 實(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1