版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章匯編語言程序設(shè)計3.18086的指令系統(tǒng)機(jī)器指令:命令機(jī)器做某種操作的一條語句稱為一個機(jī)器指令;指令系統(tǒng):全部機(jī)器指令的集合稱為指令系統(tǒng)。匯編語言:是機(jī)器語言的一種助記符形式,與機(jī)器語言一一對應(yīng);高級語言匯編語言機(jī)器語言一、指令格式操作碼:告訴計算機(jī)執(zhí)行什么性質(zhì)的操作,每條指令只能有一個操作碼;操作數(shù):告訴計算機(jī)對什么樣的對象進(jìn)行操作,8086指令系統(tǒng)中,操作數(shù)的數(shù)目有0~2個。2個操作數(shù):MOV AX,BX1個操作數(shù):INC AX0個操作數(shù):CLI操作碼
操作數(shù)1,操作數(shù)2匯編語言機(jī)器語言MOD含義MOD含義00存儲器方式,無位移量01存儲器方式,有8位位移量10存儲器方式,有16位位移量11寄存器方式,無位移量REGW=1W=0REGW=1W=0000AXAL100SPAH001CXCL101BPCH010DXDL110SIDH011BXBL111DIBHD01含義寄存器為源寄存器寄存器為目的寄存器MODR/M存儲器方式寄存器方式有效地址的計算公式W=0W=100011011000BX+SIBX+SI+D8BX+SI+D16ALAX001BX+DIBX+DI+D8BX+DI+D16CLCX010BP+SIBP+SI+D8BP+SI+D16DLDX011BP+DIBP+DI+D8BP+DI+D16BLBX100SISI+D8SI+D16AHSP101DIDI+D8DI+D16CHBP110D16BP+D8BP+D16DHSI111BXBX+D8BX+D16BHDI匯編語言機(jī)器語言匯編語言:MOV AX,[BX+SI]機(jī)器語言:8B00HD=1:寄存器為目的寄存器;W=1:16操作;MOD=00:從存儲器中讀,無偏移;REG=000:AX,結(jié)合D,目的為AX;R/M=000:結(jié)合MOD,[BX+SI]。匯編語言機(jī)器語言1000101100000000操作碼DWMODREGR/MCPU:計算指令物理地址
CS╳10H+IP=40000H+1000H=41000HCPU:指令物理地址(41000H)地址總線存儲器:指令(8B00H)數(shù)據(jù)總線CPU:指令指令譯碼器執(zhí)行控制電路CPU:計算數(shù)據(jù)偏移地址
BX+SI=14A0H+000AH=14AAHCPU:計算數(shù)據(jù)物理地址
DS╳10H+偏移地址=10000H+14AAH=114AAHCPU:數(shù)據(jù)物理地址(114AAH)地址總線存儲器:數(shù)據(jù)(B0A1)數(shù)據(jù)總線CPU:數(shù)據(jù)寄存器
AX=B0A1H機(jī)器指令的執(zhí)行A1B0008B114AAH114ABH41000H41001HCS:4000H,DS:1000HIP:1000HBX:14A0H,SI:0AHMOV AX,[BX+SI]二、尋址方式所謂指令的尋址方式是指在指令中操作數(shù)的表示方式。8086的尋址方式包括:立即尋址、寄存器尋址、存儲器尋址、串操作尋址、外設(shè)I/O端口尋址和程序轉(zhuǎn)移尋址。指令直接給出操作數(shù)的數(shù)值,機(jī)器碼的最后1或2個字節(jié)就是操作數(shù)—立即數(shù)。例:MOV AX,1020H MOV BH,100立即數(shù)只能作為源操作數(shù),不能作為目的操作數(shù)。1、立即尋址操作數(shù)在寄存器中,寄存器的內(nèi)容就是操作數(shù)的數(shù)值。例:MOV CX,AX MOV AH,AL MOV DS,AXIP寄存器不能作為操作數(shù)。2、寄存器尋址操作數(shù)在存儲器中,指令中給出存儲器的(偏移)地址。直接尋址:MOV DX,[2100H]寄存器間接尋址:MOV CX,[SI]
MOV [BX],AL可以用于間接尋址的寄存器:BX,SI,DI,BP。注意區(qū)分:“MOVAX,BX”和”MOVAX,[BX]”的不同
“MOVAX,1000H”和”MOVAX,[1000H]”3、存儲器尋址基址尋址:MOV [BX+200H],AX變址尋址:MOV CX,[SI+246]基址變址尋址:MOV [BX+SI],DL
MOV CX,[BX+DI+100H]基址寄存器:BX,BP,變址寄存器:SI,DI基址變址尋址中只能有一個基址寄存器和一個變址寄存器注意:包括BP的基址尋址或基址變址尋址的默認(rèn)段寄存器為SS,而不是DS。3、存儲器尋址名稱程序名命令行生成匯編程序MASMmasma.asma.obj連接程序LINKlinka.obja.exe調(diào)試程序DEBUGdebuga.exe三、匯編語言程序DATA SEGMENT STRING DB ‘HelloWorld!’,‘$’DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX
MOV DX,OFFSETSTRING MOV AH,9 INT 21H MOV AX,4C00H INT 21HCODE ENDSSTACK SEGMENT STACK DB 256DUP(?)STACK ENDS END START例1:第一個程序分段結(jié)構(gòu):包括數(shù)據(jù)段、代碼段和堆棧段。語句行:指令性語句:真正對應(yīng)著由CPU執(zhí)行的機(jī)器指令的語句。指示性語句:不產(chǎn)生機(jī)器指令,只是告訴MASM如何去匯編程序的語句。宏匯編語言程序DATA SEGMENT STRING DB ‘HelloWorld!’,‘$’DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:
MOV AX,DATA MOV DS,AX
MOV DX,OFFSETSTRING MOV AH,9 INT 21H MOV AX,4C00H INT 21HCODE ENDSSTACK SEGMENT STACK DB 256DUP(?)STACK ENDS END START指令性語句指示性語句指示性語句數(shù)據(jù)段代碼段堆棧段DATA SEGMENT STRING DB ‘HelloWorld!’,‘$’DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX
MOV DX,OFFSETSTRING MOV AH,9 INT 21H
MOV AX,4C00H INT 21HCODE ENDSSTACK SEGMENT STACK DB 256DUP(?)STACK ENDS END START數(shù)據(jù)定義程序代碼程序框架1、段定義偽指令
段起始和結(jié)束偽指令
段名SEGMENT
段名ENDS2)段寄存器與段關(guān)系說明偽指令
ASSUME 段寄存器:段名,段寄存器:段名,… 3)程序開始和結(jié)束偽指令
END偽指令一方面通知匯編程序結(jié)束匯編,同時指明
標(biāo)號語句為程序開始執(zhí)行的起始地址。指示性語句2、數(shù)據(jù)定義偽指令1)常量定義 格式: 表達(dá)式名 EQU 表達(dá)式
2)數(shù)據(jù)定義 格式:變量名(標(biāo)號)數(shù)據(jù)類型定義偽指令表達(dá)式
DB 1個字節(jié),8位
DW 2個字節(jié),16位
DD 4個字節(jié),32位
DQ 8個字節(jié),64位
DT 10個字節(jié),80位3)重復(fù)偽指令
格式: 重復(fù)次數(shù) DUP (重復(fù)內(nèi)容)指示性語句3、匯編語句定位偽指令
ORG語句用來定義起始位置,可以用來定位數(shù)據(jù)和程序 格式:
ORG 表達(dá)式4、取段址和取偏移址偽指令 格式:
SEG 地址標(biāo)號或變量名
OFFSET 地址標(biāo)號或變量名指示性語句數(shù)據(jù)傳送指令:
MOV
把源操作數(shù)送給目的操作數(shù)
XCHG
交換兩個操作數(shù)的數(shù)據(jù)
PUSH,POP
把操作數(shù)壓入或取出堆棧
PUSHF,POPF, 堆棧指令群
PUSHA,POPA
LEA,LDS,LES
取地址至寄存器
XLAT(XLATB) 查表指令四、8086指令系統(tǒng)8086指令系統(tǒng)算術(shù)運算指令:
ADD,ADC
加法指令
SUB,SBB
減法指令
INC,DEC
加一或減一
NEG
取二進(jìn)制補(bǔ)碼
MUL,IMUL
乘法指令
DIV,IDIV
除法指令
CBW,CWD
有符號數(shù)擴(kuò)展指令
AAA,AAS,AAM,AAD 非壓BCD碼運算調(diào)整指令
DAA,DAS 壓縮BCD碼調(diào)整指令8086指令系統(tǒng)位運算指令:AND,OR,XOR,NOT,TEST
邏輯運算SHR,SHL,SAR,SAL
移位指令ROR,ROL,RCR,RCL
循環(huán)移位指令
8086指令系統(tǒng)程序轉(zhuǎn)移指令: CLC,STC,CMC 設(shè)定進(jìn)位標(biāo)志 CLD,STD 設(shè)定方向標(biāo)志
CLI,STI
設(shè)定中斷標(biāo)志
CMP
比較
JMP
跳往指定地址執(zhí)行
JXX
條件轉(zhuǎn)移指令
LOOP
循環(huán)指令 LOOPE(Z) 條件循環(huán)指令
CALL,RET
子程序調(diào)用,返回指令
INT,IRET
中斷調(diào)用及返回指令8086指令系統(tǒng)串操作指令: MOVSB,MOVSW,MOVSD 字符串傳送指令
CMPSB,CMPSW,CMPSD 字符串比較指令
SCASB,SCASW 字符串搜索指令
LODSB,LODSW 字符串載入指令
STOSB,STOSW 字符串存貯指令
REP,REPE,REPNE 重復(fù)前綴指令五、順序程序設(shè)計
1、數(shù)據(jù)傳送指令
一般傳送指令格式: MOV 目的,源功能:該指令將源內(nèi)容送至目的地址中
交換指令格式:
XCHG 操作數(shù)1,操作數(shù)2功能:源操作數(shù)內(nèi)容和目的操作數(shù)對調(diào)。
非法傳送方式:立即數(shù)作為目的: MOV 12H,AL16位立即數(shù)8位寄存器: MOV BH,1000H立即數(shù)段寄存器: MOV DS,2000H存儲器存儲器: MOV [BX],[1000H]數(shù)據(jù)傳送指令DATA SEGMENT ORG 100H BUF DW 4B10H,1020H,10H,22H,4C21H ADDR DD 56781234h AD_BUF DD BUF STRING DB ‘a(chǎn)bcd’ AD_STRING DD STRING OFF_STRING DW STRINGDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,BUF ;AX=? MOV DX,WORDPTRADDR ;DX=?例2:數(shù)據(jù)傳送,DATA=2000H物理地址存儲內(nèi)容20100H10H20101H4BH20102H20H20103H10H20104H10H20105H00H20106H22H20107H00H20108H21H20109H4CH2010AH34H2010BH12H2010CH78H2010DH56H MOV AX,SEGADDR ;AX=? MOV DS,AX MOV CX,BUF+2 ;CX=? MOV SI,OFFSETAD_BUF ;SI=? MOV AL,STRING ;AL=? MOV AX,OFF_STRING ;AX=? XCHG CX,AX ;CX=? ;AX=? MOV AX,4C00H INT 21HCODE ENDS ENDSTART物理地址存儲內(nèi)容2010EH00H2010FH01H20110H00H20111H20H20112H61H20113H62H20114H63H20115H64H20116H12H20117H01H20118H00H20119H20H2011AH12H2011BH01H2、算術(shù)運算指令
加減運算指令格式:
ADD/ADC 目的操作數(shù),源操作數(shù)
SUB/SBB 目的操作數(shù),源操作數(shù)功能:
ADD: 目的操作數(shù)=目的操作數(shù)+源操作數(shù)
SUB: 目的操作數(shù)=目的操作數(shù)–源操作數(shù)
ADC: 目的操作數(shù)=目的操作數(shù)+源操作數(shù)+CF SBB: 目的操作數(shù)=目的操作數(shù)–源操作數(shù)–CF影響標(biāo)志位:
進(jìn)位標(biāo)志:CF,奇偶標(biāo)志:PF,零標(biāo)志:ZF,符號標(biāo)志:SF
溢出標(biāo)志:OF,輔助進(jìn)位標(biāo)志:AF算術(shù)運算指令DATA SEGMENT VAR8_1 DB 78H VAR8_2 DB 52H VAR8_3 DB 3AH VAR16_1 DW 3411H VAR16_2 DW 3ABCH VAR16_3 DW 4020H VAR32_1 DD 0AABBCCDDH VAR32_2 DD 12345678H VAR32_3 DD 11223344H RESULT1 DB ? RESULT2 DW ? RESULT3 DD ?DATA ENDS例3:8,16,32加減法運算CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,VAR8_1 ;8位運算
ADD AL,VAR8_2 SUB AL,VAR8_3 MOV RESULT1,AL MOV AX,VAR16_1 ;16位運算
ADD AX,VAR16_2 SUB AX,VAR16_3 MOV RESULT2,AX
MOV AX,WORDPTRVAR32_1 ;32位運算
MOV DX,WORDPTRVAR32_1+2 ADD AX,WORDPTRVAR32_2 ADC DX,WORDPTRVAR32_2+2 SUB AX,WORDPTRVAR32_3 SBB DX,WORDPTRVAR32_3+2 MOV WORDPTRRESULT3,AX MOV WORDPTRRESULT3+2,DX MOV AX,4C00H INT 21HCODE ENDS END START
加一、減一指令格式:
INC 操作數(shù)
DEC 操作數(shù)功能: 操作數(shù)加一或減一影響標(biāo)志位: 不影響進(jìn)位標(biāo)志CF,但影響零標(biāo)志ZF。
算術(shù)運算指令
乘除指令格式:
MUL/DIV 源操作數(shù)
IMUL/IDIV 源操作數(shù)功能:
MUL/DIV:無符號數(shù)乘/除法;
IMUL/IDIV:有符號數(shù)乘/除法;
指令只給出源操作數(shù),目的操作數(shù)隱含。算術(shù)運算指令運算被乘/除數(shù)源操作數(shù)結(jié)果8位乘8位AL8位AX16位乘16位AX16位DX:AX16位除8位AX8位商:AL,余數(shù):AH32位除16位DX:AX16位商:AX,余數(shù):DXDATA SEGMENT X DW 25 Y DW 20 Z DW 140 V DW 50 F DW 2DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,X IMUL Y ;DX:AX=X*Y
MOV CX,AX MOV BX,DX ;BX:CX=X*Y MOV AX,Z CWD ;DX:AX=Z ADD CX,AX ADC BX,DX ;BX:CX=X*Y+Z SUB CX,540 SBB BX,0 ;BX:CX=X*Y+Z-540 MOV AX,V CWD ;DX:AX=V SUB AX,CX SBB DX,BX ;DX:AX=V–(X*Y+Z-540) IDIV X ;AX=(V-(X*Y+Z-540))/X(商) ;DX=(V-(X*Y+Z-540))/X(余數(shù)) MOV F,AX MOV F+2,DX MOV AX,4C00H INT 21HCODE ENDS END START2、位運算指令
邏輯運算指令格式:
NOT 目的操作數(shù) AND 目的操作數(shù),源操作數(shù)
OR 目的操作數(shù),源操作數(shù)
XOR 目的操作數(shù),源操作數(shù) TEST 目的操作數(shù),源操作數(shù)功能:
NOT:
目的操作數(shù)按位取反; AND,OR,XOR:目的操作數(shù)與源操作數(shù)按位進(jìn)行與、或、異或運
算,結(jié)果保存在目的操作數(shù)中。 TEST: 作用同AND指令相同,但結(jié)果不保存在目的操作
數(shù)中,只是影響標(biāo)志位。位運算指令
算術(shù)移位指令格式:
SAL 目的操作數(shù),計數(shù)值
SAR 目的操作數(shù),計數(shù)值移位示意圖位運算指令SAL:SAR:
邏輯移位指令格式:
SHL 目的操作數(shù),計數(shù)值
SHR 目的操作數(shù),計數(shù)值移位示意圖位運算指令SHL:SHR:
不帶進(jìn)位位的循環(huán)移位指令格式:
ROL 目的操作數(shù),計數(shù)值
ROR 目的操作數(shù),計數(shù)值移位示意圖位運算指令ROL:ROR:
帶進(jìn)位位的循環(huán)移位指令格式:
RCL 目的操作數(shù),計數(shù)值
RCR 目的操作數(shù),計數(shù)值移位示意圖位運算指令RCL:RCR: DATA SEGMENT DAT1 DW 0109H DATA ENDS CODE SEGMENT … MOV AX,DAT1 MOV CL,4 SHL AH,CL ROL AX,CL ROL AL,CL MOV BYTEPTRDAT1,AL … CODE ENDS …例5:非壓縮BCD碼壓縮BCD碼0109H19H(例3-18)六、分支程序設(shè)計1、比較指令格式:
CMP 目的操作數(shù),源操作數(shù)功能:
同SUB指令相似,但結(jié)果不保存到目的操作數(shù)中,只是
影響標(biāo)志位。2、無條件轉(zhuǎn)移指令格式:
JMP 目標(biāo)地址(標(biāo)號)功能:
無條件轉(zhuǎn)移到目的地址處執(zhí)行,即改變IP的值為目的
地址3、條件轉(zhuǎn)移指令格式:
JX 目的地址(標(biāo)號)
根據(jù)單個標(biāo)志位轉(zhuǎn)移條件轉(zhuǎn)移指令指令條件JC和JNC進(jìn)位標(biāo)志JE/JZ和JNE/JNZ零標(biāo)志JS和JNS符號標(biāo)志JO和JNO溢出標(biāo)志JP/JPE和JNP/JNPE奇偶標(biāo)志條件轉(zhuǎn)移指令指令條件JA/JNBE大于JAE/JNB大于等于JB/JNAE小于JBE/JNA小于等于指令條件JG/JNLE大于JGE/JNL大于等于JL/JNGE小于JLE/JNG小于等于根據(jù)無符號數(shù)的大小轉(zhuǎn)移根據(jù)有符號數(shù)的大小轉(zhuǎn)移DATA SEGMENT XX DB -9 YY DB ?DATA ENDSCODE SEGMENT … MOV AL,XX CMP AL,0 JGE BIGR MOV AL,0FFH MOV YY,AL ;X<0 JMP EXITBIGR: LE EQUL MOV AL,1 MOV YY,AL ;X>0 JMP EXITEQUL: MOV YY,AL ;X=0EXIT: …CODE ENDS END START例6:符號函數(shù)(例3-19)DATA SEGMENT X DW 180 Y DW 850 Z DW 320 MAX DW ?DATA ENDSCODE SEGMENT … MOV AX,X CMP AX,Y JAE XAEY MOV AX,YXAEY: ;AX=max(X,Y) CMP AX,Z JAE XMAX MOV AX,ZXMAX: ;AX=max(X,Y,Z) MOV MAX,AXCODE ENDS END START例7-1:MAX=max(X,Y,Z)DATA SEGMENT X DB -5 Y DB 23 Z DB 7DATA ENDSCODE SEGMENT … MOV AL,X CMP AL,Y JL XLY XCHG AL,Y MOV X,ALXLY: CMP AL,Z JL CMYZ XCHG AL,Z XCHG AL,XCMYZ: MOV AL,Y CMP AL,Z JL EXIT XCHG AL,Z XCHG AL,YEXIT: …例7-2:X=min(X,Y,Z)Y=median(X,Y,Z)Z=max(X,Y,Z)DATA SEGMENT A DW a1,a2,…,a100 Y DD ?DATA ENDSCODE SEGMENT … MOV AX,0 MOV DX,0 ADD AX,A ADC DX,0 ADD AX,A+2 ADC DX,0 … ADD AX,A+198 ADC DX,0 MOV WORDPTRY,AX MOV WORDPTRY+2,DX …七、循環(huán)程序設(shè)計
CODE SEGMENT ASSUME CS:DATA,DS:DATASTART: …
MOV AX,0 MOV DX,0 MOV BX,OFFSETA MOV CX,100LOP:
ADD AX,[BX] ADC DX,0
ADD BX,2 DEC CX
JNZ LOP MOV WORDPTRY,AX MOV WORDPTRY+2,DX …初始化循環(huán)工作循環(huán)修改循環(huán)控制
CODE SEGMENT ASSUME CS:DATA,DS:DATASTART: …
MOV AX,0 MOV DX,0 MOV BX,OFFSETA MOV CX,100LOP:
ADD AX,[BX] ADC DX,0
ADD BX,2 LOOP LOP
MOV WORDPTRY,AX MOV WORDPTRY+2,DX …初始化循環(huán)工作循環(huán)修改循環(huán)控制
循環(huán)指令格式:
LOOP 目標(biāo)地址(標(biāo)號)功能: DEC CX JNZ 目標(biāo)地址說明:
LOOP指令只能進(jìn)行短轉(zhuǎn)移,LOOP指令的地址和目的
地址之間相差必須在-128~+127之間。循環(huán)指令循環(huán)程序結(jié)構(gòu)先執(zhí)行,后判斷先判斷,后執(zhí)行DATA SEGMENT D1 DB -1,-13,6,9,-23,35,-5,123… COUNT EQU $-D1 RS DW ?DATA ENDSCODE SEGMENT … MOV BX,OFFSETD1 MOV CX,COUNT MOV DX,0LOP1: MOV AL,[BX] CMP AL,0 JGE GONEXT INC DXGONEXT: INC BX LOOP LOP MOV RS,DX …例9:RESULT=D1中的負(fù)數(shù)個數(shù)(例3-24)CODE SEGMENT … MOV CX,0LOP: AND AX,AX JZ STOP SAL AX,1 JNC NOD INC CXNOD: JMP LOPSTOP: …例10:CX=AX中1的個數(shù)(例3-25)DATA SEGMENT TEXT DB ‘ChangeLowercaseLetters’ DB ‘ToUppercaseLetters$’DATA ENDSCODE SEGMENT … MOV BX,OFFSETTEXTB20: MOV AL,[BX] CMP AL,‘$’ JE EXIT CMP AL,‘a(chǎn)’ JB B30 CMP AL,‘z’ JA B30 SUB AL,20H MOV [BX],ALB30: INC BX JMP B20EXIT: … 例11:小寫字母變大寫字母堆棧堆棧是一種數(shù)據(jù)存儲結(jié)構(gòu),由棧頂和棧底構(gòu)成的,每次對數(shù)據(jù)的操作都是在棧頂進(jìn)行的;對堆棧數(shù)據(jù)的存取原則是“后進(jìn)先出”。入棧(PUSH)和出棧(POP)指令:PUSH srcSPSP-2[SP+1]&[SP]srcPOP destdest[SP+1]&[SP]SPSP+28086中當(dāng)前堆棧的棧頂由SS:SP指示入棧過程:PUSH AX
假設(shè):SS=9000H,SP=1000H,AX=55AAHSP-1SP:SP=0FFFH;將AHSS:SP中:[90FFFH]=55H;SP-1SP:SP=0FFEH;將ALSS:SP中:[90FFEH]=AAH。8086堆棧操作的過程出棧操作:POP BXSS:SP中的數(shù)據(jù)BL:BL=AAH;SP+1SP:SP=0FFFH;SS:SP中的數(shù)據(jù)BH:BH=55HSP+1SP。8086堆棧操作的過程八、子程序1、調(diào)用指令格式:
CALL 過程名或目的地址調(diào)用指令的分類段內(nèi)直接調(diào)用(NEAR)段間直接調(diào)用(FAR)段內(nèi)間接調(diào)用(NEAR)段間間接調(diào)用(FAR)調(diào)用過程斷點IP入棧,近調(diào)用時壓入偏移地址,遠(yuǎn)調(diào)用時壓入段地址和偏移地址;將目標(biāo)地址的偏移地址送入IP,遠(yuǎn)調(diào)用時還要將目標(biāo)地址的段地址送入CS;2、返回指令
格式:
RET [數(shù)]返回指令的分類近返回:遠(yuǎn)返回:帶彈出值返回
返回過程從棧頂彈出2個字節(jié)放入IP,如果是遠(yuǎn)返回還要彈出2個字節(jié)放入CS;如果是帶彈出值的返回,還要彈出數(shù)個字節(jié),亦即修改SP的值,SPSP+數(shù)。子程序 DATA SEGMENT DAT1 DB 02H,12H,35H,… DAT2 DB 36H,28H,67H,… RESULT DB 10DUP(?) DATA ENDS CODE SEGMENT … MOV BX,OFFSETDAT1 MOV SI,OFFSETDAT2 MOV DI,OFFSETRESULT MOV CX,10 LOP1: MOV AL,[BX]
CALL DTOB MOV DH,AH MOV AL,[SI]
CALL DTOB ADD AH,DH MOV [DI],AH INC BX INC SI INC DI LOOP LOP1例12:兩組各
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年殘疾人就業(yè)合同
- 2025年生鮮食品配送服務(wù)項目可行性研究報告
- 2025年全球貿(mào)易數(shù)字化平臺建設(shè)項目可行性研究報告
- 2025年生物技術(shù)在環(huán)保領(lǐng)域應(yīng)用項目可行性研究報告
- 2025年全球健康監(jiān)測網(wǎng)絡(luò)可行性研究報告
- 主人狗狗協(xié)議書
- 個人申請協(xié)議書
- 北京市2024全國政協(xié)辦公廳直屬單位招聘20人筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 軟件測試職位面試常見問題
- 工程管理人員考試大綱及題庫
- 高層建筑火災(zāi)風(fēng)險評估與管理策略研究
- 綜合管線探挖安全專項施工方案
- GB/T 37507-2025項目、項目群和項目組合管理項目管理指南
- 華為管理手冊-新員工培訓(xùn)
- 社保補(bǔ)繳差額協(xié)議書
- 2025成人有創(chuàng)機(jī)械通氣氣道內(nèi)吸引技術(shù)操作
- 2025年江蘇省職業(yè)院校技能大賽高職組(人力資源服務(wù))參考試題庫資料及答案
- 東北農(nóng)業(yè)大學(xué)教案課程肉品科學(xué)與技術(shù)
- 成都市金牛區(qū)2025屆初三一診(同期末考試)語文試卷
- 如何應(yīng)對網(wǎng)絡(luò)暴力和欺凌行為
- 現(xiàn)代技術(shù)服務(wù)費合同1
評論
0/150
提交評論