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

正文內(nèi)容

第3章匯編語言程序設(shè)計-資料下載頁

2025-07-20 10:15本頁面
  

【正文】 ends stack segment para stack ‘stack’ db 100 dup(?) stack ends code segment assume cs:code, ds:data, ss:stack 。以下是主過程 start proc far begin: push ds mov ax, 0 push ax 。為返回 DOS設(shè)置返回地址 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 7) mov ax, data mov ds, ax 。設(shè)置段寄存器初值 mov sign, 0 。置符號為初值 lea bx, mulnum mov ax, [bx] 。BAX mov dx, [bx+2] 。ADX mov si, [bx+4] 。DSI mov si, [bx+6] 。CDI cmp dx, 0 。檢驗正或負 jns other 。 為正時轉(zhuǎn)至 OTHRE not ax not dx add ax, 1 adc dx, 0 。負則取補 not sign 。改變符號位 mov [bx], ax mov [bx+2], dx 。 暫存 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 8) other: cmp di, 0 。 檢查乘數(shù)符號 jns gomul 。 為正時轉(zhuǎn)至 GOMUL not si not di add si, 1 adc di, 0 。為負則取補 not sign ;實現(xiàn)符號運算 gomul: call mulu32 。調(diào)用 32位無符號數(shù)乘法程序 cmp sign, 0 。檢查乘積的符號 je done 。乘積為正則結(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 。乘積取補 done: ret start endp COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算術(shù)運算程序設(shè)計( 9) 。以下是 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 當(dāng) x0 y= 0 當(dāng) x=0 1 當(dāng) x0 ? 在程序中,要根據(jù) x的值給 y賦值 如圖所示 。 ? 先把變量 x從內(nèi)存中取出來,執(zhí)行一次 “ 與 ” 或 “ 或 ” 操作,就可以把 x值的特征反映到標志位上。于是就可以判斷是否等于零,若是,則令 y=0。若否,再判斷是否小于零,若是,則令 y= 1。不是,就令 y= 1。 ? 相應(yīng)的程序為: X y ← 0 y ← 1 y ← 1 SIGEF: MOV AX, BUFFER OR AX,AX JE ZERO JNS PLUS MOV BX, 0FFH JMP CONTI ZERO: MOV BX, 0 JMP CONTI PLUS: MOV BX, 1 CONTI: COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 分支程序設(shè)計( 2) ? 例 1: 根據(jù) AL中的被置位的情況來控制轉(zhuǎn)移到 8個子程序R1~R8中的一個 ( 在中斷響應(yīng) 時 , 通過軟件查詢 , 從而轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序入口就類似于這種情況 ) 。 ? 如果 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個子程序的入口地址編成如圖所示的分支表。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 分支程序設(shè)計( 4) 根據(jù)流程圖可以寫出下程序: NAME BRANCH_PROG DATA SEGMENT BRTAB DW R11 。子程序 R1入口地址的 IP值 DW R12 。子程序 R1入口地址的碼段值 DW R21 DW R22 DW R31 DW R32 DW R41 DW R42 DW R51 DW R52 DW R61 DW R62 DW R71 DW R72 DW R81 DW R82 DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP(?) TOP EQU $STACK STACK ENDS COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 分支程序設(shè)計( 5) CODE SEGMENT STACK PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TOP MOV SP, AX LEA BX, BRTAB 。設(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)。一個循環(huán)結(jié)構(gòu)由以下幾部分組成: : 就是要求重復(fù)執(zhí)行的程序段部分 。 其中又分為:循環(huán)工作部分和循環(huán)控制部分 。 循環(huán)控制部分每循環(huán)一次檢查循環(huán)結(jié)束的條件 ,當(dāng)滿足條件時就停止循環(huán) ,往下執(zhí)行其他程序 。 : 在循環(huán)程序中必須給出循環(huán)結(jié)束的條件 ,否則程序就會進入死循環(huán) 。 常見的循環(huán)是計數(shù)循環(huán) ,當(dāng)循環(huán)了一定次數(shù)后就結(jié)束循環(huán) .在微型機中 ,常用一個內(nèi)部寄存器 (或寄存器對 )作為計數(shù)器 , 通常這個計數(shù)器的初值置以循環(huán)次數(shù) ,每循環(huán)一次令其減 1,當(dāng)計數(shù)器減為 0時 ,就停止循環(huán) 。 也可以初值置 0,每循環(huán)一次加 1,再與循環(huán)次數(shù)相比較 ,若兩者相等就停止循環(huán) 。 循環(huán)結(jié)束條件還可以有多種 ,下面結(jié)合例子分別介紹 。 : 用于循環(huán)過程中的工作單元 ,在循環(huán)開始時往往要置以初態(tài) ,即分別給他們賦一個初值。循環(huán)初態(tài)又可以分成兩部分 ,一是循環(huán)工作部分初態(tài) ,另一是結(jié)束條件的初態(tài),例如 ,要設(shè)地址指針 ,要使某些寄存器清零 ,或設(shè)某些標志等等。循環(huán)結(jié)束條件的初態(tài)往往置以循環(huán)次數(shù)。置初態(tài)也是循環(huán)程序重要的一部分 ,不注意往往容易出錯。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 循環(huán)程序設(shè)計( 2) ? 在循環(huán)程序中 ,控制循環(huán)的方法因要求不同而有若干中 。 循環(huán) ? 這是一種最常用也是最普通的循環(huán)控制循環(huán)的方法 ? 例 1:在一串給定個數(shù)的數(shù)中尋找最大值(或最小值 ),放至指定的存儲單元。每個數(shù)用 16位表示。 NAME SEARCH_MAX DATA SEGMENT BUFFER DW X1, X2, .... Xn COUNT EQU $BUFFER MAX DW ? DATA ENDS STACK SEGMENT PARA STACK 39。STACK39。 DB 64 DUP (?) TOP EQU $STACK STACK ENDS CODE SEGMENT START PROC FAR ASSUME CS: CODE, DS: DATA, SS: STACK BEGIN: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1