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

正文內(nèi)容

第3章匯編語言程序設(shè)計(參考版)

2025-07-23 10:15本頁面
  

【正文】 STACK39。每個數(shù)用 16位表示。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 循環(huán)程序設(shè)計( 2) ? 在循環(huán)程序中 ,控制循環(huán)的方法因要求不同而有若干中 。循環(huán)結(jié)束條件的初態(tài)往往置以循環(huán)次數(shù)。 : 用于循環(huán)過程中的工作單元 ,在循環(huán)開始時往往要置以初態(tài) ,即分別給他們賦一個初值。 也可以初值置 0,每循環(huán)一次加 1,再與循環(huán)次數(shù)相比較 ,若兩者相等就停止循環(huán) 。 : 在循環(huán)程序中必須給出循環(huán)結(jié)束的條件 ,否則程序就會進入死循環(huán) 。 其中又分為:循環(huán)工作部分和循環(huán)控制部分 。設(shè)跳轉(zhuǎn)表的地址指針 GTBIT: RCR AL, 1 JC GETAD ;順序檢查 AL中各位的狀態(tài) INC BX INC BX INC BX INC BX JMP GTBIT GETAD: JMP DWORD PTR [BX] ;段間間接轉(zhuǎn)移 STARK ENDP CODE ENDS END BEGIN COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 循環(huán)程序設(shè)計( 1) ? 在程序中,往往要求某一段程序重復(fù)執(zhí)行多次 ,這時候可以利用循環(huán)程序結(jié)構(gòu)。子程序 R1入口地址的 IP值 DW R12 。 ? 如果 AL中為 00000001 則轉(zhuǎn)至 R1 ? 如果 AL中為 00000010 則轉(zhuǎn)至 R2 ? 如果 AL中為 00000100 則轉(zhuǎn)至 R3 ? 如果 AL中為 00001000 則轉(zhuǎn)至 R4 ? 如果 AL中為 00010000 則轉(zhuǎn)至 R5 ? 如果 AL中為 00100000 則轉(zhuǎn)至 R6 ? 如果 AL中為 01000000 則轉(zhuǎn)至 R7 ? 如果 AL中為 10000000 則轉(zhuǎn)至 R8 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 分支程序設(shè)計( 3) 啟動 A 的 D 0 = 1 ? A 的 D 1 = 1 ? A 的 D 5 = 1 ? A 的 D 6 = 1 ? ( R1 ) 1 ( R1 ) 2 ( R2 ) 1 ( R2 ) 2 ( R8 ) 1 ( R8 ) 2 ? 實現(xiàn)上述要求的程序框圖如圖所示 ? 我們可以把 8個子程序的入口地址編成如圖所示的分支表。不是,就令 y= 1。于是就可以判斷是否等于零,若是,則令 y=0。以下是 32位無符號數(shù)的乘法程序 mul32 proc mov ax, [bx] mul si mov [bx+8], ax mov [bx+0ah], dx mov ax, [bx+2] mul si add ax, [bx+0ah] adc dx, 0 mov [bx+0ah], ax mov [bx+0ch], dx mov ax, [bx] mul di add ax,[bx+0ah] adc dx, [bx+0ch] mov [bx+0ah],ax mov [bx+0ch],dx pushf COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 10) mov ax,[bx+2] mul di popf adc ax,[bx+0ch] adc dx,0 mov [bx+0ch],ax mov [bx+0ch],dx ret mulu32 endp code ends end begin COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 分支程序設(shè)計( 1) ? 在一個實際的程序中,程序始終是直線執(zhí)行的情況是不多見的,通常都會有各種分支,例如變量 x的符號函數(shù)用下式表示 1 當 x0 y= 0 當 x=0 1 當 x0 ? 在程序中,要根據(jù) x的值給 y賦值 如圖所示 。乘積為正則結(jié)束 not [bx+8] not [bx+0ah] not [bx+0ch] not [bx+0eh] add word ptr [bx+8],1 add word ptr [bx+0ah],0 adc word ptr [bx+0ch],0 adc word ptr [bx+0eh],0 。調(diào)用 32位無符號數(shù)乘法程序 cmp sign, 0 。 為正時轉(zhuǎn)至 GOMUL not si not di add si, 1 adc di, 0 。 暫存 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 8) other: cmp di, 0 。負則取補 not sign 。檢驗正或負 jns other 。DSI mov si, [bx+6] 。BAX mov dx, [bx+2] 。設(shè)置段寄存器初值 mov sign, 0 。以下是主過程 start proc far begin: push ds mov ax, 0 push ax 。 ? 程序流程圖如圖所示。 ? 首先設(shè)一個乘積的符號標志初值為 0;檢查被乘數(shù),若為負,一方面對被乘數(shù)取補,另一方面對符號標志取反; ? 再檢查乘數(shù),若是負數(shù)也對乘數(shù)取補和符號標志取反;然而調(diào)用 32位無符號數(shù)乘法程序。A C popf adc ax,[bx+0ch] 。保存后一次相加的進位位 mov ax,[bx+2] 。B C add ax,[bx+0ah] 。保存 mov ax, [bx] 。A D add ax,[bx+0ah] adc dx,0 。保存部分積 I mov [bx+0ah], dx mov ax., [bx+2] 。CDI mul si 。BAX COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 3) mov si, [bx+4] 。設(shè)置返回至 DOS的段值和 IP值 mov ax, data mov ds, ax mov es, ax 。 A B C A C B D D A D B C COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 1) ? 例 1: 兩個 32位無符號數(shù)乘法程序 ? 若數(shù)據(jù)區(qū)中已有一個緩沖區(qū)存放了 32位的被乘數(shù)和乘數(shù),保留了 64位的空間以存放乘積,能實現(xiàn)上述運算的程序流程圖 如圖所示 A * C = 部分積 4 恢復(fù)進位 部分積 4 與前面的和相加 保存在緩沖區(qū) 返回 保存進位 B * C = 部分積 3 存入緩沖區(qū) 進位加至部分積 22 部分積 21 (低 16 位) +部分積 12 (高 16 位) A * D = 部分積 2 與前面的對應(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ù)運算程序設(shè)計( 2) 相應(yīng)的程序為: 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 。 ? 在 8088/8086中,數(shù)據(jù)是 16位的,它只有 16位的運算指令,若是兩個32位的數(shù)相乘就無法直接用指令實現(xiàn) (在 80386中有 32位數(shù)相乘的指令 ),但可以用 16位乘法指令做 4次乘法,然后把部分積相加來實現(xiàn)。程序的各框之間用箭頭的直線連接起來,表示程序的走向。 它有一個入口一個出口 , 各用箭頭表示 。 在各個出口處標明出口條件 , 條件成立則寫 “ 是 ( 用 Y表示 ) ” , 條件不成立用 “ 否 ( 用 N表示 ) ” 。 2. 用 菱形表示判斷框 , 菱形內(nèi)標明比較 , 判斷和條件 。 1. 用 方框表示工作框 , 方框中用簡明的語言標明所完成的特定功能 。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 匯編語言程序設(shè)計及舉例( 2) (三) 程序流程圖 ? 在確定問題的算法以后,先不要急于寫一條條指令,而要用程序流程圖把編制程序的方法和思路勾畫出來,確定程序的結(jié)構(gòu)和相互之間的關(guān)系。 ? 當然,到這兒只是設(shè)計出了基本程序,此程序是否正確,可靠,還必須上機調(diào)試,排錯和進行不要的檢測。 ? 4. 分配內(nèi)存 工作單元和寄存器。 ? 3. 畫出程序 流程圖 。又例如查表,是用線性查找還是用對分查找區(qū)別也很大。它們的效率可能有很大的差別。 ? 2. 確定解決此數(shù)學(xué)模型的 算法 。是常數(shù)、變量、標號與一些運算符相組合的序列。 4. 變量 ? 變量: 數(shù)據(jù)所在單元的符號地址 。 3. 標號 ? 標號: 指令所在單元的符號地址 。 AA2為段內(nèi)轉(zhuǎn)移入口 … AA3 LABEL BYTE AA4 DW 1234H MOV AX, AA4 MOV BH, AA3+1 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 二、表達式 ( 10) 2. 數(shù)字表達式 ? 數(shù)字表達式: 有常數(shù) 、 變量 、 標號與一些運算符相組合的序列 。 ? 例: AA1 LABEL FAR 。 ? 說明: LABEL指定的變量或標號本身并不分配存儲單元 ,它與緊跟其后的變量或標號只有類型不同 , 而段地址和偏移量均相同 。 AX=1234H MOV BL, DATA1
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1