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

正文內(nèi)容

[理學(xué)]第4章_匯編程序-在線瀏覽

2024-12-03 21:23本頁(yè)面
  

【正文】 DD DX, 2 ADD DX,CX ; 得到字符串尾地址 MOV BX,DX MOV BYTE PTR[BX],39。 ; 插入串結(jié)束符 MOV AH,4CH INT 21H CODE ENDS END START 顯示器輸出 ( 9) 用 2號(hào)功能顯示一個(gè)字符: … MOV DL,要顯示的字符 ASCII MOV AH,2 INT 21H … … MOV DL, 要顯示的字符 MOV AH,6 INT 21H … 用 9號(hào)功能顯示一個(gè)字符串: 該功能要求被顯示的字符串必須以 “ $”結(jié)束 ;如果希望光標(biāo)能自動(dòng)換行,則應(yīng)在字符串結(jié)束前加上回車及換行的 ASCII碼 0DH和 0AH; MOV DX,OFFSET CHARS。用 4CH號(hào)功能返回 DOS的程序段如下: … MOV AH,4CH ;功能號(hào)送 AH INT 21H ;返回 DOS MOV AX, 4C00H INT 21H 8086/8088匯編語(yǔ)言程序設(shè)計(jì) 一、程序設(shè)計(jì)的基本步驟: 1) 分析問(wèn)題 2) 確定算法 3) 畫程序流程圖 4) 為數(shù)據(jù)和程序代碼分配內(nèi)存單元和寄存器 5) 編寫源程序 6) 匯編、調(diào)試與修改 二、匯編語(yǔ)言源程序基本設(shè)計(jì)方法 順序程序設(shè)計(jì) 分支程序設(shè)計(jì) 循環(huán)程序設(shè)計(jì) 子程序設(shè)計(jì) 程序設(shè)計(jì)應(yīng)盡量采用結(jié)構(gòu)化、模塊化的設(shè)計(jì)方法。 順序程序 沒有分支、沒有循環(huán)、沒有轉(zhuǎn)移 [例 411] 對(duì)于三個(gè) 8位無(wú)符號(hào)數(shù) 86H、 34H和 21H,編寫 S=86H 34H21H的程序。STACK39。初始化數(shù)據(jù)段 MOV DS,AX MOV AX,SSEG 。置數(shù)據(jù)指針 MOV AH,0 MOV AL,DATA 。查表 MOV AL,[BX] MOV RESULT,AL 。 DATA SEGMENT BUFFER DB 100 DUP(?) COUNT DB 100 ;定義數(shù)據(jù)緩沖區(qū)長(zhǎng)度 DATA ENDS STACK SEGMENT ?STACK? DW 32 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS: CODE,DS: DATA,SS: STACK START: MOV AX,DATA MOV DS,AX ;初始化數(shù)據(jù)段 MOV AX,STACK MOV SS,AX ;初始化堆棧段 MOV CX,COUNT ;置單元長(zhǎng)度 LEA BX,BUFFER AGAIN: MOV [BX],0 ;實(shí)現(xiàn) 100個(gè)單元清零 INC BX DEC CX JNZ AGAIN MOV AH,4CH INT 21H CODE ENDS END START DATA SEGMENT BUFFER DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS: DATA START: MOV AX,DATA MOV DS,AX MOV CX,100 ;置緩沖區(qū)長(zhǎng)度 LEA BX,BUFFER AGAIN: MOV [BX],0 INC BX LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS END START 循環(huán)程序設(shè)計(jì) 循環(huán)程序設(shè)計(jì)結(jié)構(gòu) 初始化部分 工作部分 修改部分 循環(huán)結(jié)束? 結(jié)束部分 初始化部分 循環(huán)結(jié)束? 工作部分 修改部分 結(jié)束部分 先執(zhí)行后判斷 先判斷后執(zhí)行 循環(huán)控制的方法 控制循環(huán)有多種方法: 計(jì)數(shù)器控制循環(huán); 條件控制循環(huán); 邏輯尺控制循環(huán); 開關(guān)變量控制循環(huán)(分支規(guī)律已知,計(jì)數(shù)次數(shù)或循環(huán)條件已知); [例 414] 在數(shù)據(jù)段 DATA1開始的 80個(gè)連續(xù)的存儲(chǔ)單元中,存放 80位同學(xué)某門課程的考試成績(jī) (0~100)。將結(jié)果存放到DATA2開始的存儲(chǔ)單元中。假定學(xué)生成績(jī)已放入這 80個(gè)單元中 DATA2 DB 5 DUP(0) 。統(tǒng)計(jì) 80個(gè)學(xué)生的成績(jī) LEA SI,DATA1 LEA DI,DATA2 AGAIN: MOV AL,[SI] CMP AL,90 。小于 90分 ,轉(zhuǎn) NEXT1 INC BYTE PTR [DI] 。轉(zhuǎn)循環(huán)控制處理 NEXT1: CMP AL,80 。小于 80分 ,轉(zhuǎn) NEXT2 INC BYTE PTR[DI+1] 。與 70比較 JC NEXT3 。否則 70分以上的人數(shù)加 1 JMP STO NEXT3: CMP AL,60 。小于 60分 ,轉(zhuǎn) NEXT4 INC BYTE PTR [DI+3] 。轉(zhuǎn)循環(huán)控制處理 NEXT4 NEXT4: INC BYTE PTR [DI+4] 。指向下一個(gè)學(xué)生成績(jī) LOOP AGAIN 。返回 DOS INT 21H CODE ENDS END START [例如 421] 兩個(gè)多字節(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 。CF=0 GOON: MOV AX,[SI] ADC AX,[DI] INC SI INC SI INC DI INC DI MOV [BX],AX INC BX INC BX LOOP GOON MOV AH,4CH INT 21H CODE ENDS END START 三、多重循環(huán)程序設(shè)計(jì) 例 在以 BUF為首址的字存儲(chǔ)區(qū)中存放有 N個(gè)有符號(hào)數(shù) , 現(xiàn)需將它們按大到小的順序排列在 BUF存儲(chǔ)區(qū)中 , 試編寫其程序 。 可以看出 , 第一遍需比較 ( N1) 次 , 此時(shí) , 最小的數(shù)已經(jīng)放到了最后; 第二遍比較 :只需考慮剩下的 ( N1) 個(gè)數(shù) , 即只需比較 ( N2) 次;第三遍只需比較 ( N3) 次 , …… 整個(gè)排序過(guò)程最多需 ( N1) 遍 。 數(shù) 10 8 16 90 32 第一遍 10 16 90 32 8 第二遍 16 90 32 10 8 第三遍 90 32 16 10 8 程序流程圖如圖 。假定要排序的數(shù)已 DSEG ENDS 。DI指向 MEM的首址 MOV BL,99 。 。SI指向當(dāng)前要比較的數(shù) MOV CL,BL 。以下為內(nèi)循環(huán) NEXT2: MOV AX,[SI] 。指向下一個(gè)數(shù) Nj, CMP AX,[SI] 。若 Ni 大于 Nj ,則不交換 MOV DX,[SI] 。內(nèi)循環(huán)結(jié)束 ? JNZ NEXT2 。內(nèi)循環(huán)到此結(jié)束 DEC BL 。若未結(jié)束 ,則繼續(xù) 。返回 DOS INT 21H CSEG ENDS END START 子程序設(shè)計(jì) 子程序的作用: 功能獨(dú)立,可重復(fù)調(diào)用;便于程序設(shè)計(jì)模塊化; 將 多次重復(fù)的程序段或語(yǔ)句序列 設(shè)計(jì)成可供反復(fù)調(diào)用的獨(dú)立的子程序結(jié)構(gòu) 。 子程序執(zhí)行完后,返到主程序處繼續(xù)執(zhí)行主程序,稱為“返回主程序”,即返主。 使用子程序的注意事項(xiàng) : 參數(shù)傳遞 主程序現(xiàn)場(chǎng)保護(hù): 常常是子程序用到的寄存器主程序也會(huì)用到,為了防止破壞主程序中寄存器的內(nèi)容,需要在子程序入口處將其所用到的寄存器內(nèi)容壓棧保護(hù) 。 ② 保護(hù)現(xiàn)場(chǎng) :為了不破壞主程序原有信息,進(jìn)入子程序首先把子程序中將要用到的寄存器、存儲(chǔ)單元等壓入堆?;虼嫒肟沾鎯?chǔ)單元中。 ⑤ 子程序返回 : RET指令,返回到主程序的斷點(diǎn)處,繼續(xù)執(zhí)行主程序。一般有以下幾項(xiàng)內(nèi)容: ( 1) 子程序名 :有一定意義的標(biāo)識(shí)符,同時(shí)也是該子程序的入口地址; ( 2) 子程序功能 :子程序完成的具體任務(wù); ( 3)子程序中所用 寄存器和工作單元; ( 4) 子程序輸入?yún)?shù) :子程序運(yùn)行所需參數(shù)及通過(guò)寄存器、存儲(chǔ)單元或堆棧傳遞; ( 5) 子程序輸出參數(shù) :子程序運(yùn)行完畢的結(jié)果參數(shù)由哪些寄存器、存儲(chǔ)單元或堆棧傳遞。 ………. ………. 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)場(chǎng) 主程序 Flash 子程序 取得參數(shù) MOV CX,[ BP+6] MOV BX,[ BP+4] ADD1: 求和并且 保存結(jié)果 XOR AX, AX ADD AL, [BX] ADC AH,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1