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

正文內(nèi)容

第3章匯編語(yǔ)言程序設(shè)計(jì)-全文預(yù)覽

  

【正文】 分支程序設(shè)計(jì)( 1) ? 在一個(gè)實(shí)際的程序中,程序始終是直線執(zhí)行的情況是不多見(jiàn)的,通常都會(huì)有各種分支,例如變量 x的符號(hào)函數(shù)用下式表示 1 當(dāng) x0 y= 0 當(dāng) x=0 1 當(dāng) x0 ? 在程序中,要根據(jù) x的值給 y賦值 如圖所示 。調(diào)用 32位無(wú)符號(hào)數(shù)乘法程序 cmp sign, 0 。 暫存 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運(yùn)算程序設(shè)計(jì)( 8) other: cmp di, 0 。檢驗(yàn)正或負(fù) jns other 。BAX mov dx, [bx+2] 。以下是主過(guò)程 start proc far begin: push ds mov ax, 0 push ax 。 ? 首先設(shè)一個(gè)乘積的符號(hào)標(biāo)志初值為 0;檢查被乘數(shù),若為負(fù),一方面對(duì)被乘數(shù)取補(bǔ),另一方面對(duì)符號(hào)標(biāo)志取反; ? 再檢查乘數(shù),若是負(fù)數(shù)也對(duì)乘數(shù)取補(bǔ)和符號(hào)標(biāo)志取反;然而調(diào)用 32位無(wú)符號(hào)數(shù)乘法程序。保存后一次相加的進(jìn)位位 mov ax,[bx+2] 。保存 mov ax, [bx] 。保存部分積 I mov [bx+0ah], dx mov ax., [bx+2] 。BAX COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運(yùn)算程序設(shè)計(jì)( 3) mov si, [bx+4] 。 A B C A C B D D A D B C COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運(yùn)算程序設(shè)計(jì)( 1) ? 例 1: 兩個(gè) 32位無(wú)符號(hào)數(shù)乘法程序 ? 若數(shù)據(jù)區(qū)中已有一個(gè)緩沖區(qū)存放了 32位的被乘數(shù)和乘數(shù),保留了 64位的空間以存放乘積,能實(shí)現(xiàn)上述運(yùn)算的程序流程圖 如圖所示 A * C = 部分積 4 恢復(fù)進(jìn)位 部分積 4 與前面的和相加 保存在緩沖區(qū) 返回 保存進(jìn)位 B * C = 部分積 3 存入緩沖區(qū) 進(jìn)位加至部分積 22 部分積 21 (低 16 位) +部分積 12 (高 16 位) A * D = 部分積 2 與前面的對(duì)應(yīng) 16 位相加 被乘數(shù)的高 16 位- AX 存入緩沖區(qū) B * D = 部分積 1 乘數(shù)的高 16 位 C DI 乘數(shù)的低 16 位 D S I 被乘數(shù)的低 16 位 B AX 設(shè)地址指針 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運(yùn)算程序設(shè)計(jì)( 2) 相應(yīng)的程序?yàn)椋? name 32bit mutipty data segment mulnum dw 0000,0ffffh,0000,0ffffh, 4 dup(?) data ends stack segment para stack ‘stack’ db 100 dup(?) stack ends code segment assume cs:code, ds:data, ss:stack,es: data start proc far begin: push ds 。程序的各框之間用箭頭的直線連接起來(lái),表示程序的走向。 在各個(gè)出口處標(biāo)明出口條件 , 條件成立則寫 “ 是 ( 用 Y表示 ) ” , 條件不成立用 “ 否 ( 用 N表示 ) ” 。 1. 用 方框表示工作框 , 方框中用簡(jiǎn)明的語(yǔ)言標(biāo)明所完成的特定功能 。 ? 當(dāng)然,到這兒只是設(shè)計(jì)出了基本程序,此程序是否正確,可靠,還必須上機(jī)調(diào)試,排錯(cuò)和進(jìn)行不要的檢測(cè)。 ? 3. 畫出程序 流程圖 。它們的效率可能有很大的差別。是常數(shù)、變量、標(biāo)號(hào)與一些運(yùn)算符相組合的序列。 3. 標(biāo)號(hào) ? 標(biāo)號(hào): 指令所在單元的符號(hào)地址 。 ? 例: AA1 LABEL FAR 。 AX=1234H MOV BL, DATA1 。 THIS指定類型與 PTR相同 。 ① PTR 臨時(shí)改變類型屬性運(yùn)算符 ? 格式: 類型 PTR 變量 /標(biāo)號(hào) ? 功能: 將 PTR前面的類型臨時(shí)賦給變量 /標(biāo)號(hào) , 而原有段屬性和偏移屬性保持不變 , 其本身并不分配存儲(chǔ)單元 。 DX=1 MOV AX, TYPE FF1 。 DX=1000 MOV AX, TYPE DD1 。 DX=1, LENGTH只對(duì) DUP定義的變量有意義 MOV AX, SIZE BB1 。 CH=1, 字節(jié)類型 MOV AL, TYPE GG1 。 AX=1000H MOV DS, AX MOV AX, SEG AA1 。 ? 說(shuō)明: 1就是返回 LENGTH TYPE的結(jié)果。 ? 2對(duì)于變量中使用 DUP的情況 , 匯編程序?qū)⒒厮头峙浣o該變量的單元數(shù) ( 按類型 TYPE算 ) , 而對(duì)于其他情況 ,則均送 1。返回以字節(jié)數(shù)表示的類型,常數(shù)返回 0。 ① SEG返回變量或標(biāo)號(hào)的段地址運(yùn)算符 ? 格式: 操作數(shù) SEG 變量 /標(biāo)號(hào) ? 功能: 將變量 /標(biāo)號(hào)所在段的段基址值賦給操作數(shù) 。 (CL)=11000000B ( 4) 關(guān)系運(yùn)算符 ? 關(guān)系運(yùn)算符: 6個(gè) , 等于 ( EQ) 、 不等 ( NE) 、 小于( LT) 、 大于 ( GT) 、 小于等于 ( LE) 、 大于等于 ( GT) 。 ( 2) 邏輯運(yùn)算符 ? 邏輯運(yùn)算符: 4個(gè),與( AND)、或( OR)、非( NOT)和異或( XOR)。 ? 例: … DATA1 = 88 … DATA1 =DATA1+99 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 二、表達(dá)式 ( 1) ? 表達(dá)式: 常數(shù) 、 寄存器 、 標(biāo)號(hào) 、 變量與一些運(yùn)算符相組合的序列 。 ? 說(shuō)明: 表達(dá)式可以是有效的操作數(shù)格式 , 也可以是任何可求出數(shù)值常數(shù)的表達(dá)式 , 還可以是任何有效的符號(hào) ( 如操作符 、 寄存器名 、 變量名等 ) 。 ? 格式: .RADIX 數(shù)值表達(dá)式 ? 功能: 把默認(rèn)的基數(shù)改變?yōu)?2~ 16范圍內(nèi)的任何基數(shù) 。 ? 例: PUBLIC VAR1, VAR2 EXTRN VAR1:WORD, VAR2:BYTE COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 操作數(shù)字段 ? 操作數(shù)字段可以是寄存器、標(biāo)號(hào)、變量、常數(shù)、表達(dá)式等。 ? 類型: 對(duì)于變量 , 可以是字節(jié) ( BYTE) , 字 ( WORD) , 雙字( DWORD) , 三字 ( FWORD) , 四字 ( QWORD) , 五字 ( TWORD) 。 DT: 一個(gè)操作數(shù)占有 1個(gè)五字單元( 80位),定義的變量為五字變量。 DW: 一個(gè)操作數(shù)占有 1個(gè)字單元 ( 16位 ) , 定義的變量為字變量 。 4. ALIGN 邊界定義 ? 格式: ALIGN n ; n為 2的冪次 ? 功能: 使下一個(gè)變量或指令從 n的接續(xù)整數(shù)倍地址開(kāi)始,保證雙字、四倍字對(duì)準(zhǔn)。 ? 每個(gè)段開(kāi)始時(shí) , $= 0, 隨著匯編過(guò)程的進(jìn)行而增值 , 每處理一條指令 , $增加一個(gè)值 , 此值為該指令所需的字節(jié)數(shù) 。 ? 用戶自行指定段組中的段 , 段組不影響各段次序 , 對(duì)定義在不同段中的變量 , 可以用同一個(gè) DS訪問(wèn) , 但各段仍為獨(dú)立段 , 通常將具有相同性質(zhì)的段分在一個(gè)段組 。 ④類別 ? 類別: 引號(hào)括起的字符串,連接時(shí), ’ 類別 ’ 相同的分段 (他們可能不同名 )均放在連續(xù)的存儲(chǔ)空間中,但他們?nèi)匀皇遣煌姆侄危ㄟB續(xù)空間)。 ? AT 表達(dá)式 :指定本段起始地址為 “ 表達(dá)式 ” ,偏移量為 0,不能用于代碼段。 ? STACK:用于說(shuō)明堆棧段 , 把不同程序段中的具有 SARCK類型的同名段組合而形成一個(gè)堆棧段 , 其長(zhǎng)度為各原有段的總和 , LINK自動(dòng)將新段的段地址送 SS, 長(zhǎng)度送 SP, 若未定義 SARCK類型 , 需在程序中用指令設(shè)置 SS、 SP。 ? 段名是段的標(biāo)識(shí)符,指明段的基址,由程序員指定。 3. MASM 定義的入口點(diǎn) 、 出口點(diǎn) ? 入口點(diǎn): .STARUP ;產(chǎn)生設(shè)置 DS、 SS、 SP代碼 , 此時(shí) , END不用標(biāo)號(hào) 。 ? 格式: NAME module_name ? 匯編程序以模塊名作為模塊的名字 , 若未使用 NAME, 則可用TITLE給程序指定標(biāo)題 ? 格式: TITLE text ? 文本在每一頁(yè)上打印出來(lái) , 若沒(méi)有 NAME, 則 text的前 6個(gè)字符為模塊名 , text最多為 60個(gè)字符 。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 一、程序開(kāi)始與結(jié)束 1. 程序開(kāi)始: 可以用 name,title給程序起名 。 ? 格式: END [label] ? 標(biāo)號(hào)指示程序開(kāi)始執(zhí)行的起始地址 , 多個(gè)模塊連接 , 主程序用標(biāo)號(hào) , 其他程序不用 , 主程序缺省值為代碼段第一條指令 。 ? 一般情況下 , 選項(xiàng)可以不用 , 用默認(rèn)值 , 但若需連接本程序和其他程序 , 就要使用這些說(shuō)明 。 ? PUBLIC:本段連接時(shí)將與有相同段名 .public類型的其它段連接在一起 , 連接次序由連接命令指定 ( 共用一個(gè)段 ) , 即同名段連接在一起 , 有共同段地址 。 ? PRIVATE:獨(dú)立段,與其它段邏輯上沒(méi)有關(guān)系,不與同名段合并,默認(rèn)值 。 ? .USE32: 32位尋址方式 , 段長(zhǎng) ≤ 4GB, 16位段地址 , 32位偏移量 。 ? ④取消語(yǔ)句: ASSUME NOTHING COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 一般匯編格式舉例 DATA1 SEGMENT ‘DATA’ … DATA1 ENDS DATA2 SEGMENT ‘EXTRA’ … DATA2 ENDS DATA3 SEGMENT ‘DATA’ … DATA3 ENDS CODE SEGMENT ‘CODE’ ASSUME CS:CODE,DS:DATA1,ES:DATA3,SS:DATA2 START: MOV AX, DATA1 MOV DS, AX ;數(shù)據(jù)段地址賦給 DS MOV AX, DATA2 MOV SS, AX ;堆棧段地址賦給 SS MOV AX, DATA3 MOV ES, AX ;附加段地址賦給 ES … MOV AH, 4CH INT 21H ;返回 DOS CODE ENDS END START COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY GROUP 段組定義 ? 格式: 段組名 GROUP 段
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1