




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
12三月2024第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)標(biāo)準(zhǔn)流程圖符號(hào)
匯編語言程序的基本結(jié)構(gòu)1.順序結(jié)構(gòu)2.分支程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)IP(或EIP)線性增加IP(或EIP)受標(biāo)志位的影響而跳變IP(或EIP)因計(jì)數(shù)器CX(或ECX)中的值不為零而循環(huán)例.順序結(jié)構(gòu)程序要求:用查表法將一位十六進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的ASCII碼DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB 4ASCI DB ?DATA ENDSSTACK SEGMENTSTACK DW 20HDUP(0)STACK ENDSCOSEGSEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACKBEING: MOV AX,DATA MOV DS,AX MOV BX,OFFSETTABLE MOV AH,0 MOV AL,HEX ADD BX,AX MOV AL,[BX] MOV ASCI,AL MOV AH,4CH INT 21HCOSEG ENDS END BEINGXLAT≡XLAT;AL←[BX+AL]當(dāng)改變了EIP或CS就改變了程序的執(zhí)行順序即實(shí)現(xiàn)了程序的控制轉(zhuǎn)移第5章控制轉(zhuǎn)移和程序結(jié)構(gòu)5.1目標(biāo)地址尋址方式5.1.1轉(zhuǎn)移范圍5.1.2尋址方式5.1.3無條件轉(zhuǎn)移指令5.2分支程序結(jié)構(gòu)5.2.1條件轉(zhuǎn)移指令5.2.2單分支結(jié)構(gòu)5.2.3雙分支結(jié)構(gòu)5.2.4多分支結(jié)構(gòu)5.3循環(huán)程序結(jié)構(gòu) 5.3.1循環(huán)指令5.3.2計(jì)數(shù)控制循環(huán)5.3.3條件控制循環(huán)5.4子程序結(jié)構(gòu)5.4.1子程序指令5.4.2子程序設(shè)計(jì)5.4.3參數(shù)傳遞5.4.4程序模塊5.1目標(biāo)地址尋址方式5.1.1轉(zhuǎn)移范圍5.1.2尋址方式5.1.3無條件轉(zhuǎn)移指令5.1.1程序轉(zhuǎn)移范圍段內(nèi)轉(zhuǎn)移在當(dāng)前代碼段內(nèi)的轉(zhuǎn)移不改CS,只改EIP近轉(zhuǎn)移(Near)16位段:16位近轉(zhuǎn)移NEAR1632位段:32位近轉(zhuǎn)移NEAR32短轉(zhuǎn)移(Short)轉(zhuǎn)移范圍-128
~127字節(jié)段間轉(zhuǎn)移從當(dāng)前代碼段跳轉(zhuǎn)到另一個(gè)代碼段改CS和EIP遠(yuǎn)轉(zhuǎn)移(Far)16位段:32位遠(yuǎn)轉(zhuǎn)移FAR1632位段:48位遠(yuǎn)轉(zhuǎn)移FAR325.1.2目標(biāo)地址尋址方式1.相對(duì)尋址方式2.直接尋址方式3.間接尋址方式類似于存儲(chǔ)器數(shù)據(jù)的尋址方式指明目標(biāo)地址的方法1.相對(duì)尋址方式指令代碼提供目標(biāo)地址相對(duì)于當(dāng)前指令指針EIP的位移量目標(biāo)地址(轉(zhuǎn)移后的EIP)=當(dāng)前EIP+位移量特點(diǎn)都是段內(nèi)轉(zhuǎn)移,最常用、最靈活2.直接尋址方式指令代碼直接提供目標(biāo)地址目標(biāo)地址(轉(zhuǎn)移后的CS和EIP)=指令操作數(shù)3.間接尋址方式指令代碼給出存放目標(biāo)地址的寄存器或存儲(chǔ)單元分類寄存器間接尋址用寄存器保存目標(biāo)地址存儲(chǔ)器間接尋址用存儲(chǔ)單元保存目標(biāo)地址5.1.3無條件轉(zhuǎn)移指令JMP作用無條件改變程序執(zhí)行順序格式段內(nèi)相對(duì)尋址或段間直接尋址JMPlabel ;程序轉(zhuǎn)向label標(biāo)號(hào)指定的地址寄存器間接尋址JMPreg16/reg32 ;程序轉(zhuǎn)向寄存器指定的地址存儲(chǔ)器間接尋址JMPmem16/mem32;程序轉(zhuǎn)向存儲(chǔ)單元指定的地址JMP指令的4種類型1.段內(nèi)轉(zhuǎn)移(1)相對(duì)尋址標(biāo)號(hào)指明目標(biāo)地址,指令代碼包含位移量(2)間接尋址通用寄存器或主存單元包含目標(biāo)指令的偏移地址2.段間轉(zhuǎn)移(1)直接尋址標(biāo)號(hào)包含目標(biāo)指令的段地址和偏移地址(2)間接尋址16位段:用雙字存儲(chǔ)單元包含目標(biāo)地址32位段:用3字存儲(chǔ)單元包含目標(biāo)地址1.段內(nèi)轉(zhuǎn)移——(1)相對(duì)尋址段內(nèi)直接短轉(zhuǎn)移JMPSHORTlable ;IP←IP+8位偏移量(有符號(hào))段內(nèi)直接近轉(zhuǎn)移JMPNEARPTRlable ;IP←IP+16位位移量(有符號(hào))操作碼EB位移量E9位移量(低)位移量(高)操作碼位移量=標(biāo)號(hào)偏移地址—當(dāng)前IP值
(JMP指令的下一條指令的IP值)注意標(biāo)號(hào)、邏輯段名、子程序名也有地址和類型屬性例.標(biāo)號(hào)next: add al,01h邏輯段名datas SEGMENTdatas ENDS子程序名dpchar procdpchar endp例1.段內(nèi)直接短轉(zhuǎn)移 JMPSHORTnext操作碼EB位移量;next的(IP)←當(dāng)前(IP)+D8例2.段內(nèi)直接近轉(zhuǎn)移 JMPNEARPTRNEXT 設(shè)(1)標(biāo)號(hào)NEXT的EA=1000H(2)JMP指令的當(dāng)前IP為0009H 求:位移量=? 指令代碼E9F70F(代表JMP1000H)1000H-0009H=0FF7HE9位移量(低)位移量(高)操作碼1.段內(nèi)轉(zhuǎn)移——(2)間接尋址寄存器間接尋址 JMP reg ;IP←reg存儲(chǔ)器間接尋址 JMP mem ;IP←[EA]屬于絕對(duì)轉(zhuǎn)移例1. 設(shè)CS=3000H,IP=2400H,BX=3100H JMPBX 指令執(zhí)行后,IP=?例2. 設(shè)DS=2000H,BX=1000H,[21020H]=34H,[21021H]=12H JMPWORDPTR[BX+20H] 指令執(zhí)行后,IP=?3100H1234H[例題5-1]無條件轉(zhuǎn)移程序-1 ;數(shù)據(jù)段00000000 nvar dw?
;代碼段0010
EB
01
jmplabl1001290 nop0013B8FF02 labl1: movax,typelabl10016
E9
0001
jmp
nearptrlabl2001990 nop001AB80020R labl2: movax,offsetlabl3001DFFE0 jmpax001F90 nop0020B8002BR labl3: movax,offsetlabl40023A30000R movnvar,ax0026FF260000R jmpnvar002A90 nop相對(duì)短轉(zhuǎn)移相對(duì)近轉(zhuǎn)移寄存器間接近轉(zhuǎn)移存儲(chǔ)器間接近轉(zhuǎn)移2.段間轉(zhuǎn)移——(1)直接尋址段間直接轉(zhuǎn)移JMPFARPTRlable ;IP←lable的段內(nèi)偏移地址
;CS←lable所在段的段地址屬于絕對(duì)轉(zhuǎn)移操作碼EAIP(低)IP(高)CS(低)CS(高)例1.C1SEGMENT …JMPFARPTRnext_prog …C1ENDSC2SEGMINT …next_prog: … …C2ENDSEA50020020OP碼新(IP)=0250H新(CS)=2000HJMP指令C1段……C2段…………20000Hnext_prog:20250H……操作碼EAIP(低)IP(高)CS(低)CS(高)2.段間轉(zhuǎn)移——(2)間接尋址存儲(chǔ)器間接尋址 JMP mem ;IP←[EA] ;CS←[EA+2]
屬于絕對(duì)轉(zhuǎn)移例.MOV SI,0100HJMP DWORDPTR[SI]執(zhí)行這段程序后:(a)把DS:[SI]即DS:0100H和DS:0101H兩單元的字送?;(b)而把DS:0102H和DS:0103H兩單元的字送?;(c)程序轉(zhuǎn)入由新的CS和新的IP決定的目標(biāo)地址。IPCS[例題5-1]無條件轉(zhuǎn)移程序-2 ;數(shù)據(jù)段000200000000 fvar dd? ;代碼段002BB8FF05 labl4: movax,typefarptrlabl5002E
EA----0034R jmp
farptrlabl5003390 nop0034B80047R labl5: movax,offsetlabl60037A30002R movwordptrfvar,ax003ABA----R movdx,seglabl6003D89160004R movwordptrfvar+2,dx0041FF2E0002R jmp
fvar004590 nop0046
labl6:直接遠(yuǎn)轉(zhuǎn)移存儲(chǔ)器間接遠(yuǎn)轉(zhuǎn)移5.2分支程序結(jié)構(gòu)5.2.1條件轉(zhuǎn)移指令5.2.2單分支結(jié)構(gòu)5.2.3雙分支結(jié)構(gòu)5.2.4多分支結(jié)構(gòu)5.2.1條件轉(zhuǎn)移指令Jcc作用根據(jù)上一條指令所設(shè)置的標(biāo)志位,確定程序是否轉(zhuǎn)移格式 Jcc
label
cc:轉(zhuǎn)移條件label:目標(biāo)地址(采用段內(nèi)相對(duì)尋址方式)16位80x86:只是-128~+127間的短轉(zhuǎn)移32位IA-32:達(dá)到32位的全偏移量特點(diǎn):利用但不影響標(biāo)志位1.cc轉(zhuǎn)移條件分類16種、兩類單個(gè)標(biāo)志狀態(tài)ZF、SF、PF、OF、CF兩數(shù)大小關(guān)系等于(Equal)無符號(hào)數(shù)高(Above)
、低(Below)有符號(hào)數(shù)大(Greater)
、?。↙ess)(1)單個(gè)標(biāo)志狀態(tài)JZ/JE
ZF=1 JumpifZero/EqualJNZ/JNE
ZF=0 JumpifNotZero/NotEqualJS
SF=1 JumpifSignJNS
SF=0 JumpifNotSignJP/JPE
PF=1 JumpifParity/ParityEvenJNP/JPO
PF=0 JumpifNotParity/ParityOddJO
OF=1 JumpifOverflowJNO
OF=0 JumpifNotOverflowJC
CF=1 JumpifCarryJNC
CF=0 JumpifNotCarry單個(gè)標(biāo)志狀態(tài)作為條件的功能JZ(JE)和JNZ(JNE):ZF是零(相等)還是非零(不等)JS和JNS:SF是負(fù)還是正JO和JNO:OF溢出還是沒有溢出JP(JPE)和JNP(JPO):PF低字節(jié)“1”的個(gè)數(shù)是偶數(shù)還是奇數(shù)JC和JNC:CF有進(jìn)位(為1)還是無進(jìn)位(為0)例1.單個(gè)條件標(biāo)志作為條件(a)ADD AL,ALJC TOOBIG ;若有進(jìn)位,轉(zhuǎn)移至TOOBIG(b)CMP AL,BLJZ ZERO ;若相等,則轉(zhuǎn)移至ZERO[例題5-2]實(shí)現(xiàn)指令CBW功能的程序-18086指令CBW等價(jià)于IA-32指令:MOVSX AX,AL功能如果AL最高位為0則:AH=0否則:AH=FFH[例題5-2]實(shí)現(xiàn)指令CBW功能的程序-2 moval,bvar ;取出要判斷的數(shù)據(jù)
testal,80h ;測試最高位
jznext1 ;最高位為0(ZF=1),則轉(zhuǎn)移
movah,0ffh ;最高位為1,則順序執(zhí)行
jmpdone ;無條件跳過另一個(gè)分支next1: movah,0 ;最高位為0轉(zhuǎn)移到此執(zhí)行done:[例題5-2]實(shí)現(xiàn)指令CBW功能的程序-3
moval,bvar ;取出要判斷的數(shù)據(jù)
testal,80h ;測試最高位
jnznext2 ;最高位為1(ZF=0),則轉(zhuǎn)移
movah,0 ;最高位為0,則順序執(zhí)行
jmpdone ;無條件跳過另一個(gè)分支next2: movah,0ffh ;最高位為1轉(zhuǎn)移到此執(zhí)行done:[例題5-2]實(shí)現(xiàn)指令CBW功能的程序-4
moval,bvar ;取出要判斷的數(shù)據(jù)
cmpal,0 ;與0比較
jnsnext3 ;最高位為0(SF=0),則轉(zhuǎn)移
movah,0ffh ;最高位為1,則順序執(zhí)行
jmpdone ;無條件跳過另一個(gè)分支next3: movah,0 ;最高位為0轉(zhuǎn)移到此執(zhí)行done:[例題5-3]實(shí)現(xiàn)奇偶校驗(yàn)程序-1奇偶校驗(yàn)使數(shù)據(jù)中包括校驗(yàn)位在內(nèi)的“1”的個(gè)數(shù)恒為奇數(shù)奇校驗(yàn)恒為偶數(shù)(包括0)偶校驗(yàn)奇偶校驗(yàn)特點(diǎn)只能檢測出錯(cuò),不能糾錯(cuò)奇偶校驗(yàn)標(biāo)志:PF[例題5-3]實(shí)現(xiàn)奇偶校驗(yàn)程序-2
movah,1 ;1號(hào)功能
int21h ;鍵盤輸入,返回值在AL
andal,7fh ;最高位置“0” ;PF反映“1”個(gè)數(shù)的奇偶
jnp
next1 ;個(gè)數(shù)為奇數(shù),則轉(zhuǎn)向NEXT1
oral,80h ;最高位置“1”、其他位不變next1: movTdata,al ;保存待發(fā)送的數(shù)據(jù)DOS功能調(diào)用INT21H功能編號(hào)AH=01H出口參數(shù)AL=ASCII字符功能說明鍵盤輸入一個(gè)字符(回顯)奇校驗(yàn)[例題5-4]統(tǒng)計(jì)“1”位個(gè)數(shù)程序-1
movah,1 int21h ;輸入一個(gè)字符 xorah,ah ;AH記錄1的個(gè)數(shù),故先清0
movecx,8 ;ASCII碼有8位,8次循環(huán)判斷again: shlal,1 ;從高位開始
jncnext ;不為1,無需處理
incah ;為1,個(gè)數(shù)加1next: loopagain[例題5-4]統(tǒng)計(jì)“1”位個(gè)數(shù)程序-2
movah,1 int21h ;輸入一個(gè)字符
xorah,ah ;AH記錄1的個(gè)數(shù),故先清0again: cmpal,0 ;也可用“TESTAL,0FFH”
jedone shral,1 ;從低位開始
jncnext ;不為1,無須處理
incah ;為1,個(gè)數(shù)加1next: jmpagaindone:好在哪里?(2)兩數(shù)大小關(guān)系無符號(hào)數(shù)JB/JNAE
CF=1 JumpifBelow/NotAboveorEqualJNB/JAE
CF=0 JumpifNotBelow/AboveorEqualJBE/JNA
CF=1或ZF=1 JumpifBeloworEqual/NotAboveJNBE/JA
CF=0且ZF=0 JumpifNotBeloworEqual/Above有符號(hào)數(shù)JL/JNGE
SF≠OF JumpifLess/NotGreaterorEqualJNL/JGE
SF=OF JumpifNotLess/GreaterorEqualJLE/JNG
SF≠OF或ZF=1 JumpifLessorEqual/NotGreaterJNLE/JG
SF=OF且ZF=0 JumpifNotLessorEqual/Greater兩數(shù)大小關(guān)系作為條件的功能無符號(hào)數(shù)用高(Above)、低(Below)低于(不高于等于):JB(JNAE)不低于(高于等于):JNB(JAE)低于等于(不高于):JBE(JNA)不低于等于(高于):JNBE(JA)有符號(hào)數(shù)用大(Greater)、?。↙ess)小于(不大于等于):JL(JNGE)不小于(大于等于):JNL(JGE)小于等于(不大于):JLE(JNG)不小于等于(大于):JNLE(JG)例1.兩數(shù)大小關(guān)系作為條件 按遞增序排列兩個(gè)無符號(hào)數(shù),第一個(gè)數(shù)偏移地址BX,第二個(gè)數(shù)偏移地址DI。 MOV AX,[BX] CMP AX,[DI] JBE DONE ;第一個(gè)數(shù)低于或等于第二個(gè) XCHG AX,[DI] ;第一個(gè)數(shù)大于第二個(gè),交換 MOV [BX],AX ……DONE: ……例2.比較01H和0FEH兩個(gè)數(shù)的大小 M0VAL,01H CMPAL,0FEH設(shè)執(zhí)行后:AL=01H,CF=1,OF=0,SF=0,ZF=0(a)若01H和0FEH為無符號(hào)數(shù) 判斷大小:“高于”或“低于”等指令(JA/JNBE) 轉(zhuǎn)移標(biāo)志位:CF、ZF(b)若01H和0FEH為帶符號(hào)數(shù) 判斷大小:“大于”或“小于”等指令指令(JG/JNLE) 轉(zhuǎn)移標(biāo)志位SF、OF、ZF條件跳轉(zhuǎn)指令的測試和轉(zhuǎn)移條件Above/BelowGreater/Less注意:無符號(hào)數(shù)和有符號(hào)數(shù)是否相等,均可用JE/JZ或JNE/JNZ5.2.2單分支結(jié)構(gòu)5.2.3雙分支結(jié)構(gòu)5.2.4多分支結(jié)構(gòu)5.2.2單分支結(jié)構(gòu)選好條件轉(zhuǎn)移指令:當(dāng)條件滿足,發(fā)生轉(zhuǎn)移,跳過分支體;條件不滿足,順序執(zhí)行分支體。5.2.3雙分支結(jié)構(gòu)選好條件轉(zhuǎn)移指令:順序執(zhí)行的分支體要有JMP指令跳過另一個(gè)分支體[例題5-5]比較兩數(shù)大小程序
movax,wvar1 ;取第一個(gè)數(shù)據(jù)
cmp
ax,wvar2 ;與第二個(gè)數(shù)據(jù)比較
je
equal ;兩數(shù)相等,轉(zhuǎn)移
jnb
first ;第一個(gè)數(shù)據(jù)大,轉(zhuǎn)移
movdx,offsetmsg2 ;第二個(gè)數(shù)據(jù)大
jmp
donefirst: movdx,offsetmsg1
jmp
doneequal: movdx,offsetmsg0done: movah,9 ;顯示結(jié)果
int21h無符號(hào)數(shù)還是有符號(hào)數(shù)?;數(shù)據(jù)段wvar1dw3765hwvar2dw8930hmsg0db‘Equal!$’msg1 db‘First!$’msg2 db‘Second!$’[例題5-6]求絕對(duì)值程序 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號(hào)數(shù)據(jù)result dd? ;保存絕對(duì)值 ;代碼段
moveax,dvar cmpeax,0 ;比較EAX與0
jgenonneg ;條件滿足:AX≥0,轉(zhuǎn)移
negeax ;AX<0,負(fù)數(shù)需求補(bǔ)得正值nonneg: movresult,eax ;分支結(jié)束,保存結(jié)果IF-THEN結(jié)構(gòu)[例題5-7]BCD碼顯示程序
movdl,BCD ;取BCD碼
testdl,0f0h ;如果高位是0,不顯示
jzone shrdl,4 ;BCD碼高位右移為低位
ordl,30h ;轉(zhuǎn)換為ASCII碼
movah,2 ;顯示
int21h movdl,BCD ;取BCD碼
anddl,0fh ;只取二進(jìn)制低4位one:
ordl,30h ;轉(zhuǎn)換低位為ASCII碼
movah,2 ;顯示
int21hadddl,30h[例題5-8]顯示數(shù)據(jù)最高位程序-1 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號(hào)數(shù)據(jù) ;代碼段
movebx,dvar shlebx,1 ;EBX最高位移入CF標(biāo)志
jcone ;CF=1,最高位為1,轉(zhuǎn)移
movdl,'0' ;CF=0,最高位為0:DL←'0'
jmptwo ;一定要跳過另一個(gè)分支體one:
movdl,'1' ;DL←'1'two:
movah,2 int21h ;顯示IF-THEN-ELSE結(jié)構(gòu)[例題5-8]顯示數(shù)據(jù)最高位程序-2 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號(hào)數(shù)據(jù) ;代碼段
movebx,dvar
movdl,'0' ;假設(shè)最高位為0:DL←'0' shlebx,1 ;EBX最高位移入CF標(biāo)志
jnctwo ;CF=0,即最高位為0,轉(zhuǎn)移
movdl,'1' ;CF=1,最高位為1,DL←'1'two:
movah,2 int21h ;顯示IF-THEN結(jié)構(gòu)[例題5-8]顯示數(shù)據(jù)最高位程序-3 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號(hào)數(shù)據(jù) ;代碼段
movebx,dvar
movdl,'0'
shlebx,1 ;EBX最高位移入CF標(biāo)志
adcdl,0
;最高位為0,CF=0,DL←'0'='0'+0 ;最高位為1,CF=1,DL←'1'='0'+1
movah,2 ;顯示
int21h順序結(jié)構(gòu)[例題5-9]有符號(hào)數(shù)運(yùn)算溢出程序 ;代碼段 moveax,dvar1 subeax,dvar2 ;求差
joerror ;有溢出,轉(zhuǎn)移
movdvar3,eax ;無溢出,保存差值
leadx,okmsg ;顯示正確
jmpdisperror:
leadx,errmsg ;顯示錯(cuò)誤disp: movah,9
int21h例1.求補(bǔ)碼數(shù)[X]補(bǔ)的絕對(duì)值,并送回原處。;X≥0;X<0可得如下關(guān)系式:;X≥0;X<0典型的IF-THEN-ELSE程序結(jié)構(gòu)DATAS SEGMENTXADR DW3456H ;設(shè)[X]補(bǔ)=3456HDATAS ENDSSTACKS SEGMENT STACKBOTTOW DW 256DUP(?) ;定義堆棧段,預(yù)留256個(gè)單元TOP = $-BOTTOWSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,STACKS ;將堆棧段段址送SS MOV SS,AX MOV SP,TOP ;使SP指向棧底地址
MOV AX,DATAS ;將數(shù)段段址送DS MOV DS,AX
DONE: MOV AH,4CH ;返回PC-DOS狀態(tài) INT 21HCODES ENDSEND START可以省略求補(bǔ)碼程序段求補(bǔ)碼程序段 MOVAX,XADR;?。踴]補(bǔ)到AX ANDAX,AX ;設(shè)置標(biāo)志位 JNSDONE;若x≥0,轉(zhuǎn)DONE NEGAX ;若<0,求補(bǔ)得到|x| MOVXADR,AX;將|x|送回原處DATAS SEGMENTXADR DW3456H ;設(shè)[X]補(bǔ)=3456HDATAS ENDSSTACKS SEGMENT STACKBOTTOW DW256DUP(?) ;定義堆棧段,預(yù)留256個(gè)單元STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS ;將數(shù)段段址送DS MOV DS,AX MOV AX,XADR ;?。踴]補(bǔ)到AX AND AX,AX ;設(shè)置標(biāo)志位 JNS DONE ;若x≥0,轉(zhuǎn)DONE NEG AX ;若<0,求補(bǔ)得到|x| MOV XADR,AX ;將|x|送回原處 DONE: MOV AH,4CH ;返回PC-DOS狀態(tài) INT 21HCODES ENDS END START5.2.4多分支結(jié)構(gòu)分支處理中又有分支,具有多個(gè)分支走向。可用單分支和雙分支實(shí)現(xiàn)多個(gè)分支結(jié)構(gòu)。AH=0fuction0YNAH=1fuction1YNAH=2fuction2YN[例題5-10]利用地址表實(shí)現(xiàn)多分支程序-1 ;數(shù)據(jù)段msg db'Inputnumber(1~9):','$'crlf db0dh,0ah,‘$‘ ;回車換行符msg1 db'Chapter1',0dh,0ah,'$' ……msg9 db'Chapter9',0dh,0ah,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中數(shù)學(xué) 第2章 算數(shù)初步 §3 3.1 條件語句(教師用書)教學(xué)實(shí)錄 北師大版必修3
- 2025年深入學(xué)習(xí)貫徹“中央八項(xiàng)規(guī)定”精神知識(shí)競賽測試題庫及答案
- 幼兒體格檢查操作規(guī)范
- 湖南省長沙市長郡外國語學(xué)校2024-2025學(xué)年七年級(jí)下學(xué)期月考語文試題(原卷版+解析版)
- 2025年江蘇省常州市金壇區(qū)中考一模歷史試題(原卷版+解析版)
- 安全保衛(wèi)工作計(jì)劃
- 公司招待所服務(wù)員工作總結(jié)
- 汽車維修工作個(gè)人總結(jié)
- 2025商業(yè)辦公裝修物業(yè)管理合同(合同范本)
- 土地贈(zèng)與合同范本
- 企業(yè)廉潔風(fēng)險(xiǎn)防控課件教學(xué)
- 中醫(yī)護(hù)理三基練習(xí)題庫+答案
- 2025年護(hù)士三基考核試題及答案
- 七年級(jí)下冊(cè)2025春季歷史 教學(xué)設(shè)計(jì)《明朝對(duì)外關(guān)系》 學(xué)習(xí)資料
- 《設(shè)備管理標(biāo)準(zhǔn)化實(shí)施手冊(cè)》
- 湖南省長沙市明達(dá)中學(xué)2024-2025學(xué)年九年級(jí)下學(xué)期入學(xué)考試英語試卷(含答案無聽力原文及音頻)
- 汽車站建設(shè)項(xiàng)目可行性研究報(bào)告
- 《中國古典園林之美》課件
- 2024年09月上海2024交通銀行交銀金融科技校園招考筆試歷年參考題庫附帶答案詳解
- 2025年人教五四新版八年級(jí)數(shù)學(xué)上冊(cè)階段測試試卷
- 火龍罐綜合灸療法
評(píng)論
0/150
提交評(píng)論