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

正文內(nèi)容

[理學(xué)]第4章_匯編程序-預(yù)覽頁

2025-11-08 21:23 上一頁面

下一頁面
 

【正文】 AH,4CH INT 21H CODE ENDS END START 循環(huán)程序設(shè)計 循環(huán)程序設(shè)計結(jié)構(gòu) 初始化部分 工作部分 修改部分 循環(huán)結(jié)束? 結(jié)束部分 初始化部分 循環(huán)結(jié)束? 工作部分 修改部分 結(jié)束部分 先執(zhí)行后判斷 先判斷后執(zhí)行 循環(huán)控制的方法 控制循環(huán)有多種方法: 計數(shù)器控制循環(huán); 條件控制循環(huán); 邏輯尺控制循環(huán); 開關(guān)變量控制循環(huán)(分支規(guī)律已知,計數(shù)次數(shù)或循環(huán)條件已知); [例 414] 在數(shù)據(jù)段 DATA1開始的 80個連續(xù)的存儲單元中,存放 80位同學(xué)某門課程的考試成績 (0~100)。假定學(xué)生成績已放入這 80個單元中 DATA2 DB 5 DUP(0) 。小于 90分 ,轉(zhuǎn) NEXT1 INC BYTE PTR [DI] 。小于 80分 ,轉(zhuǎn) NEXT2 INC BYTE PTR[DI+1] 。否則 70分以上的人數(shù)加 1 JMP STO NEXT3: CMP AL,60 。轉(zhuǎn)循環(huán)控制處理 NEXT4 NEXT4: INC BYTE PTR [DI+4] 。返回 DOS INT 21H CODE ENDS END START [例如 421] 兩個多字節(jié)二進(jìn)制數(shù)求和程序; DATA SEGMENT BUFF1 DB 4FH,0B6H,7CH,34H,56H,1FH BUFF2 DB 13H,24H,57H,68H,0FDH,9AH SUM DB 6 DUP( ?) COUNT DB 3 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI, OFFSET BUFF1 MOV DI ,OFFSET BUFF2 MOV BX,OFFSET SUM MOV CL,COUNT 。 可以看出 , 第一遍需比較 ( N1) 次 , 此時 , 最小的數(shù)已經(jīng)放到了最后; 第二遍比較 :只需考慮剩下的 ( N1) 個數(shù) , 即只需比較 ( N2) 次;第三遍只需比較 ( N3) 次 , …… 整個排序過程最多需 ( N1) 遍 。假定要排序的數(shù)已 DSEG ENDS 。 。以下為內(nèi)循環(huán) NEXT2: MOV AX,[SI] 。若 Ni 大于 Nj ,則不交換 MOV DX,[SI] 。內(nèi)循環(huán)到此結(jié)束 DEC BL 。返回 DOS INT 21H CSEG ENDS END START 子程序設(shè)計 子程序的作用: 功能獨(dú)立,可重復(fù)調(diào)用;便于程序設(shè)計模塊化; 將 多次重復(fù)的程序段或語句序列 設(shè)計成可供反復(fù)調(diào)用的獨(dú)立的子程序結(jié)構(gòu) 。 使用子程序的注意事項 : 參數(shù)傳遞 主程序現(xiàn)場保護(hù): 常常是子程序用到的寄存器主程序也會用到,為了防止破壞主程序中寄存器的內(nèi)容,需要在子程序入口處將其所用到的寄存器內(nèi)容壓棧保護(hù) 。 ⑤ 子程序返回 : RET指令,返回到主程序的斷點(diǎn)處,繼續(xù)執(zhí)行主程序。 ………. ………. MOV AX , LEN1 PUSH AX LEA AX , ARY1 PUSH AX 存放參數(shù) PUSH BP MOV BP, SP PUSH AX PUSH BX PUSH CX PUSHF 保護(hù)現(xiàn)場 主程序 Flash 子程序 取得參數(shù) MOV CX,[ BP+6] MOV BX,[ BP+4] ADD1: 求和并且 保存結(jié)果 XOR AX, AX ADD AL, [BX] ADC AH, 0 INC BX LOOP ADD1 MOV [ BX] , AX 恢復(fù)現(xiàn)場 POPF POP CX POP BX POP AX POP BP 返回主程序 RET 4 調(diào)用子程序 CALL SUM 存放參數(shù) MOV AX, LEN2 PUSH AX LEA AX, ARY2 PUSH AX 調(diào)用子程序 CALL SUM 用堆棧段 傳遞參數(shù) ? DATA SEGMENT ? ARY1 DB 03H , 07H , 50H , 06H , 23H , ? 45H , 0F6H , 0DFH ? LEN1 EQU $ ARY1 ? SUM1 DW ? ? ARY2 DB 33H , 44H , 55H , 12H , 78H , ? 89H , 0FFH , 0CDH ? LEN2 EQU $ ARY2 ? SUM2 DW ? ? DATA ENDS ? STACK SEGMENT STACK ’ STACK ’ ? DB 100 DUP ( ‘ S ‘ ) ? STACK ENDS ? CODE SEGMENT PARA ‘ CODE ’ ? ASSUME CS : CODE , DS : DATA , ? SS : STACK ? STA PROC FAR ? PUSH DS ? XOR AX , AX ? PUSH AX MOV AX , DATA MOV DS , AX MOV AX ,STACK MOV SS , AX MOV AX , LEN1 PUSH AX LEA AX , ARY1 PUSH AX CALL SUM MOV AX, LEN2 PUSH AX LEA AX, ARY2 PUSH AX CALL SUM RET STA ENDP Flash ? SUM PROC ? PUSH BP ? MOV BP, SP ? PUSH AX ? PUSH BX ? PUSH CX ? PUSHF ? MOV CX,[ BP+6] ? MOV BX,[ BP+4] ? XOR AX, AX ADD1: ADD AL, [BX] ADC AH, 0 INC BX LOOP ADD1 MOV [ BX] , AX POPF POP CX POP BX POP AX POP BP RET 4 SUM ENDP CODE ENDS END STA Flash 子程序應(yīng)用舉例 例 將一個給定的二進(jìn)制數(shù)按位轉(zhuǎn)換成相應(yīng)的ASCII碼字符串 , 送到指定的存儲單元并顯示 。轉(zhuǎn)換二進(jìn)制數(shù)送 DX MOV CX,8 。$39。$39。比較 8位數(shù) JNE L1 。CF移入 AL最低位 ADD AL,30H MOV [DI],AL INC DI LOOP L1 POP AX RET BTASC ENDP CODE ENDS END START 返回本節(jié) 運(yùn)行匯編語言源程序 一、運(yùn)行匯編語言源程序的步驟 1) 編輯源程序,調(diào)用編輯程序 (edit)建立一個擴(kuò)展名為 .asm的源程序文件; 2) 匯編源程序。為此,需鍵入: C:MASM 源文件名 屏幕上顯示: Microsoft(R) Macro assemble Version Copyright(C) Microsoft Corp 19811985,1987 ALL rights reserved OBJ filename[file.obj]: Source listing[]: Crossreference[]: 匯編后生成以下幾個文件: ( 1) .OBJ文件 .OBJ文件是目標(biāo)代碼文件,當(dāng)源程序中無語法錯誤時,則在當(dāng)前工作盤上自動存入一個 .OBJ文件,供下一步連接用。 三、 連接目標(biāo)程序 匯編后生成的 .OBJ文件,其所有目標(biāo)代碼的地址都是浮動的偏移地址,機(jī)器不能直接運(yùn)行。 連接后,可生成兩種文件: .EXE和 .MAP ( 1) .EXE文件(可執(zhí)行文件) 若連接過程中無錯誤,則自動在當(dāng)前工作盤生成 .EXE文件。如: LINK files1+files2+files3 如: LINK file。 ②在 DOS提示符下鍵入: DEBUG [路徑\ ]文件名 ↙ DEBUG執(zhí)行,并將指定文件裝入內(nèi)存,供調(diào)試。 ?既不送段地址,也不送偏移地址,段地址采用默認(rèn)的段寄存器,偏移地址采用當(dāng)前值。 ?只送段地址,省略偏移地址,非法。 DEBUG首先顯示指定單元內(nèi)容,如要修改,可輸入新數(shù)據(jù);空格鍵顯示下一個單元內(nèi)容并可修改,減號鍵顯示上一個單元內(nèi)容并可修改;如不修改,可直接按空格鍵或減號鍵;回車鍵結(jié)束命令。 - F DS:0 L5 01,02,03,04,05 - F DS:0 L5 01 02 03 04 05(空格分隔) - F DS:0 L5 FF ; 5個字節(jié)重復(fù)使用 FF 注意和 E命令的區(qū)別: E 地址 數(shù)據(jù)表 起始地址,不是范圍 R命令 R ① R;★顯示所有寄存器和標(biāo)志位狀態(tài); ★顯示當(dāng)前 CS: IP指向的指令。 ②每條指令后要按回車。 ② U 范圍;對指定范圍的單元進(jìn)行反匯編。 ④ G=地址 斷點(diǎn) 1[,斷點(diǎn) 2, … 斷點(diǎn) 10] - G ;從 CS:IP指向的指令開始執(zhí)行程序。 3)如設(shè)置了多個斷點(diǎn),程序在第一個斷點(diǎn)停下 后,顯示寄存器、標(biāo)志及下一條要執(zhí)行的指令,再次 輸入 G命令,程序繼續(xù)往下執(zhí)行,直到下一個斷點(diǎn)或 程序結(jié)束。 ② T =地址; ③ T =地址 數(shù)值; - T - T5 / - T=100 5 必須用分割符 P、 Q命令 P P [=地址 ] [數(shù)值 ];類似 T命令,但跳過子程序 和中斷服務(wù)程序。 讀盤:在當(dāng)前盤當(dāng)前目錄讀取指定文件。 - N - W ② W 地址 驅(qū)動器號 扇區(qū)號 扇區(qū)數(shù);將內(nèi)存數(shù) 據(jù)寫入磁盤的若干扇區(qū)(最多 80H);默認(rèn)的段地址 為 CS。 * 查找命令 S S 范圍 數(shù)據(jù);在指定范圍內(nèi)查找指定數(shù)據(jù)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1