




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章十進(jìn)制與二進(jìn)制之間的轉(zhuǎn)換(P2)降冪法除法十進(jìn)制與六進(jìn)制之間的轉(zhuǎn)換(P5)降冪法除法補(bǔ)碼表示:正數(shù):采用符號(hào)絕對(duì)值法 負(fù)數(shù):先寫出對(duì)應(yīng)的正數(shù)的補(bǔ)碼表示,然后再將其按位數(shù)求反,最后末尾加1,就可以得到負(fù)數(shù)的補(bǔ)碼表示補(bǔ)嗎運(yùn)算:二進(jìn)制數(shù)按位求反后在末尾加1第二章一、 存儲(chǔ)容量1K = 1024 =210 (Kilo) 1M =1024K = 220 (Mega) 1G = 1024M = 230 (Giga)1個(gè)二進(jìn)制位:bit (比特) 8個(gè)二進(jìn)制位:Byte(字節(jié)) 1Byte = 8bit2個(gè)字節(jié):1 Word (字) 1Word = 2Byte = 16bit二、 存儲(chǔ)單元地址和內(nèi)容1
2、存儲(chǔ)器以字節(jié)(8 bit)為編程單位2每個(gè)字節(jié)單元都有唯一的地址編碼3地址用無(wú)符號(hào)整數(shù)來(lái)表示(編程用十六進(jìn)制表示)4一個(gè)字要占用相繼的兩個(gè)字節(jié)5低位字節(jié)存入低地址,高位字節(jié)存入高地址6字單元地址用它的低地址來(lái)表示7機(jī)器以偶地址訪問(讀 / 寫)存儲(chǔ)器三、 物理地址 = 16 ´ 段地址 + 偏移地址四、 存儲(chǔ)器的分段:20 根地址線:地址范圍 00000H FFFFFH (1MB)機(jī)器字長(zhǎng)16位:僅能表示地址范圍 0000H FFFFH(64KB)小段:每16個(gè)字節(jié)為一小段,共有64K個(gè)小段段起始地址:小段首地址段的大?。?64K 范圍內(nèi)的任意字節(jié)五、 存儲(chǔ)器的邏輯分段優(yōu)點(diǎn): 允許程
3、序在存儲(chǔ)器內(nèi)重定位;允許實(shí)模式程序在保護(hù)模式下運(yùn)行;有利于程序和數(shù)據(jù)的分離。六、 中央處理器 8086/8088寄存器組:通用寄存器數(shù)據(jù)寄存器:AX,BX,CX,DX變址寄存器:SI、DI 指針寄存器:SP、BP控制寄存器: IP、FLAGS段寄存器:CS、DS、SS、ES七、 標(biāo)志寄存器 ( FLAGS / PSW )條件標(biāo)志位: OF 溢出標(biāo)志 SF符號(hào)標(biāo)志 ZF 零標(biāo)志 CF 進(jìn)位標(biāo)志 AF 輔助進(jìn)位標(biāo)志 PF奇偶標(biāo)志控制標(biāo)志位: DF 方向標(biāo)志 IF中斷標(biāo)志 TF 陷阱標(biāo)志八、 寄存器與存儲(chǔ)器的比較:寄存器:在CPU內(nèi)部 ;訪問速度快;容量小,成本高;用名字表示;沒用地址存儲(chǔ)器:在CP
4、U外部;訪問速度慢;容量大,成本低;用地址表示;地址可用各種方式形成第三章尋址方式操作數(shù)所在位置物理地址(PA)格式注意1.立即尋址存儲(chǔ)器的代碼段無(wú)MOV AL, 5只能用源操作數(shù)操作數(shù)和源操作數(shù)的長(zhǎng)度一致2.寄存器尋址寄存器(唯一)無(wú)MOV AX, BX字節(jié)寄存器只有AH AL BH BL CH CL DH DL CS 不能用 MOV 指令改變,源操作數(shù)和目的操作數(shù)的字長(zhǎng)一致3.直接尋址存儲(chǔ)器段地址+位移量MOV AX,ES:2000HMOV AX,VALUEMOV AX,2000H默認(rèn)的段地址存儲(chǔ)在DS中遇到BP的段地址存儲(chǔ)在SS可以使用段跨越前綴4.寄存器間接尋址存儲(chǔ)器段地址+基址/變址
5、MOV AX,BXMOV AX,ES:BX可用的寄存器:BX BP SI DI不允許使用AX、CX、DX 存放偏移地址(EA)SRC 和 DST 的字長(zhǎng)一致 使用BP時(shí),默認(rèn)的數(shù)據(jù)段是SS,其余都是DS5.寄存器相對(duì)尋址存儲(chǔ)器段地址+基址/變址+位移量MOV AX,COUSIMOV AX,ES:COU+SI MOV AX,COU+SI可以使用段跨越前綴6.基址變址尋址存儲(chǔ)器段地址+基址+變址MOV AX,BX+SIMOV AX,BXSI可以使用段跨越前綴7.相對(duì)基址變址存儲(chǔ)器段地址+基址+變址+位移量MOV AX,MASKBXSIMOV AX.MASKBX+SI可以使用段跨越前綴九、 數(shù)據(jù)傳送
6、指令傳送指令 MOV CPU內(nèi)部寄存器之間的數(shù)據(jù)傳送指令格式:MOV DST, SRC 執(zhí)行操作:(DST) ¬ (SRC)注意: *DST、SRC 不能同時(shí)為段寄存器 MOV DS, ES ´ * DST、SRC 不能同時(shí)為存儲(chǔ)單元 *立即數(shù)不能直接送段寄存器 MOV DS, 2000H ´ * DST 不能是立即數(shù)和CS *不影響標(biāo)志位交換指令 XCHG指令格式:XCHG OPR1, OPR2 執(zhí)行操作:(OPR1) « (OPR2)例:XCHG BX, BP+SI XCHG AL, BH注意: * 兩個(gè)操作數(shù)字長(zhǎng)一致 * 兩個(gè)操作數(shù)都不能是段寄存器
7、 * 兩個(gè)操作數(shù)都不能是立即數(shù) * 兩個(gè)操作數(shù)不能同時(shí)是存儲(chǔ)單元 * 可以采用除立即尋址方式外的任何一種尋址方式。 * 不影響標(biāo)志位地址傳送指令 LEA、LDS、LES 1.有效地址送寄存器指令: LEA REG, SRC 執(zhí)行操作: (REG) ¬ SRC2.指針?biāo)图拇嫫骱虳S指令:LDS REG, SRC 執(zhí)行操作: (REG) ¬ (SRC)(DS) ¬ (SRC+2) 相繼二字 ® 寄存器、DS3.指針?biāo)图拇嫫骱虴S指令: LES REG, SRC 執(zhí)行操作: (REG) ¬ (SRC)(ES) ¬ (SRC+2) 相繼二字
8、® 寄存器、ES 注意: * 源操作數(shù)必須為存儲(chǔ)器操作數(shù) * 目的操作數(shù)必須是一個(gè)16位通用寄存器,不能是段寄存器 * 源操作數(shù)可以是除立即尋址和寄存器尋址以外的任意一種尋址方式 * 不影響標(biāo)志位堆棧操作指令 PUSH、POP1.進(jìn)棧指令: PUSH SRC執(zhí)行操作: (SP) ¬ (SP) 2 ( (SP)+1, (SP) ) ¬ (SRC)出棧指令: POP DST執(zhí)行操作: (DST) ¬ ( (SP)+1, (SP) ) (SP) ¬ (SP) + 2堆棧:先進(jìn)后出的存儲(chǔ)區(qū),段地址存放在SS中,SP在任何時(shí)候都指向棧頂,進(jìn)出棧后自動(dòng)修改
9、SP。注意: * 堆棧操作必須以字為單位。 * 不影響標(biāo)志位 * 不能用立即尋址方式 PUSH 1234H ´ * DST不能是CS POP CS ´堆棧的用途:臨時(shí)保存寄存器的內(nèi)容。PUSH AXPUSH BXPUSH CX ;其間用到AX、BX、CXPOP CX ; 后進(jìn)先出POP BXPOP AX標(biāo)志操作指令 LAHF、SAHF、PUSHF、POPF 、CLC、STC、CMC、CLD、STD、LI、STI標(biāo)志傳送指令: 1.標(biāo)志送AH指令: LAHF 執(zhí)行操作: (AH) ¬ (FLAGS的低字節(jié))2.AH送標(biāo)志寄存器指令:SAHF 執(zhí)行操作: (FLAGS
10、的低字節(jié)) ¬ (AH)注意: * LAHF不影響標(biāo)志位 * SAHF影響CF、PF、AF、ZF、SF標(biāo)志進(jìn)棧指令: PUSHF 執(zhí)行操作:(SP) ¬ (SP) - 2 ( (SP)+1, (SP) ) ¬ (FLAGS)標(biāo)志出棧指令: POPF執(zhí)行操作:(FLAGS) ¬ ( (SP)+1, (SP) ) (SP) ¬ (SP) + 2注意:PUSHF和POPF經(jīng)常一起聯(lián)用,完成保護(hù)、維護(hù)標(biāo)志寄存器的內(nèi)容或改變標(biāo)志位的值。標(biāo)志位操作指令:清進(jìn)位標(biāo)志指令CLC CF 0置進(jìn)位標(biāo)志指令 STC CF 1進(jìn)位標(biāo)志取反指令CMC CF CF清方向標(biāo)
11、志指令CLD DF 0置方向標(biāo)志指令STD DF 1清中斷允許標(biāo)志指令 CLI IF 0 置中斷允許標(biāo)志指令 STI IF 1 注意: * 只影響本指令指定的標(biāo)志十、 加減法指令:加法指令:ADD DST, SRC 執(zhí)行操作: (DST) ¬ (SRC) + (DST)帶進(jìn)位加法指令: ADC DST, SRC 執(zhí)行操作: (DST) ¬ (SRC) + (DST) + CF加1指令: INC OPR 執(zhí)行操作: (OPR) ¬ (OPR) + 1注意: * 除INC指令不影響CF標(biāo)志外,均對(duì)狀態(tài)標(biāo)志位有影響。各加法指令對(duì)條件標(biāo)志位的影響:SF=1,結(jié)果為負(fù) ZF
12、=1,結(jié)果為0 CF=1,和的最高有效位有向高位的進(jìn)位OF=1,兩個(gè)操作數(shù)符號(hào)相同,而結(jié)果符號(hào)與之相反CF 位表示 無(wú)符號(hào)數(shù) 相加的溢出。OF 位表示 帶符號(hào)數(shù) 相加的溢出。減法指令: SUB DST, SRC 執(zhí)行操作: (DST) ¬ (DST) - (SRC)帶借位減法指令: SBB DST, SRC 執(zhí)行操作: (DST) ¬ (DST) - (SRC) - CF減1指令: DEC OPR 執(zhí)行操作: (OPR) ¬ (OPR) - 1求補(bǔ)指令: NEG OPR 執(zhí)行操作: (OPR) ¬ - (OPR)比較指令: CMP OPR1, OPR2
13、執(zhí)行操作: (OPR1) - (OPR2)各減法指令對(duì)條件標(biāo)志位(CF/OF/ZF/SF)的影響:CF=1,被減數(shù)的最高有效位有向高位的借位 或 CF=1減數(shù)轉(zhuǎn)換為加法運(yùn)算時(shí)無(wú)進(jìn)位OF=1 兩個(gè)操作數(shù)符號(hào)相反,而結(jié)果的符號(hào)與減數(shù)相同CF 位表示 無(wú)符號(hào)數(shù) 減法的溢出。OF 位表示 帶符號(hào)數(shù) 減法的溢出。NEG 指令對(duì)CF/OF的影響CF=0,操作數(shù)為0 OF=1,操作數(shù)為-128(字節(jié)運(yùn)算)或-32727(字運(yùn)算十一、 乘除運(yùn)算指令無(wú)符號(hào)數(shù)乘法指令: MUL SRC 帶符號(hào)數(shù)乘法指令: IMUL SRC執(zhí)行操作:字節(jié)操作數(shù) (AX) ¬ (AL) * (SRC) 字操作數(shù) (DX,
14、AX) ¬ (AX) * (SRC)注意: * 目的操作數(shù)必須是累加器 * AL (AX) 為隱含的乘數(shù)寄存器。 * AX (DX,AX) 為隱含的乘積寄存器。 * SRC不能為立即數(shù)。 * 除CF和OF外,對(duì)條件標(biāo)志位無(wú)乘法指令對(duì) CF/OF 的影響:MUL指令: CF,OF =00乘積的高一半為零 11否則IMUL指令: CF,OF =00乘積的高一半是低一半的符號(hào)擴(kuò)展 11否則例:(AX) = 16A5H,(BX) = 0611H(1) MUL BX ; (DX, AX) ¬ (AX) * (BX) ; 16A5*0611=0089 5EF5 ; (DX)=0089H
15、 (AX)=5EF5H CF=OF=1(2) IMUL BL ; (AX) ¬ (AL) * (BL) ; A5*11 Þ 5B*11=060B Þ F9F5 ; (AX) = 0F9F5H CF=OF=1無(wú)符號(hào)數(shù)除法指令: DIV SRC帶符號(hào)數(shù)除法指令: IDIV SRC執(zhí)行操作:字節(jié)操作 (AL) ¬ (AX) / (SRC) 的商 (AH) ¬ (AX) / (SRC) 的余數(shù) 字操作 (AX) ¬ (DX, AX) / (SRC) 的商 (DX) ¬ (DX, AX) / (SRC) 的余數(shù)注意: * AX (DX
16、,AX) 為隱含的被除數(shù)寄存器。 * AL (AX) 為隱含的商寄存器。 * AH (DX) 為隱含的余數(shù)寄存器。 * SRC不能為立即數(shù)。 * 對(duì)所有條件標(biāo)志位均無(wú)定義。十二、 類型轉(zhuǎn)換指令CBW AL ® AX執(zhí)行操作: 若(AL)的最高有效位為0,則(AH)= 00H,若(AL)的最高有效位為1,則(AH)= FFHCWD AX ® (DX,AX)執(zhí)行操作:若(AX)的最高有效位為0,則(DX)= 0000H,若(AX)的最高有效位為1,則(DX)= FFFFH例:(AX) = 0BA45HCBW ; (AX)=0045H CWD ; (DX)=0FFFFH (AX)
17、=0BA45H注意: * 無(wú)操作數(shù)指令 * 隱含對(duì)AL 或AX 進(jìn)行符號(hào)擴(kuò)展* 不影響條件標(biāo)志位十三、 邏輯運(yùn)算指令邏輯非指令:NOT OPR * OPR不能為立即數(shù)執(zhí)行操作: (OPR) ¬ (OPR) * 不影響標(biāo)志位 CFOFSFZFPFAF00*無(wú)定義邏輯與指令:AND DST, SRC 執(zhí)行操作: (DST) ¬ (DST) Ù (SRC)邏輯或指令:OR DST, SRC 執(zhí)行操作: (DST) ¬ (DST) Ú (SRC)異或指令: XOR DST, SRC 執(zhí)行操作: (DST) ¬ (DST) " (SR
18、C)測(cè)試指令: TEST OPR1, OPR2 執(zhí)行操作: (OPR1) Ù (OPR2) 十四、 移位指令邏輯左移 SHL OPR, CNT 邏輯右移 SHR OPR, CNT 算術(shù)左移 SAL OPR, CNT(同邏輯左移) 算術(shù)右移 SAR OPR, CNT 循環(huán)左移 ROL OPR, CNT 循環(huán)右移 ROR OPR, CNT 帶進(jìn)位循環(huán)左移 RCL OPR, CNT 帶進(jìn)位循環(huán)右移 RCR OPR, CNT 注意: * OPR可用除立即數(shù)以外的任何尋址方式 * CNT=1, SHL OPR, 1 CNT>1,MOV CL, CNT SHL OPR, CL ; 以SHL
19、為例 * 條件標(biāo)志位:CF = 移入的數(shù)值 1 CNT=1時(shí),最高有效位的值發(fā)生變化 0 CNT=1時(shí),最高有效位的值不變移位指令: SF、ZF、PF 根據(jù)移位結(jié)果設(shè)置,AF無(wú)定義循環(huán)移位指令:不影響 SF、ZF、PF、AF十五、 控制轉(zhuǎn)移指令:· 無(wú)條件轉(zhuǎn)移指令 JMP· 條件轉(zhuǎn)移指令JZ / JNZ 、 JE / JNE、 JS / JNS、 JO / JNO、JP / JNP、 JB / JNB、 JL / JNL、 JBE / JNBE、JLE / JNLE、 JCXZ · 循環(huán)指令 LOOP、LOOPZ / LOOPE、LOOPNZ / LOOPNE &
20、#183; 子程序調(diào)用和返回指令 CALL、RET· 中斷與中斷返回指令 INT、INTO、IRET十六、 與轉(zhuǎn)移地址有關(guān)的尋址方式:用來(lái)確定轉(zhuǎn)移指令及轉(zhuǎn)子指令的轉(zhuǎn)向地址段內(nèi)尋址 段內(nèi)直接尋址 JMP NEAR PTR NEXT 段內(nèi)間接尋址 JMP TABLE BX 段間尋址 段間直接尋址 JMP FAR PTR NEXT 段間間接尋址 JMP DWORD PTR BX 無(wú)條件轉(zhuǎn)移指令:段內(nèi)直接短轉(zhuǎn)移:JMP SHORT OPR 執(zhí)行操作:(IP) (IP) + 8位位移量段內(nèi)直接近轉(zhuǎn)移:JMP NEAR PTR OPR 執(zhí)行操作:(IP) (IP) + 16位位移量段內(nèi)間接轉(zhuǎn)移:
21、 JMP WORD PTR OPR 執(zhí)行操作:(IP) (EA)段間直接遠(yuǎn)轉(zhuǎn)移:JMP FAR PTR OPR 執(zhí)行操作:(IP) OPR 的段內(nèi)偏移地址 (CS) OPR 所在段的段地址段間間接轉(zhuǎn)移:JMP DWORD PTR OPR 執(zhí)行操作:(IP) (EA) (CS) (EA+2)注意: * 不影響標(biāo)志位十七、 條件轉(zhuǎn)移指令注意: * 只能使用段內(nèi)直接尋址的8 位位移量 * 不影響標(biāo)志位(1) 根據(jù)單個(gè)條件標(biāo)志的設(shè)置情況轉(zhuǎn)移 格式 測(cè)試條件JZ(JE) OPR ZF = 1JNZ(JNE) OPR ZF = 0JS OPR SF = 1JNS OPR SF = 0JO OPR OF =
22、 1JNO OPR OF = 0JP OPR PF = 1JNP OPR PF = 0JC OPR CF = 1JNC OPR CF = 0(2) 比較兩個(gè)無(wú)符號(hào)數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移 格式 測(cè)試條件 JB (JNAE,JC) OPR CF = 1 JNB (JAE,JNC) OPR CF = 0 JBE (JNA) OPR CFZF = 1 JNBE (JA) OPR CFZF = 0* 適用于地址或雙精度數(shù)低位字的比較(3) 比較兩個(gè)帶符號(hào)數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移 * 適用于帶符號(hào)數(shù)的比較 格式 測(cè)試條件 JL (JNGE) OPR SF"OF = 1 JNL (JGE) OPR
23、SF"OF = 0 JLE (JNG) OPR (SF"OF)ZF = 1 JNLE (JG) OPR (SF"OF)ZF = 0 (4) 測(cè)試 CX 的值為 0 則轉(zhuǎn)移 格式 測(cè)試條件 JCXZ OPR (CX)=0十八、 循環(huán)指令注意: * CX 中存放循環(huán)次數(shù)* 只能使用段內(nèi)直接尋址的8 位位移量 * 不影響標(biāo)志位LOOPLOOPZ / LOOPELOOPNZ / LOOPNE執(zhí)行步驟: (1) (CX) (CX) 1 (2)檢查是否滿足測(cè)試條件,如滿足則 (IP) (IP) + 8位位移量,實(shí)行循環(huán); 不滿足則 IP 不變,退出循環(huán)循環(huán)指令:LOOP OP
24、R測(cè)試條件:(CX) ¹ 0為零或相等時(shí)循環(huán)指令:LOOPZ(LOOPE) OPR測(cè)試條件:ZF=1 且 (CX) ¹ 0不為零或不相等時(shí)循環(huán)指令:LOOPNZ(LOOPNE) OPR測(cè)試條件:ZF=0 且 (CX) ¹ 0十九、 例:求首地址為 ARRAY 的 M 個(gè)字之和,結(jié)果存入 TOTALMOV CX, MMOV AX, 0MOV SI, AXAGAIN: ADD AX, ARRAYSIADD SI, 2LOOP AGAINMOV TOTAL, AX二十、 串處理指令· 串處理指令 · 串重復(fù)前綴 LODSB / LODSW REP S
25、TOSB / STOSW REPE / REPZ MOVSB / MOVSW REPNE / REPNZ SCASB / SCASW CMPSB / CMPSWLODS 從串取指令: LODS SRC LODSB (字節(jié)) LODSW (字)執(zhí)行操作: 字節(jié)操作:(AL)(SI), (SI)(SI)±1 字操作:(AX)(SI), (SI)(SI)±2注意: * LODS 指令一般不與 REP 聯(lián)用 * 源串一般在數(shù)據(jù)段中(允許使用段跨越前綴來(lái)修改), 目的串必須在附加段中 * 不影響條件標(biāo)志位STOS 存入串指令:STOS DSTSTOSB (字節(jié))STOSW (字)執(zhí)行
26、操作: 字節(jié)操作:(DI)(AL), (DI)(DI)±1 字操作:(DI)(AX), (DI)(DI)±2MOVS 串傳送指令:MOVS DST, SRCMOVSB (字節(jié))MOVSW (字)例:MOVS ES: BYTE PTR DI, DS: SI執(zhí)行操作:(1) (DI) (SI) (2) 字節(jié)操作:(SI)(SI)±1, (DI)(DI)±1 字操作: (SI)(SI)±2, (DI)(DI)±2 方向標(biāo)志 DF=0 時(shí)用 + ,DF=1 時(shí)用 - 。SCAS 串掃描指令: SCAS DST SCASB (字節(jié)) SCASW
27、 (字)執(zhí)行操作: 字節(jié)操作:(AL) - (DI), (DI)(DI)±1 字操作:(AX) - (DI), (DI)(DI)±2CMPS 串比較指令: CMPS SRC, DSTCMPSB (字節(jié))CMPSW (字)執(zhí)行操作: (1) (SI) - (DI)根據(jù)比較結(jié)果置條件標(biāo)志位:相等 ZF=1;不等 ZF=0 (2) 字節(jié)操作:(SI)(SI)±1, (DI)(DI)±1 字操作: (SI)(SI)±2, (DI)(DI)±2REP (與 MOVS / STOS配合工作)執(zhí)行操作:(1) 如 (CX)=0 則退出 REP,否則
28、轉(zhuǎn)(2) (2) (CX) ¬ (CX) -1 (3) 執(zhí)行 MOVS / STOS / LODS (4) 重復(fù) (1) (3)REP MOVS:將數(shù)據(jù)段中的整串?dāng)?shù)據(jù)傳送到附加段中。源串(數(shù)據(jù)段) 目的串(附加段)執(zhí)行 REP MOVS 之前,應(yīng)先做好:(1) 源串首地址(末地址) SI(2) 目的串首地址(末地址) DI(3) 串長(zhǎng)度 CX(4) 建立方向標(biāo)志 ( CLD 使 DF=0,STD 使 DF=1 ) REPE / REPZ REPNE / REPNZ (與CMPS 和 SCAS配合工作)執(zhí)行操作: (1) 如 (CX)=0 或 ZF=0 (ZF=1) 則退出串操作,否則
29、轉(zhuǎn)(2) (2) (CX)(CX) -1 (3) 執(zhí)行 CMPS / SCAS (4) 重復(fù) (1) (3)例:從一個(gè)字符串中查找一個(gè)指定的字符mess db COMPUTERlea di, mess mov al, T mov cx, 8 cld repne scasb例:比較兩個(gè)字符串,找出它們不相匹配的位置lea si, mess1lea di, mess2mov cx, 8cldrepe cmpsb例:反向傳送lea si, mess1+7lea di, mess2+7mov cx, 8STdrep movsb第四章二十一、 標(biāo)號(hào)和變量(1)標(biāo)號(hào)和變量都是標(biāo)識(shí)符。標(biāo)識(shí)符組成:字母 az
30、 ,數(shù)字 09,專用字符 ? . _ $標(biāo)識(shí)符的組成規(guī)則:最大長(zhǎng)度為31,第一個(gè)字符不能是數(shù)字,不區(qū)分字母的大小寫,不能是匯編語(yǔ)言的保留字(2)標(biāo)號(hào)和變量的異同:不同:標(biāo)號(hào):用于匯編指令語(yǔ)句中,以冒號(hào)結(jié)束,在代碼段中定義,經(jīng)常在轉(zhuǎn)移指令或call指令變量:用于偽指令語(yǔ)句中,不允許有冒號(hào),在數(shù)據(jù)段或附加段中定義,經(jīng)常在操作數(shù)字段出現(xiàn)相同:都有三種屬性:段屬性、偏移屬性、類型屬性二十二、 偽操作是匯編程序?qū)υ闯绦蜻M(jìn)行匯編時(shí)處理的操作,完成處理器選擇、存儲(chǔ)模式定義、數(shù)據(jù)定義、存儲(chǔ)器分配、指示程序開始結(jié)束等功能。處理器選擇偽操作 段定義偽操作程序開始和結(jié)束偽操作 數(shù)據(jù)定義及存儲(chǔ)器分配偽操作表達(dá)式賦值偽
31、操作 地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作基數(shù)控制偽操作二十三、 段定義偽操作data segment ; 定義數(shù)據(jù)段 data ends;-extra segment ; 定義附加段 extra ends;-code segment ; 定義代碼段 assume cs:code, ds:data, es:extrastart: mov ax, data mov ds, ax ; 段地址 ® 段寄存器 code ends end start說(shuō)明:語(yǔ)句序列段假定偽指令A(yù)SSUME格式: ASSUME 段寄存器名:段名(這里只是一種指明,段寄存器的實(shí)際值,必須在程序中使用傳送指令來(lái)賦值,cs除外)二十
32、四、數(shù)據(jù)定義及存儲(chǔ)器分配偽操作: 變量 助記符 操作數(shù) , 操作數(shù) , ; 注釋 助記符:DB DW DD DF DQ DT例:DATA_BYTE DB 10,4,10H,?DATA_WORD DW 100,100H,-5,?LABEL 偽操作: name LABEL type例:BYTE_ARRAY LABEL BYTE WORD_ARRAY DW 50 DUP (?) tos LABEL WORD表達(dá)式名 EQU 表達(dá)式ALPHA EQU 9BETA EQU ALPHA+18BB EQU BP+8說(shuō)明:1、AB EQU DATA_ONE+2 (表達(dá)式中的標(biāo)號(hào)和變量要先定義,例如: DATA
33、_ONE) 2、 “ = ” 偽操作 (允許重復(fù)定義) EMP = 7 EMP = EMP+1 數(shù)值回送操作符: OFFSET、SEG、TYPE、 LENGTH、SIZE OFFSET / SEG 變量 / 標(biāo)號(hào)功能:回送變量或標(biāo)號(hào)的偏址 / 段址TYPE 變量 / 標(biāo)號(hào) / 常數(shù)DBDWDDDFDQDTNEARFAR常數(shù)1246810-1-20LENGTH 變量功能:回送由DUP定義的變量的單元數(shù),其它情況回送1SIZE 變量功能:LENGTH * TYPE例:ARRAY DW 100 DUP (?)TABLE DB ABCDADD SI, TYPE ARRAY ; ADD SI, 2ADD
34、 SI, TYPE TABLE ; ADD SI, 1MOV CX, LENGTH ARRAY ; MOV CX, 100MOV CX, LENGTH TABLE ; MOV CX, 1MOV CX, SIZE ARRAY ; MOV CX, 200MOV CX, SIZE TABLE ; MOV CX, 1屬性操作符: PTR、段操作符、SHORT、 THIS、HIGH、LOW類型 PTR 表達(dá)式 MOV WORD PTR BX, 5段操作符 MOV ES: BX, ALSHORT 標(biāo)號(hào) JMP SHORT NEXTTHIS 類型 TA EQU THIS BYTE TD DW 1234H N
35、EXT EQU THIS FAR MOV AX,2HIGH和LOW CONS EQU 1234H MOV AH, HIGH CONS MOV AL, LOW CONS 第五章二十五、 分支程序設(shè)計(jì)(1) 條件控制(2) 邏輯尺控制(3) 地址跳躍表(值與地址有對(duì)應(yīng)關(guān)系的表)第六章二十六、 CALL 調(diào)用指令段內(nèi)直接近調(diào)用:CALL DST執(zhí)行操作: (SP) (SP) - 2 ( (SP)+1,(SP) ) (IP) (IP) (IP) + 16位位移量段內(nèi)間接近調(diào)用:CALL DST執(zhí)行操作: (SP) (SP) - 2 ( (SP)+1,(SP) ) (IP) (IP) (EA)段間直接遠(yuǎn)
36、調(diào)用:CALL DST執(zhí)行操作: (SP) (SP) - 2 ( (SP)+1,(SP) ) (CS) (SP) (SP) - 2 ( (SP)+1,(SP) ) (IP) (IP) 偏移地址 (CS) 段地址段間間接遠(yuǎn)調(diào)用:CALL DST執(zhí)行操作: (SP) (SP) - 2 ( (SP)+1,(SP) ) (CS) (SP) (SP) - 2 ( (SP)+1,(SP) ) (IP) (IP) (EA) (CS) (EA+2)RET 返回指令段內(nèi)近返回:RET執(zhí)行操作: (IP) ( (SP)+1,(SP) ) (SP) (SP) + 2段內(nèi)帶立即數(shù)近返回:RET EXP段間遠(yuǎn)返回:RE
37、T執(zhí)行操作: (IP) ( (SP)+1,(SP) ) (SP) (SP) + 2 (CS) ( (SP)+1,(SP) ) (SP) (SP) + 2段間帶立即數(shù)遠(yuǎn)返回:RET EXP二十七、 過程定義偽操作 過程名 PROC NEAR ( FAR ) 過程名 ENDP(1)NEAR屬性:調(diào)用程序和子程序在同一代碼段中(段內(nèi)調(diào)用)(2)FAR屬性:調(diào)用程序和子程序不在同一代碼段中(段間調(diào)用)二十八、 子程序調(diào)用與返回子程序調(diào)用:隱含使用堆棧保存返回地址call near ptr subp (1) 保存返回地址 (2) 轉(zhuǎn)子程序call far ptr subp (1) 保存返回地址 (2) 轉(zhuǎn)子程序子程序返回:ret二十九、 保存與恢復(fù)寄存器subt proc far push ax push bx push cx push dx pop dx pop cx pop bx pop ax retsubt endp三十、 子程序參數(shù)傳遞(1) 通過寄存器傳送參數(shù)(2) 通過存儲(chǔ)器傳送參數(shù)(3) 通過地址表傳送參數(shù)地址(4) 通過堆棧傳送參
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育心理學(xué)與科技趨勢(shì)智能教學(xué)系統(tǒng)的心理影響
- 教育政策的未來(lái)走向與挑戰(zhàn)
- 面向未來(lái)的智慧城市物聯(lián)網(wǎng)基礎(chǔ)設(shè)施融資策略探討
- 實(shí)踐中的智慧教育機(jī)器人技術(shù)助力教學(xué)
- 動(dòng)態(tài)學(xué)習(xí)評(píng)估與教育心理學(xué)的結(jié)合
- 教學(xué)機(jī)器人在數(shù)學(xué)輔導(dǎo)中的卓越表現(xiàn)
- 銷售技巧培訓(xùn)課件名稱
- 教育大數(shù)據(jù)與教育公平的探索
- 藥店pop海報(bào)培訓(xùn)課件
- 面向未來(lái)的智能型教學(xué)互動(dòng)機(jī)器人研究
- 天門山污水處理廠二期擴(kuò)建項(xiàng)目環(huán)境影響報(bào)告書
- 婦產(chǎn)科學(xué) 妊娠合并心臟病
- -衛(wèi)生資格-副高-疾病控制-副高-章節(jié)練習(xí)-慢性非傳染性疾病控制-試題(單選題)(共1125題)
- 骨質(zhì)疏松病人的護(hù)理
- 高中英語(yǔ)全國(guó)高考考綱詞匯3600匯總
- GB/T 35068-2018油氣管道運(yùn)行規(guī)范
- GB/T 13277.7-2021壓縮空氣第7部分:活性微生物含量測(cè)量方法
- 2023年婁底冷水江市廣播電視臺(tái)(融媒體中心)招聘筆試模擬試題及答案解析
- 特勞特戰(zhàn)略定位總裁課程課件
- 陳寶光-TTT課程開發(fā)與設(shè)計(jì)(講義)V2.1
- 六年級(jí)開學(xué)主題班會(huì)課件
評(píng)論
0/150
提交評(píng)論