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

正文內(nèi)容

匯編語言第六章:循環(huán)與分支程序設(shè)計-閱讀頁

2024-10-19 16:38本頁面
  

【正文】 e_seg ends end start 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 ( 3)多重循環(huán) 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 例 有一個首地址為 A的 N字數(shù)組,請編制程序使該數(shù)組中的數(shù)按照從大到小的次序排序。下表表示了這種算法的例子,可以看出.在做了第一遍的 (N一 1)次比較后,最小的數(shù)已經(jīng)放到了最后,所以第二遍比較只需要考慮 (N1)個數(shù),即只需要比較 (N一 2)次,第三遍則只需要做 (N一 3)次比較 …… 總共最多 (N— 1)遍比較就可以完成排序。 39。 在 AX中有一個無符號數(shù),要求在數(shù)組中查找 (AX),如找到則使 CF= 0,并在 SI中給出該元素在數(shù)組中的偏移地址,如末找到則使 CF= 1。折半查找法先取有序數(shù)組的中間元素與查找值進行比較,如相等則查找成功,如查找值大于中間元素,則再取高半部的中間元意與查找值相比較;如查找值小于中間元素,則再取低半部的中間元素與查找值相比較,如此重復(fù)直到查找成功或最終未找到該效 (查找不成功 )為止。 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 流程圖 : 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 程序: 。其中查找的數(shù)組首地址位于寄存器 DI內(nèi) 。 保存數(shù)組首地址用的變量 dseg ends cseg segment assume cs:cseg , ds:dseg b_search proc near push ds push ax mov ax ,dseg mov ds ,ax 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 。首先判斷 AX寄存器的數(shù)是否在該數(shù)組的范圍內(nèi) . 。和最小數(shù)據(jù)進行比較 ja chk_last。先把最小元素的地址存入 SI寄存器中 je exit_b。否則小于最小元素 , 設(shè)置 CF為 1 jmp exit_b。si存放數(shù)組元素個數(shù) shl si,1。 其結(jié)果就是數(shù)組占用的字節(jié)數(shù)量 add si,di。和最大數(shù)進行比較 , 同時 CF為 1 jb search。//否則等于最大值則退出結(jié)束 ,表明 AX的數(shù)據(jù)與最大數(shù)組數(shù)據(jù)相同 . stc。第一步結(jié)束 。折半查找功能 search: mov start_addr,di。讀取數(shù)組長度 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 even_idx: test si,1。奇數(shù)就要加 1,以便能取到完整的數(shù)據(jù) add_idx: add di,si。和寄存器數(shù)據(jù)進行比較 je all_done。大就查找高段數(shù)組 cmp si,2 jne idx_ok 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 no_match: stc je all_done 。 je no_match shr si,1。 程序: b_a segment b_t dw r1 dw r2 dw r3 dw r4 dw r5 dw r6 dw r7 dw r8 b_a ends code segment assume cs:code , ds : b_a main proc far start: push ds xor ax,ax push ax mov ax , b_a mov ds , ax 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 lea si , b_t。判斷 bx是否為零 jz exit shr bx , 1。若 CF為 0,跳轉(zhuǎn)不執(zhí)行任何操作 jmp word ptr[si] not_yet: add si, type b_t jmp l r1: mov dx,39。 jmp short exit r2: mov dx,39。 jmp short exit r3: mov dx,39。 jmp short exit r4: mov dx,39。 jmp short exit r5: mov dx,39。 jmp short exit r6: mov dx,39。 jmp short exit r7: mov dx,39。 jmp short exit r8: mov dx,39。 exit: ret main endp code ends end start 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 第三節(jié) 子程序結(jié)構(gòu) 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 上述程序也可以采用如下方式: 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 ; SEGX 代碼段 ; SEGY代碼段 ;調(diào)用 SEGX代碼段的子過程 ; SUBT必須具有 FAR屬性以適應(yīng) SEGY段調(diào)用的需要。 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 ( 1)子程序使用過程中注意的問題 CALL使返回地址入棧,所以 RET時應(yīng)該使返回地址出棧,如果子程序中不能正確使用堆棧而造成執(zhí)行 RET前 SP并未指向進入子程序時的返回地址,則必然會導(dǎo)致運行出錯,因此于程序中對堆棧的使用應(yīng)該特別小心,以免發(fā)生錯誤。為了保證其正確性,除 PROC的屬性要正確選取外,還應(yīng)該注意子程序運行期間的堆棧狀態(tài)。 如果主程序在調(diào)用子程序以前的某個寄存器內(nèi)容在從子程序返回后還有用.而子程序又恰好使用了同一個寄存器,造成破壞了該寄存器的原有內(nèi)容,那就會造成程序運行錯誤,這是不能允許的。 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 ( 2)主程序與子程序參數(shù)傳遞 含義:將 dl中的字符在屏幕上顯示出來 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 程序: decihex segment assume cs:decihex main proc far mov cx, 10 repeat: call decibin call crif call binihex call crif loop repeat mov ax , 4c00h int 21h main endp decibin proc near;十進制轉(zhuǎn)換為二進制數(shù)據(jù) mov bx,0;轉(zhuǎn)換結(jié)果存放在 BX寄存器中 newchar: mov ah,1;從鍵盤讀取數(shù)據(jù) int 21h sub al,30h;轉(zhuǎn)換為數(shù)制 jl exit;小于 30H不是數(shù)字鍵 cmp al,9d jg exit;大于 9也不是數(shù)字鍵 cbw xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax;加入 BX中 jmp newchar exit: ret decibin endp 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 binihex proc near mov ch,4 rotate: mov cl,4 rol bx,cl mov al,bl and al,0fh add al,30h cmp al,3ah jl print add al,7h print: mov dl,al mov ah,2 int 21h dec ch jnz rotate ret binihex endp crif proc near mov dl,0dh;換行 mov ah,2 int 21h mov dl,0ah; mov ah,2 int 21h ret crif endp decihex ends end main 遠程調(diào)用 codeb segment assume cs:codeb btodecdisp proc far push ax push bx push cx push dx mov cx,0 。 rotate1: mov ax,bx cwd mov bx,10 div bx add dl,30h push dx inc cx mov bx,ax。以十進制顯示 BX寄存器中 的數(shù)據(jù) disp proc near push ax push dx push cx mov cx ,0 disp_next: mov ax,bx cwd mov bx , 10 div bx add dl,30h push dx inc cl mov bx,ax cmp ax , 0000h jz exit jmp disp_next exit: mov ah,02h print: pop dx int 21h dec cl jnz print pop cx pop dx pop ax ret disp endp 。 預(yù)賦值說明也可以使用 DUP操作符。以十進制顯示 BX寄存器中的數(shù)據(jù) disp proc near push ax push dx push cx mov cx ,0 disp_next: mov ax,bx cwd mov bx , 10 div bx add dl,30h push dx inc cl mov bx,ax cmp ax , 0000h jz exit jmp disp_next exit: mov ah,02h print: pop dx int 21h dec cl jnz print pop cx pop dx 第一章 基礎(chǔ)知識 第六章 循環(huán)與分支程序設(shè)計 pop ax ret disp endp 。 ( 1) EXE文件 EXE程序裝入內(nèi)存時的映像如圖 。 ( 1)代碼段、數(shù)據(jù)段及堆棧段在同一段,?64KB。 ( 3) SP指向該物理段末尾,故 不用定義堆棧段
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1