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

正文內(nèi)容

[電腦基礎(chǔ)知識(shí)]第5章8086匯編語(yǔ)言程序設(shè)計(jì)-資料下載頁(yè)

2025-01-19 15:32本頁(yè)面
  

【正文】 ,也常常需要把運(yùn)行的結(jié)果返回給調(diào)用程序,這種調(diào)用程序和子程序之間的信息傳遞,稱為“參數(shù)傳遞”。 ? 參數(shù)傳遞的主要方法有: 寄存器傳遞、內(nèi)存變量傳遞和堆棧傳遞 。 ? 傳遞的內(nèi)容如果是數(shù)據(jù)本身,稱為“值傳遞”;如果是數(shù)據(jù)所在單元的地址,稱為“地址傳遞”。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) ?為了方便地使用子程序,應(yīng)編寫子程序調(diào)用說(shuō)明。 ?子程序調(diào)用方法說(shuō)明包括: ? 子程序功能 ? 入口參數(shù) ? 出口參數(shù) ? 使用的寄存器或存儲(chǔ)器及調(diào)用實(shí)例。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 子程序設(shè)計(jì)舉例 ?【例 58】 利用寄存器傳遞參數(shù)。編寫子程序,實(shí)現(xiàn)以二進(jìn)制形式顯示 BX的值(假設(shè)為無(wú)符號(hào)數(shù))。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 58】 (續(xù)) 。 。子程序名 :DISP_BINARY 。功能 :以二進(jìn)制形式顯示 BX的值 (假設(shè)為無(wú)符號(hào)數(shù) ) 。入口參數(shù) :BX 。出口參數(shù) :無(wú) 。 DISP_BINARY PROC PUSH CX PUSH DX PUSH AX PUSHF 。保護(hù)現(xiàn)場(chǎng) 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 58】 (續(xù)) MOV CX,16 NEXTCHAR: ROL BX,1 MOV DL,BL AND DL,1 OR DL,30H MOV AH,2 INT 21H LOOP NEXTCHAR 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 58】 (續(xù)) FINISH: MOV DL,39。B39。 MOV AH,2 INT 21H POPF ?;謴?fù)現(xiàn)場(chǎng) POP AX POP DX POP CX RET DISP_BINARY ENDP 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 58】 (續(xù)) ?本例利用寄存器 BX傳遞參數(shù)。 ?作為 出口參數(shù) 的寄存器是 不能保護(hù) 的,否則就失去了傳遞參數(shù)的作用; ?作為入口參數(shù)的寄存器可以保護(hù)也可以不保護(hù)。 ?由于寄存器的數(shù)量有限,這種方法只適用于少量數(shù)據(jù)的傳遞。 ?當(dāng)有大量數(shù)據(jù)要傳遞時(shí),需要用到指定單元或堆棧的方法傳遞參數(shù)。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 子程序設(shè)計(jì)舉例(續(xù)) ?【例 59】 利用指定存儲(chǔ)單元進(jìn)行參數(shù)傳遞,編程利用子程序?qū)崿F(xiàn)數(shù)據(jù)塊的復(fù)制。 SSEG SEGMENT DW 64 DUP(?) TOS LABEL WORD SSEG ENDS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 59】 (續(xù)) DATA SEGMENT BUF1 DB 1,2,3,4,5,6,7,8,9,100 BUF2 DB 10 DUP(?) SRCADDR DW ? DSTADDR DW ? LEN DW ? DATA ENDS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 59】 (續(xù)) CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEG,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,SSEG MOV SS,AX MOV SP,OFFSET TOS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 59】 (續(xù)) LEA AX,BUF1 MOV SRCADDR,AX 。 置源數(shù)據(jù)區(qū)首地址 LEA AX,BUF2 MOV DSTADDR,AX 。 置目的數(shù)據(jù)區(qū)首地址 MOV LEN,10 。 置數(shù)據(jù)塊長(zhǎng)度 CALL MOVEMYDAT 。調(diào)用子程序 MOVEMYDAT MOV AH,4CH INT 21H 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 59】 (續(xù)) 。 。子程序名 :MOVEMYDAT 。功能 :數(shù)據(jù)塊復(fù)制 。入口參數(shù) :源數(shù)據(jù)區(qū)首地址存 SRCADDR 。入口參數(shù) :目的數(shù)據(jù)區(qū)首地址存 DSTADDR,數(shù)據(jù)塊長(zhǎng)度存 LEN 。出口參數(shù) :無(wú) 。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 59】 (續(xù)) MOVEMYDAT PROC MOV SI,SRCADDR MOV DI,DSTADDR MOV CX,LEN STD ADD SI,CX DEC SI ADD DI,CX DEC DI BEGIN: REP MOVSB RET MOVEMYDAT ENDP CODE ENDS END START 本例利用指定存儲(chǔ)單元進(jìn)行參數(shù)傳遞。這種方法實(shí)現(xiàn)的子程序通用性較差。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) ?【例 510】 利用堆棧進(jìn)行參數(shù)傳遞。 ?編程利用子程序求 2個(gè)含有 10個(gè)元素的無(wú)符號(hào)字節(jié)數(shù)組 AD1和 AD2對(duì)應(yīng)元素之和,計(jì)算結(jié)果存入 SUM字節(jié)數(shù)組(不考慮運(yùn)算結(jié)果溢出的情況)。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 510】 (續(xù)) SSEG SEGMENT STACK 39。STACK39。 DW 64 DUP(?) TOS LABEL WORD SSEG ENDS DATA SEGMENT AD1 DB 1,2,3,4,5,6,7,8,9,100 AD2 DB 2,3,4,5,6,7,8,9,10 SUM DW 10 DUP(?) LEN EQU 10 DATA ENDS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 510】 (續(xù)) CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEG,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,SSEG MOV SS,AX MOV SP,OFFSET TOS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 510】 (續(xù)) MOV CX,LEN LEA SI,AD1 LEA DI,AD2 LEA BX,SUM NEXT: PUSH [SI] PUSH [DI] CALL ADD_B MOV [BX],AX INC SI INC DI INC BX LOOP NEXT MOV AH,4CH INT 21H 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 510】 (續(xù)) 。 。子程序名 :ADD_B 。功能 :求字節(jié)和 。入口參數(shù) :堆棧 。出口參數(shù) :無(wú) 。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 510】 (續(xù)) ADD_B PROC MOV BP,SP MOV AX,[BP+2] ADD AX,[BP+4] RET 4 ADD_B ENDP CODE ENDS END START 本例用堆棧傳遞參數(shù)。在主程序中,每次調(diào)用子程序前向堆棧壓入兩個(gè)參數(shù)供子程序計(jì)算用。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 匯編語(yǔ)言程序設(shè)計(jì)舉例 ?【例 511】 編程計(jì)算 ,其中 X, Y, Z和 W都是帶符號(hào) 16位數(shù),計(jì)算結(jié)果的商存入 AX,余數(shù)存入 DX。 SSEG SEGMENT STACK 39。STACK39。 DW 64 DUP(?) TOS LABEL WORD SSEG ENDS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 511】 (續(xù)) DATA SEGMENT X DW 6 Y DW 7 Z DW 280 W DW 2022 DATA ENDS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 511】 (續(xù)) CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEG,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,SSEG MOV SS,AX MOV SP,OFFSET TOS 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 511】 (續(xù)) MOV AX,X IMUL Y MOV CX,AX MOV BX,DX 。(BX,CX)← X?Y MOV AX,Z CWD 。(DX,AX)← 把 Z擴(kuò)展為雙字類型 ADD CX,AX ADC BX,DX 。(BX,CX)← X?Y+Z 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 511】 (續(xù)) SUB CX,200 SBB BX, 。(BX,CX)← X?Y+Z200 MOV AX,W CWD 。(DX,AX)← 把 W擴(kuò)展為雙字類型 SUB AX,CX SBB DX,BX MOV BX,25 IDIV BX MOV AH,4CH INT 21H CODE ENDS END START 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) ?【例 512】 將內(nèi)存數(shù)據(jù)段 INSTR地址開始存放的一個(gè)由字母組成的字符串中的小寫字母全部轉(zhuǎn)換成大寫字母(其余字符不變)后存至內(nèi)存數(shù)據(jù)段 OUTSTR地址處。如原字符串是“ hello ASM! 20220601” , 那么轉(zhuǎn)換完后應(yīng)該是 “HELLO ASM! 20220601”。 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 512】 (續(xù)) DATA SEGMENT INSTR DB 39。hello ASM! 2022060139。 STRLEN EQU $INSTR OUTSTR DB STRLEN DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 512】 (續(xù)) LEA SI,INSTR LEA DI,OUTSTR MOV CX,STRLEN NEXTCHAR: MOV AL,[SI] CMP AL,39。a39。 JB UNCHG 。不是小寫字母 ,則不轉(zhuǎn)換 CMP AL,39。z39。 JA UNCHG 。不是小寫字母 ,則不轉(zhuǎn)換 SUB AL,20H 。將小寫字母轉(zhuǎn)換為大寫字母 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 512】 (續(xù)) UNCHG: MOV [DI],AL INC SI INC DI LOOP NEXTCHAR MOV AH,4CH INT 21H CODE ENDS END START 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) ?【例 513】 編程以十六進(jìn)制形式顯示 BX的值(假設(shè)為無(wú)符號(hào)數(shù))。 ?如 (BX)=20,那么顯示 0014H。 CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,20 。BX中存放的是要顯示的數(shù) MOV CH,4 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 513】 (續(xù)) NEXT: MOV CL,4 ROL BX,CL 。將最高 4位二進(jìn)制值移至低 4位 MOV DL,BL AND DL,0FH 。僅保留本次要顯示的數(shù)值 OR DL,30H 。得到要顯示的字符的 ASCII值 CMP DL,39H JBE DISPHEX ADD DL,7 。得到 10~ 15所對(duì)應(yīng)的字符 ASCII值 第 5章 8086匯編語(yǔ)言程序設(shè)計(jì) 【例 513】 (續(xù)) DISPHEX: MOV AH,2 INT 21H 。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1