版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Assembly LanguageAssembly Languagel 循環(huán)程序設(shè)計(jì)循環(huán)程序設(shè)計(jì)l 分支程序設(shè)計(jì)分支程序設(shè)計(jì)l 循環(huán)與分支程序設(shè)計(jì)循環(huán)與分支程序設(shè)計(jì)第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language2 2鍵盤一次輸入一個(gè)字符串的方法 MOV AX, SEG BufferMOV AX, SEG Buffer /Buffer是存放輸入字符串的緩沖區(qū) MOV MOV DSDS, AX, AX /Buffer的段地址存入DS MOV MOV DXDX, Offset Buffer,
2、Offset Buffer/Buffer的偏移地址存入DX MOV Buffer, countMOV Buffer, count /設(shè)置存入字符串的最大長度并存入Buffer的首字節(jié); MOV AH, MOV AH, 0A0AH H /設(shè)置INT 21H功能參數(shù)為0AH INT 21HINT 21H /調(diào)用DOS功能第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAsse
3、mbly Language第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language 第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language 第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly La
4、nguageAssembly Language BX= A 6 C EBX= A 6 C E循環(huán)左移循環(huán)左移4 4位位顯示顯示BHBH高高4 4位位 循環(huán)左移循環(huán)左移4 4位位顯示顯示BHBH低低4 4位位循環(huán)左移循環(huán)左移4 4位位顯示顯示BLBL高高4 4位位循環(huán)左移循環(huán)左移4 4位位顯示顯示BLBL低低4 4位位第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language 第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAss
5、embly Language 第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language mov bx, 0 mov bx, 0newchar: mov ah, 1 newchar: mov ah, 1 ;鍵盤輸入;鍵盤輸入 int 21h int 21h sub al, 30h sub al, 30h jl exit ; jl exit ; 00
6、退出,分支退出,分支1 1 cmp al, 10 cmp al, 10 jl add_to jl add_to ;分支;分支2 2 sub al, 27h ; sub al, 27h ; a a f f cmp al, 0ah cmp al, 0ah jl exit ; jl exit ; f f退出,分支退出,分支4 4add_to: mov cl, 4add_to: mov cl, 4 shl bx, cl shl bx, cl mov ah, 0 mov ah, 0 add bx, ax add bx, ax jmp newchar jmp newchar ;無條件死循環(huán);無條件死循環(huán)e
7、xit: exit: (016)+1) 16+0a) 16+0f第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language將正數(shù)將正數(shù) n n 插入一個(gè)已整序的正數(shù)字?jǐn)?shù)組插入一個(gè)已整序的正數(shù)字?jǐn)?shù)組(P166例題例題5.4)mov ax, nmov ax, nmov array_head-2, 0ffffhmov array_head-2, 0ffffhmov si, 0mov si, 0compare:compare:cmp array_end si, axcmp array_end si, axj
8、le insertjle insertmov bx, array_end simov bx, array_end simov array_end si+2, bxmov array_end si+2, bxsub si, 2 sub si, 2 jmp short comparejmp short compareinsert:insert:mov array_end si+2, axmov array_end si+2, ax第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language將首地址為將首地
9、址為A A的字?jǐn)?shù)組從小到大排序的字?jǐn)?shù)組從小到大排序(P(P172172例題例題5.7)5.7) ( (氣泡算法,多重循環(huán)氣泡算法,多重循環(huán)) ) 32,85,16,15, 8 32,85,16,15, 8序號(hào)序號(hào) 地址地址 數(shù)數(shù)比比 較較 遍遍 數(shù)數(shù)12341 A 322 A+2 853 A+4 164 A+6 155 A+8 8321615885161583285158163285815163285第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language mov cx, 5 mov cx, 5
10、; ;元素個(gè)數(shù)元素個(gè)數(shù) dec cx dec cx ; ;比較遍數(shù)比較遍數(shù)loop1: mov di, cx loop1: mov di, cx ; ;比較次數(shù)比較次數(shù) mov bx, 0 mov bx, 0loop2: loop2: mov ax, Abx mov ax, Abx ; ;相鄰兩數(shù)相鄰兩數(shù) cmp ax, Abx+2 cmp ax, Abx+2 ; ;比較比較 jle continue jle continue xchg ax, Abx+2 xchg ax, Abx+2 ; ;交換位置交換位置 mov Abx, ax mov Abx, axcontinue:continue:
11、add bx, 2 add bx, 2 loop loop2 loop loop2 mov cx, di mov cx, di loop loop1 loop loop1第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Language第第1212講:循環(huán)與分支程序設(shè)計(jì)方法講:循環(huán)與分支程序設(shè)計(jì)方法(2(2課時(shí)課時(shí)) )Assembly LanguageAssembly Languagez1 = x1 + y1z1 = x1 + y1z2 = x2 + y2z2 = x2 + y2z3 = x3 - y3z
12、3 = x3 - y3z4 = x4 - y4z4 = x4 - y4z5 = x5 - y5z5 = x5 - y5z6 = x6 + y6z6 = x6 + y6z7 = x7 - y7z7 = x7 - y7z8 = x8 - y8z8 = x8 - y8z9 = x9 + y9z9 = x9 + y9z10= x10 + y10z10= x10 + y10 邏輯尺:邏輯尺:0 0 1 1 0 1 1 1 0 00 0 1 1 0 1 1 1 0 01 1 減法減法0 0 加法加法第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assemb
13、ly LanguageAssembly Language x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_rule dw 00dch logic_rule dw 00dch ;0000 0000 1101
14、1100B;0000 0000 1101 1100B mov bx, 0mov bx, 0 mov cx, 10 mov cx, 10 mov dx, logic_rule mov dx, logic_rulenext: mov ax, xbxnext: mov ax, xbx shr dx, 1 shr dx, 1 ; dxdx邏輯左移一位,移出位進(jìn)邏輯左移一位,移出位進(jìn)CFCF jc subtract jc subtract add ax, ybx add ax, ybx jmp jmp shortshort result result ;向前引用向前引用subtract: subtrac
15、t: sub ax, ybx sub ax, ybxresult: mov zbx, axresult: mov zbx, ax add bx, 2 add bx, 2 loop next loop next 第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assembly LanguageAssembly Languagedata segmentdata segment array dw 12,11,22,33,44,55,66, array dw 12,11,22,33,44,55,66, 77,88,99,111,222,333 77,88
16、,99,111,222,333 number dw 55 number dw 55 low_idx dw ? low_idx dw ? high_idx dw ? high_idx dw ?data endsdata ends折半查找算法(折半查找算法(P P177177例題例題5.95.9)第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assembly LanguageAssembly Language 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9101011111212 第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)
17、例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assembly LanguageAssembly Language lea di, array mov ax, number ;要查找數(shù)要查找數(shù) cmp ax, di+2 ;(ax)(ax)與第一個(gè)元素比較與第一個(gè)元素比較 ja chk_last lea si, di+2 je exit ;(ax)(ax)第一個(gè)元素第一個(gè)元素, ,找到退出找到退出 stc jmp exit ;(ax)(ax)(ax)最后一個(gè)元素最后一個(gè)元素, ,未找到退出未找到退出第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)
18、課時(shí)) ) Assembly LanguageAssembly Languagecompare: cmp ax, bx+si je exit ja higher dec cx mov high_idx, cx jmp midhigher: inc cx mov low_idx, cx jmp midno_match: stcexit: search: mov low_idx, 1 mov bx, di mov high_idx, bx mov bx, dimid: mov cx, low_idx mov dx, high_idx cmp cx, dx ja no_match add cx, d
19、x shr cx, 1 mov si, cx shl si, 1第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assembly LanguageAssembly Language 12 12 11 11 22 22 33 33 44 44 55 55 66 66 77 77 88 88 99 99111111222222333333 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9101011111212(ax)=55(ax)=55 didi 12 12 6 6 10 10sisi 12126 64 4(si)=0
20、ah(si)=0ah(di)=0ah(di)=0ahCf=0Cf=0(ax)=90(ax)=90 di 12 18 14 16 si 12642(si)=2(si)=2(di)=10h(di)=10hCf=1Cf=1折半算法折半算法2第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assembly LanguageAssembly Language算法算法2 2idx_ok: shr si, 1 test si, 1 jz sub_idx inc sisub_idx: sub di, si jmp short comparehigher: cmp
21、 si, 2 je no_match shr si, 1 jmp short even_idxall_done: mov si, diexit: search: mov si, dieven_idx: test si, 1 jz add_idx inc siadd_idx: add di, sicompare: cmp ax, di je all_done ja higher cmp si, 2 jne idx_okno_match: stc jmp exit第第1313講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析講:循環(huán)與分支程序設(shè)計(jì)實(shí)例分析(2(2課時(shí)課時(shí)) ) Assembly LanguageAssembly Language根據(jù)根據(jù) AL 寄存器中哪一位為寄存器中哪一位為 1(從低位到高位從低位到高位),把程序轉(zhuǎn)移到,把程序轉(zhuǎn)移到 8 個(gè)個(gè) 不不同的程序分支(同的程序分支(P180例題例題5.10)branch_table dw routine1branch_table dw
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高速公路電氣設(shè)施安裝工程分包合同2篇
- 二零二五版哈爾濱租賃房屋物業(yè)費(fèi)繳納協(xié)議3篇
- 2024版商業(yè)管理咨詢項(xiàng)目合作合同版B版
- 二零二五版國際貿(mào)易實(shí)務(wù)法規(guī)解讀與應(yīng)用合同3篇
- 2025年數(shù)據(jù)處理協(xié)議3篇
- 2024版花卉綠植采購合同書
- 2025年度股權(quán)代持與員工持股計(jì)劃協(xié)議范本3篇
- 2025年度9%股權(quán)轉(zhuǎn)讓與文化旅游產(chǎn)業(yè)發(fā)展合同3篇
- 二零二五版成都上灶師父招聘與餐飲業(yè)人才培養(yǎng)合同2篇
- 二零二五年建筑裝修用管件采購及安裝協(xié)議3篇
- 外呼合作協(xié)議
- 小學(xué)二年級(jí)100以內(nèi)進(jìn)退位加減法800道題
- 2025年1月普通高等學(xué)校招生全國統(tǒng)一考試適應(yīng)性測試(八省聯(lián)考)語文試題
- 《立式輥磨機(jī)用陶瓷金屬復(fù)合磨輥輥套及磨盤襯板》編制說明
- 保險(xiǎn)公司2025年工作總結(jié)與2025年工作計(jì)劃
- 育肥牛購銷合同范例
- 暨南大學(xué)珠海校區(qū)財(cái)務(wù)辦招考財(cái)務(wù)工作人員管理單位遴選500模擬題附帶答案詳解
- DB51-T 2944-2022 四川省社會(huì)組織建設(shè)治理規(guī)范
- 2024北京初三(上)期末英語匯編:材料作文
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
- 超星爾雅學(xué)習(xí)通【西方文論原典導(dǎo)讀(吉林大學(xué))】章節(jié)測試附答案
評(píng)論
0/150
提交評(píng)論