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

正文內(nèi)容

匯編語(yǔ)言第六章:循環(huán)與分支程序設(shè)計(jì)-文庫(kù)吧資料

2024-10-13 16:38本頁(yè)面
  

【正文】 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 運(yùn)行: masm 形成 masm 形成 link 形成 link 形成 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) code_seg segment 100 table dw 3 dup(?) ary1 dw 10,20,30,40,50 count1 dw 5 sum1 dw ? ary2 dw 10,20,30,40,50 count2 dw 5 sum2 dw ? assume cs:code_seg , ds:code_seg , ss:code_seg main proc far start: mov ax, code_seg mov ds,ax mov ss,ax mov table ,offset ary1 mov table+2 , offset count1 mov table+4 , offset sum1 call near ptr proadd mov si , table+4 mov bx , [si] call disp mov table ,offset ary2 mov table+2 , offset count2 mov table+4 , offset sum2 call proadd mov si , table+4 mov bx , [si] call disp mov ax,4c00h int 21h main endp 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 。 mov bx,1234h。 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 為避免這種錯(cuò)誤的產(chǎn)生在一進(jìn)入子程序后就應(yīng)該把子程序所需要使用的寄存器內(nèi)容保存在堆棧中,而在退出子程序前把寄存器的內(nèi)容恢復(fù)原狀。 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 調(diào)用程序 (又稱主程序 )和子程序經(jīng)常是分別編制的 , 所以它們所使用的寄存器往往 會(huì)發(fā)生沖突 。 CALL指令和RET指令就完成了調(diào)用和返回的功能。 SUBT既有 PAR屬性,則不論在SEGX和 SEGY段對(duì) SUBT的調(diào)用就都具有 FAR屬性了,這樣不會(huì)發(fā)生什么錯(cuò)誤,反之,如果這里的 SUBT使用了 NEAR屬性,則在 SEGY段內(nèi)對(duì)它的調(diào)用就要出錯(cuò)了。739。639。539。439。339。239。139。039。將 bx寄存器的最低位傳入 CF中 jnb not_yet。將表地址存入 si寄存器 l: cmp bx , 0。數(shù)據(jù)元素除以 2, 減半 jmp short even_idx all_done mov si,di mov di,start_addr exit_b: ret b_search endp cseg ends end b_search 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) ( 3)跳躍表法 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 例:根據(jù) bx的數(shù)據(jù)進(jìn)行跳轉(zhuǎn),從低位到高位分別判斷 bx寄存器的位數(shù)是否為 1,為 1跳轉(zhuǎn),否則繼續(xù)判斷,直到 bx寄存器為 0。寄存器 si和 2進(jìn)行比較的結(jié)果 , 程序退出的標(biāo)志 idx_ok: shr si,1 test si,1 jz sub_idx inc si sub_idx: sub di,si jmp short pare 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) higher: cmp si,2。相等 ,就結(jié)束操作 ,同時(shí) CF為 0 ja highter。數(shù)組首地址加上中間數(shù)組的偏移量 ,得到中間數(shù)組的有效地址 pare: cmp ax,es : [di]。判斷是否為奇數(shù) .注意數(shù)組長(zhǎng)度的地址指定數(shù)組中間的元素 (因?yàn)閿?shù)組是字?jǐn)?shù)組 ) jz add_idx inc si。保存寄存器 DI的字?jǐn)?shù)組的首地址 mov si,[di]。第二步 。置 CF為 1 jmp exit_b 。若小于最大數(shù) ,就進(jìn)入折半查找 je exit_b。SI為數(shù)組下標(biāo)最大的元素的地址 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) cmp ax,es:[si]。也就是 2。 程序結(jié)束 chk_last: mov si,ES : [di]。在判斷是否和最小元素相等 , 如果相等結(jié)束 stc。若大于最小數(shù) ,跳轉(zhuǎn)到 CHK_LAST, 同時(shí) CF 為 0 lea si ,es : [di+2]。即要判斷是否小于數(shù)組元素的最小數(shù)或大于數(shù)組元素的最大數(shù) cmp ax ,es : [di+2]。第一步 。數(shù)組的第一個(gè)元素為數(shù)組的長(zhǎng)度 ,其余的為數(shù)組的具體內(nèi)容 dseg segment start_addr dw ?。本模塊功能是用寄存器 AX的內(nèi)容對(duì)字?jǐn)?shù)組 (從小到大順序排列 )進(jìn)行折半查找 。折半查找法的效率高于順序查找法。 算法: 我們已經(jīng)遇到過多個(gè)表格查找的例子,都是使用順序查找的方法,本例是一個(gè)已經(jīng)排序的數(shù)組,可以采用 折半查找法 以提高查找效率。 call dispchar add si ,2 loop dispdec2 mov ax ,4c00h int 21h main endp code_seg ends end start 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 第二節(jié) 分支結(jié)構(gòu)程序設(shè)計(jì) 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) ( 2) 分支程序設(shè)計(jì)方法 例 在附加段中,有一個(gè)按從小到大順序排列的無符號(hào)數(shù)的數(shù)組,其首地址存放在 Dl寄存器中, 數(shù)組中的第一個(gè)單元存放著數(shù)組長(zhǎng)度。 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) loop1:mov dx , cx mov bx , 0 loop2:mov ax ,a[bx] cmp ax ,a[bx+2] jge continue xchg ax ,a[bx+2] mov a[bx],ax continue: add bx ,2 loop loop2 mov cx ,dx loop loop1 mov cx ,num 程序: data_seg segment num dw 10 a dw 12,14,9,10,3,81,10,4,88,66 data_seg ends code_seg segment assume cs:code_seg , ds:data_seg main proc far start: mov ax , data_seg mov ds , ax mov cx , num dec cx 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) mov si ,offset a mov bl ,0ah call dispchar mov bl, 0dh call dispchar dispdec2: mov bx ,[si] call disp mov bl,39。 算法 : 我們采用起泡排序算法從第一個(gè)數(shù)開始依次對(duì)相鄰兩個(gè)數(shù)進(jìn)行比較,如次序?qū)t不做任何操作;如次序不對(duì)則使這兩個(gè)數(shù)交換位置。 算法: 這一程序要求接收的字符從空格符開始又以空格符結(jié)束,因此程序中必須區(qū)分所接收的字符是否是第一個(gè)字符,為此設(shè)立作為標(biāo)志的存儲(chǔ)單元 FLAG,一開始將其置為 0,接收第一個(gè)字符后可將其置 1。 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 流程圖: 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 程序: 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ù)組末尾,則不必移動(dòng)任何元素,只要修改數(shù)組長(zhǎng)度值就可以。 算法: 這一程序應(yīng)該首先查找數(shù)組中是否有 (AX),如果沒有則不對(duì)數(shù)組作任何處理就結(jié)束程序。 AX寄存器中存放著一個(gè)數(shù)。此外考慮到 Y本身為 0的可能性,應(yīng)該采用 WHILE— DO的結(jié)構(gòu)形式。 算法:要測(cè)出 Y中 1的個(gè)數(shù)就應(yīng)逐位測(cè)試,一個(gè)比較簡(jiǎn)單的辦法是可根據(jù)最高有效位是否為 1來記數(shù),然后用移位的方法把各位數(shù)逐次移到最高位去。利用 dec 和 jnz來實(shí)現(xiàn)循環(huán)操作 , 代替 loop的功能 jnz rotate 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) mov ax , 4c00h int 21h main endp code_seg ends end start 。af的十六進(jìn)制轉(zhuǎn)換 disp: mov dl , al 。如果大于 10, 跳轉(zhuǎn)到 changetoa_f進(jìn)行十六進(jìn)制的轉(zhuǎn)換 add al , 30h 。取出要轉(zhuǎn)換的 4位二進(jìn)制數(shù) , 存入 al寄存器中 cmp al , 10。 循環(huán) 4次 每次循環(huán) 4位 高位先顯示: rol 判斷結(jié)果和 10比較。對(duì) BX進(jìn)行循環(huán)操作 mov al , bl。四位循環(huán)一次 , 共進(jìn)行4次循環(huán)即可以 rotate: mov cl , 4 。 返回 參考答案 2: .model small .code mov ax, data mov ds, ax xor ax, ax mov cx, 100 again: add ax, cx loop again mov ax, 4c00h int 21h end 參考答案 1: .model small .data num dw 1 .code mov ax, data mov ds, ax mov ax, 0 mov cx, 100 agai
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1