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

正文內(nèi)容

模塊化程序設計與混合編程-資料下載頁

2025-01-07 21:46本頁面
  

【正文】 IN ENDP ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 BIN_TO_ASCII PROC FAR ;將二進制數(shù)轉(zhuǎn)換為對應十進制數(shù)數(shù)字的 ASCII碼 ;入口:二進制數(shù)在 AX內(nèi) ;出口:轉(zhuǎn)換后的 ASCII碼在 OUT_ASC_SUM變量內(nèi) ;算法: AX中的數(shù)范圍在 +32767到 32768之間,先檢查 AX中 ;的符號位,以決定輸出“ +” ;還是“ ” ,若是負數(shù),應先求補,得到原碼后即可與正數(shù)作 ;統(tǒng)一處理。轉(zhuǎn)換方法為將被轉(zhuǎn)換 ;的二進制數(shù)先除以 10000,商;即為萬位數(shù),再將余數(shù)除以 ; 1000,商為千位數(shù),以此類推, ;求出百、十位數(shù),剩下的為個位數(shù)。最后,將各個數(shù)加上 ; 30H,即成為對應字符。 MOV OUT_ASC_SUM, 39。+39。 CMP AX, 0 JGE L4 ;不是負數(shù),轉(zhuǎn)移 NEG AX MOV OUT_ASC_SUM, 39。39。 ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 L4: CWD MOV BX, 10000 DIV BX ADD AL, 30H;將萬位轉(zhuǎn)換為數(shù)字 (商應在 AX內(nèi),但因為商不大于 ; 3,所以有效部分在 AL內(nèi) ) MOV OUT_ASC_SUM+1, AL;保存萬位數(shù)字 MOV AX, DX ;將余數(shù)置入 AX內(nèi),以便當作被除數(shù) CWD MOV BX, 1000 DIV BX ADD AL, 30H MOV OUT_ASC_SUM+2, AL;保存千位數(shù)字 MOV AX, DX ;將余數(shù)置入 AX內(nèi),以便當作被除數(shù) MOV BL, 100 DIV BL ADD AL, 30H ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 MOV OUT_ASC_SUM+3, AL ;保存百位數(shù)字 MOV AL, AH CBW MOV BL, 10 DIV BL ADD AL, 30H MOV OUT_ASC_SUM+4, AL ;保存十位數(shù)字 ADD AH, 30H MOV OUT_ASC_SUM+5, AH ;保存?zhèn)€位數(shù)字 RET BIN_TO_ASCII ENDP CSEG ENDS END ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 程序運行結(jié)果如下 (畫線部分為鍵入內(nèi)容 ): D: \MASMA PLEASE INPUT A NUMBER(LESS THAN 5 FIGUERS): 2022 PLEASE INPUT A NUMBER(LESS THAN 5 FIGUERS): +3310 THE SUM IS: +01310 返回本章首頁 ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 實訓二 C語言調(diào)用匯編語言子程序進行數(shù)據(jù)傳遞與顯示 實訓內(nèi)容:同本章例 ,但要克服例 分析:因為在 printf()中控制一個字節(jié)數(shù)據(jù)的顯示格式比較困難,故我們將顯示部分也在匯編模塊中完成即可。 參考程序: 匯編程序: .MODEL SMALL .CODE PUBLIC _disp ;聲明全局符號,以便 C模塊調(diào)用 CHAR_DISPLAY PROC ;將 AL內(nèi)“ 0000 XXXX” 格式的數(shù)據(jù)以十六進制形式顯示出來(一個字符) ;入口參數(shù):在 AL內(nèi)( AL的高四位必須為 0,低四位為待顯示數(shù)據(jù)) ;出口參數(shù):將對應十六進制字符顯示在屏幕上 ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 CMP AL, 9 JA @@1 ;若 AL> 9,則需要顯示 A~ F之間的一個字母,轉(zhuǎn)到 @@1處處理 MOV AH, 2 MOV DL, AL ADD DL, 30H INT 21H RET @@1: SUB AL, 0AH MOV DL, 39。A39。 ADD DL, AL MOV AH, 2 INT 21H RET CHAR_DISPLAY ENDP ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 HEX_DISP PROC ;將 AL內(nèi)的數(shù)以十六進制格式顯示在屏幕上 ;入口參數(shù):在 AL內(nèi) ;出口參數(shù):對應數(shù)據(jù)顯示在屏幕上(二個字符) PUSH DX PUSH CX PUSH AX MOV CL, 4 SHR AL, CL ;將 AL右移四位,使得高四位為 0,原高四位數(shù)據(jù)到低四位上 CALL CHAR_DISPLAY;將 AL內(nèi)原高四位上的數(shù)據(jù)顯示出來 POP AX ;恢復原 AL內(nèi)的數(shù)據(jù) AND AL, 0FH ; AL高四位清 0,以使顯示低四位上的數(shù)據(jù) CALL CHAR_DISPLAY ;顯示 AL低四位上的數(shù)據(jù) POP CX POP DX RET HEX_DISP ENDP ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 SPACE_DISP PROC ;顯示二個空格,以便將屏幕上的十六進制數(shù)隔開,無入口參數(shù) PUSH DX PUSH AX MOV DL, 39。 39。 MOV AH, 2 INT 21H MOV DL, 39。 39。 MOV AH, 2 INT 21H POP AX POP DX RET SPACE_DISP ENDP ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 _disp PROC ;將指定內(nèi)存位置處的數(shù)據(jù)以十六進制形式顯示在屏幕上 ;入口參數(shù):被顯示內(nèi)存的內(nèi)存長度、首地址的偏移量、段地址,均要放在堆棧內(nèi) PUSH BP MOV BP, SP PUSH SI PUSH DS MOV CX, [BP+4];取第一個參數(shù):顯示內(nèi)存的長度 LDS SI, [BP+6];第二、三個參數(shù):偏移量 → SI,段地址 → DS CLD @1: LODSB ;取一字節(jié)數(shù)據(jù)送入 AL CALL HEX_DISP ;顯示 AL內(nèi)數(shù)據(jù) CALL SPACE_DISP ;顯示二個空格 LOOP @1 POP DS POP SI POP BP _disp ENDP END ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 C程序: include extern void disp(unsigned int, unsigned int, unsigned int); main() { unsigned int segment, offset, number; printf(\n Please input the address (segment: offset): ); scanf(%x: %x, amp。segment, amp。offset) ; printf(\n Plesae input the number( less than 20): ); scanf(%u, amp。number); disp(number, offset, segment); } ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 上機過程: 設匯編語言模塊文件名為: , C語言模塊文件名為: 用如下命令行將匯編模塊編譯成目標文件 tasm /ml disp。 生成一個文本文件,其擴展名為 .prj( .prj為 Turbo C的工程文件),如 該文件內(nèi)容如下: 在 Turbo C集成環(huán)境中用 Project— Project name菜單打開此工程文件。 用 Comple— Make EXE file菜單生成 EXE文件 。 該程序運行結(jié)果為(畫線部分為鍵入內(nèi)容): ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 D:\TC2example Please input the address (segment:offset):0x0000:0x2f30 Plesae input the number( less than 20) :20 83 54 0A 00 83 54 0C 00 83 54 0E 00 86 E9 D1 E1 01 4C 04 72 ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 為驗證程序是否正確,我們用 debug再顯示一遍上述地址處的內(nèi)容,如下: D:\TC2debug d0:2f30 l14 0000:2F30 83 54 0A 00 83 54 0C 0083 54 0E 00 86 E9 D1 E1 .T...T...T...... 0000:2F40 01 4C 04 72 . 由此,可見程序運行正確。 返回本章首頁 ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 本章小結(jié) 一個大的項目,必須按一定的原則劃分為若干小的模塊,以便于編寫和調(diào)試,但這也帶來了模塊間如何共享代碼和數(shù)據(jù)的問題。 一個模塊內(nèi)要調(diào)用另一個模塊內(nèi)的代碼,涉及到這種轉(zhuǎn)移是近轉(zhuǎn)移還是遠轉(zhuǎn)移的問題。若調(diào)用者與被調(diào)用者連接后能在一個段內(nèi),可采用近轉(zhuǎn)移,否則必須采用遠轉(zhuǎn)移。不論是近轉(zhuǎn)移還是遠轉(zhuǎn)移,調(diào)用模塊對外部符號的聲明類型與定義模塊對該符號的實際定義類型必須一致。若不一致,由于二個模塊分別匯編,這一問題在匯編時發(fā)現(xiàn)不了,但在運行時能導致程序崩潰。 ?第 9章 模塊化程序設計與混合編程 匯編語 言程序 設計 高等 教 育出版社 兩個模塊間要共享或傳遞數(shù)據(jù),當數(shù)據(jù)不多時,可通過寄存器或堆棧以入口參數(shù)或出口參數(shù)的方式進行。當數(shù)據(jù)較多或較復雜時,可直接訪問對方的數(shù)據(jù)段。訪問另一個模塊的數(shù)據(jù)段時,須特別注意調(diào)整 DS寄存器使之指向?qū)Ψ降臄?shù)據(jù)段,然后才能訪問。當訪問結(jié)束時,再使 DS指向己方的數(shù)據(jù)段。利用 COMMON段共享數(shù)據(jù)是一種較簡便的方法,只要在兩個模塊內(nèi)定義完全相同的數(shù)據(jù)段,并都指定為 COMMON類型即可。 要編寫一個能被 C語言調(diào)用的匯編模塊,這個模塊必須在內(nèi)存分段、符號命名、堆棧使用、入口參數(shù)及返回參數(shù)的傳遞等方面符合 C模塊的規(guī)則,并要對可能破壞的寄存器進行恰當?shù)谋Wo。不符合這些要求的匯編語言模塊不能被 C模塊安全地調(diào)用。當程序中只須少量匯編語言語句時,用嵌入?yún)R編更方便。 返回本章首頁 ?第 9章 模塊化程序設計與混合編程
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1