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

正文內容

匯編語言第六章:循環(huán)與分支程序設計-wenkub.com

2024-10-07 16:38 本頁面
   

【正文】 ( 3) SP指向該物理段末尾,故 不用定義堆棧段 。 ( 1) EXE文件 EXE程序裝入內存時的映像如圖 。 預賦值說明也可以使用 DUP操作符。 rotate1: mov ax,bx cwd mov bx,10 div bx add dl,30h push dx inc cx mov bx,ax。 如果主程序在調用子程序以前的某個寄存器內容在從子程序返回后還有用.而子程序又恰好使用了同一個寄存器,造成破壞了該寄存器的原有內容,那就會造成程序運行錯誤,這是不能允許的。 第一章 基礎知識 第六章 循環(huán)與分支程序設計 ( 1)子程序使用過程中注意的問題 CALL使返回地址入棧,所以 RET時應該使返回地址出棧,如果子程序中不能正確使用堆棧而造成執(zhí)行 RET前 SP并未指向進入子程序時的返回地址,則必然會導致運行出錯,因此于程序中對堆棧的使用應該特別小心,以免發(fā)生錯誤。 jmp short exit r8: mov dx,39。 jmp short exit r6: mov dx,39。 jmp short exit r4: mov dx,39。 jmp short exit r2: mov dx,39。判斷 bx是否為零 jz exit shr bx , 1。 je no_match shr si,1。和寄存器數(shù)據(jù)進行比較 je all_done。讀取數(shù)組長度 第一章 基礎知識 第六章 循環(huán)與分支程序設計 even_idx: test si,1。第一步結束 。和最大數(shù)進行比較 , 同時 CF為 1 jb search。si存放數(shù)組元素個數(shù) shl si,1。先把最小元素的地址存入 SI寄存器中 je exit_b。首先判斷 AX寄存器的數(shù)是否在該數(shù)組的范圍內 . 。其中查找的數(shù)組首地址位于寄存器 DI內 。折半查找法先取有序數(shù)組的中間元素與查找值進行比較,如相等則查找成功,如查找值大于中間元素,則再取高半部的中間元意與查找值相比較;如查找值小于中間元素,則再取低半部的中間元素與查找值相比較,如此重復直到查找成功或最終未找到該效 (查找不成功 )為止。 39。 第一章 基礎知識 第六章 循環(huán)與分支程序設計 data_seg segment buffer db 100 dup(?) flag db ? data_seg ends code_seg segment assume cs:code_seg , ds:data_seg main proc far start: mov ax ,data_seg mov ds ,ax lea bx ,buffer mov flag ,0 ; FLAG初始化為 0, 準備接收第一個字符 next: mov ah ,01 第一章 基礎知識 第六章 循環(huán)與分支程序設計 int 21h ;從鍵盤輸入一個字符 , 存放在 AL寄存器中 test flag ,01h;判斷是否為第一個字符 jnz follow;不是第一個字符跳轉到 FOLLOW cmp al,20h;是第一個字符 , 判斷該字符是否為空格 jnz exit mov flag ,1 jmp next follow: cmp al ,20h;判斷是否為空格 jz exit;是空格就退出 mov [bx],al;不是就將該字符的 ASC碼存入緩沖區(qū)內 inc bx jmp next 第一章 基礎知識 第六章 循環(huán)與分支程序設計 exit: mov ax , 4c00h int 21h main endp code_seg ends end start 第一章 基礎知識 第六章 循環(huán)與分支程序設計 ( 3)多重循環(huán) 第一章 基礎知識 第六章 循環(huán)與分支程序設計 例 有一個首地址為 A的 N字數(shù)組,請編制程序使該數(shù)組中的數(shù)按照從大到小的次序排序。這里第一部分的查找元素可以使用串處理指令,第二部分的刪除元素則可使用循環(huán)結構, 由于查找結束時就可以知道該元素的位置,因此可以作為循環(huán)次數(shù)已知的情況來設計。要求編制一程序:在數(shù)組中查找該數(shù),如果找到此數(shù)則把它從數(shù)組中刪除。循環(huán)的結束可以用計數(shù)值為 16來控制,但更好的辦法是結合上述方法可以用測試數(shù)是否為 0來作為結束條件,這樣可以在很多情況下縮短程序的執(zhí)行時間。在屏幕上顯示結果 mov ah , 02 int 21h dec ch 。判斷是否為十進制數(shù)制的字符 jae changetoa_f 。 思路: 四位二進制對應一位十六進制。 code_seg segment main proc far assume cs:code_seg start: mov bx , 8222h mov ch , 4 。 ( 2) data 由 .DATA 偽指令定義的段名,或由 .DATA 、 .DATA?、 .CONST和 .STACK所定義的段組名。 .FARDATA? [段名 ] 建立無初值的遠調用數(shù)據(jù)段 可指定段名,如不指定,則將以FAR_BSS命名。采用簡化段指令之前必須有存儲模型語句 .MODEL。 OS/2 WindowsNT 在 DOS下用匯編語言編程時,可根據(jù)程序的不同特點選擇前 6種模型,一般可以選用 SMALL模型。數(shù)據(jù)> 64K時,可放在多個段中。 MSDOS Small (小型 ) 所有代碼在一個 64KB的段內,所有數(shù)據(jù)在另一個64KB的段內(包括數(shù)據(jù)段 ,堆棧段和附加段)。 next 當型循環(huán)與直到型循環(huán) : 存儲模型與簡化段定義偽指令 較新版本的匯編程序( )除支持完整段定義偽指令外,還提供了一種新的簡單易用的存儲模型和簡化的段定義偽指令。 設: ( num) = 4230H 要求將 4230H= 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 B 逐位分離開 并轉換為: 30 31 30 30 30 30 31 30 30 30 31 31 30 30 30 30 先將 ( num) ( DX) ,再討論如何分離開各二進制位并轉換為 ASCII碼 , 分析如下 : 根據(jù)上述分析 , 將 ( DX) 中的二進制數(shù)依次 循環(huán)左移 1位 ,可以使得 各個數(shù)位的分離 ( AND) 和 ASCII碼轉換 ( ADD) 操作完全相同 , 便于組織循環(huán) , 并且 循環(huán)次數(shù)已知 ( 16次 ) 。 MOV AX, 0 ;累加求和寄存器清 0 MOV BX, OFFSET ARRAY ;數(shù)組始址送 BX中 MOV CX, 50 ;循環(huán)控制計數(shù)初始化 AGAIN : ADD AX, [BX] ADD BX, 2 ;數(shù)組地址增 2, BX指向下一個元素 DEC CX ;循環(huán)控制計數(shù)減 1 JNZ AGAIN ;計數(shù)不為 0時繼續(xù)循環(huán) MOV S, AX ;計數(shù)為 0時循環(huán)結束,和存于 S中 保證循環(huán)正常執(zhí)行和結束的條件: ? 正確地 初始化 循環(huán)控制計數(shù)和初始條件 ? 正確地 檢測 循環(huán)條件 ? 必須保證能 達到循環(huán)結束條件 (例如在循環(huán)體內有 修改循環(huán)控制值 的指令 ) 例: 將 ARRAY數(shù)組中的 50個數(shù)求和,并將和存入字變量 S中 。 分析問題 尋找解決問題的思路、方法、算法 描述算法 編寫程序實現(xiàn)算法 設計測試數(shù)據(jù)和預期計算結果 上機調試程序 程序設計的解題基本步驟如下: 順序 、 分支 、 循環(huán) 程序和 子程序 的設計是匯編語言程序設計的基本內容。 3)根據(jù)框圖編寫程序 。 這一步是能否編制出高質量程序的關鍵 , 因此不應該一拿到題目就急于寫程序 , 而是應該仔細地分析和理解題意 , 找出合理的算法及適當?shù)臄?shù)據(jù)結構 。 2)根據(jù)算法畫出程序框圖 。 4)上機調試程序 。 在此基礎上還要掌握匯編語言程序設計的基本方法和技巧 ,包括 遞歸子程序 設計、 COM和 EXE格式程序 的結構和特點、 多模塊程序 設計方法等。 指令系統(tǒng)提供了專門用于循環(huán)結構的 循環(huán)控制指令 ,更加簡便的地實現(xiàn)循環(huán)結構。 例 : 將 十進制數(shù) ( number) 轉換為八進制數(shù) 方法 : ( number) /8 保留余數(shù) , 除法操作 循環(huán)次數(shù)事先未知 ,僅當商為 0時 , 循環(huán)結束 。 1. 存儲模型偽指令 存儲模型的作用是什么呢?存儲模型決定一個程序的規(guī)模,也確定進行子程序調用、指令轉移和數(shù)據(jù)訪問的缺省屬性( NEAR或 FAR)。 MSDOS Windows Medium (中型 ) 所有代碼> 64K時可放在多個代碼段中,轉移或調用可為 FAR型。 MSDOS Windows Large (大型 ) 允許代碼段和數(shù)據(jù)段都可超過 64K,被放置在有多個段內,所以數(shù)據(jù)和代碼都是遠訪問。另外, TINY模型將產(chǎn)生 COM程序,其他模型產(chǎn)生 EXE程序。 簡化段偽指令 功 能 注釋 .CODE [段名 ] 創(chuàng)建一個代碼段 段名為可選項,如不給出段名,則采用默認段名。 .CONST 建立只讀的常量數(shù)據(jù)段 段名是: CONST .STACK [大小 ] 創(chuàng)建一個堆棧段并指定 堆棧段大小 段名是: stack。 ( 3) stack 堆棧段的段名或段組名。四位循環(huán)一次 , 共進行4次循環(huán)即可以 rotate: mov cl , 4 。 循環(huán) 4次 每次循環(huán) 4位 高位先顯示: rol 判斷結果和 10比較。如果大于 10, 跳轉到 changetoa_f進行十六進制的轉換 add al , 30h 。利用 dec 和 jnz來實現(xiàn)循環(huán)操作 , 代替 loop的功能 jnz rotate 第一章 基礎知識 第六章 循環(huán)與分支程序設計 mov ax , 4c00h int 21h main endp code_seg ends end start 。此外考慮到 Y本身為 0的可能性,應該采用 WHILE— DO的結構形式。 算法: 這一程序應該首先查找數(shù)組中是否有 (AX),如果沒有則不對數(shù)組作任何處理就結束程序。 第一章 基礎知識 第六章 循環(huán)與分支程序設計 流程圖: 第一章 基礎知識 第六章 循環(huán)與分支程序設計 程序: data_seg segment LIST dw 10,0,11,22,33,44,55,66,77,88,99 data_seg ends code_seg segment assume cs:code_seg , es:data_seg main proc far start: mov ax , data_seg。 算法 : 我們采用起泡排序算法從第一個數(shù)開始依次對
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1