版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第3 3章章從從8088/8086的指令格式入手,論述:的指令格式入手,論述:立即數(shù)尋址方式立即數(shù)尋址方式寄存器尋址方式寄存器尋址方式存儲器尋址方式存儲器尋址方式進(jìn)而熟悉進(jìn)而熟悉8088/8086匯編語言指令格式,尤匯編語言指令格式,尤其是其中操作數(shù)的表達(dá)方法其是其中操作數(shù)的表達(dá)方法為展開為展開8088/8086指令系統(tǒng)做好準(zhǔn)備指令系統(tǒng)做好準(zhǔn)備第三章第三章 指令系統(tǒng)指令系統(tǒng)- -教學(xué)重點(diǎn)教學(xué)重點(diǎn)指令指令:是計(jì)算機(jī)用以控制各部件協(xié)調(diào)動(dòng)作的:是計(jì)算機(jī)用以控制各部件協(xié)調(diào)動(dòng)作的命令;命令; 指令系統(tǒng)指令系統(tǒng):CPUCPU可執(zhí)行的指令的集合;可執(zhí)行的指令的集合; 機(jī)器指令機(jī)器指令:是:是CPUCPU僅
2、能識別的指令的二進(jìn)制代僅能識別的指令的二進(jìn)制代碼,也稱機(jī)器碼碼,也稱機(jī)器碼第一節(jié)第一節(jié) 指令的基本格式指令的基本格式操作碼操作碼說明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、說明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分分操作數(shù)操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象是指令執(zhí)行的參與者,即各種操作的對象有些指令不需要操作數(shù),通常的指令都有一個(gè)或兩有些指令不需要操作數(shù),通常的指令都有一個(gè)或兩個(gè)操作數(shù),也有個(gè)別指令有個(gè)操作數(shù),也有個(gè)別指令有3個(gè)甚至個(gè)甚至4個(gè)操作數(shù)個(gè)操作數(shù)操作碼操作碼操作數(shù)操作數(shù)指令由操作碼和操作數(shù)兩部
3、分組成指令由操作碼和操作數(shù)兩部分組成8086/80888086/8088符號指令的書寫格式符號指令的書寫格式標(biāo)號標(biāo)號后面必須跟冒號,它可缺省。后面必須跟冒號,它可缺省。指令指令是指令功能的代表符號,它是指令語句是指令功能的代表符號,它是指令語句的關(guān)鍵字,不可缺省。的關(guān)鍵字,不可缺省。操作數(shù)操作數(shù)是參加本操作的數(shù)據(jù)。是參加本操作的數(shù)據(jù)。注釋注釋是必須以是必須以“;”開頭的說明部分,可以用開頭的說明部分,可以用英文或中文,注釋允許缺省。英文或中文,注釋允許缺省。標(biāo)號標(biāo)號: 指令助記符指令助記符 操作數(shù)操作數(shù) ;注釋注釋其中帶其中帶 號的標(biāo)號和注釋可以缺省號的標(biāo)號和注釋可以缺省第一節(jié)第一節(jié) 操作數(shù)類
4、型操作數(shù)類型8086/8088系統(tǒng)中的操作數(shù)根據(jù)存放的位置不同,可系統(tǒng)中的操作數(shù)根據(jù)存放的位置不同,可以分為三類:以分為三類:1. 立即數(shù)操作數(shù)立即數(shù)操作數(shù) 作為指令代碼的一部分出現(xiàn)在指令中。通常作為作為指令代碼的一部分出現(xiàn)在指令中。通常作為源操作數(shù)使用。可以是各進(jìn)制數(shù)或一個(gè)可求出確定源操作數(shù)使用。可以是各進(jìn)制數(shù)或一個(gè)可求出確定值的表達(dá)式。其尋址方式為立即數(shù)尋址。值的表達(dá)式。其尋址方式為立即數(shù)尋址。2. 寄存器操作數(shù)寄存器操作數(shù) 是把操作數(shù)存放在是把操作數(shù)存放在CPU內(nèi)部的寄存器中,用來參內(nèi)部的寄存器中,用來參加運(yùn)算或存放結(jié)果。書寫形式就是寄存器的名稱。加運(yùn)算或存放結(jié)果。書寫形式就是寄存器的名
5、稱。其尋址方式為寄存器尋址。其尋址方式為寄存器尋址。3. 存儲器操作數(shù)存儲器操作數(shù) 這種操作數(shù)存放在內(nèi)存儲器中。這種操作數(shù)存放在內(nèi)存儲器中。CPU對存儲器對存儲器操作數(shù)進(jìn)行操作時(shí),指令中提供操作數(shù)在存儲器操作數(shù)進(jìn)行操作時(shí),指令中提供操作數(shù)在存儲器中存放的地址。其尋址方式為存儲器尋址。中存放的地址。其尋址方式為存儲器尋址。4. I/O端口操作數(shù)端口操作數(shù) 這種操作數(shù)放在這種操作數(shù)放在I/O接口的端口中,接口的端口中,CPU通過通過I/O接口與輸入輸出設(shè)備交換信息。其尋址方式為接口與輸入輸出設(shè)備交換信息。其尋址方式為I/O尋址。尋址。第一節(jié)第一節(jié) 操作數(shù)類型操作數(shù)類型第二節(jié)第二節(jié) 操作數(shù)的尋址方式
6、操作數(shù)的尋址方式指令系統(tǒng)設(shè)計(jì)了多種操作數(shù)的來源指令系統(tǒng)設(shè)計(jì)了多種操作數(shù)的來源尋找操作數(shù)地址的過程稱為尋址尋找操作數(shù)地址的過程稱為尋址尋找操作數(shù)存放地址的各種方式叫做尋址方式尋找操作數(shù)存放地址的各種方式叫做尋址方式理解操作數(shù)的尋址方式是理解指令功能的前提理解操作數(shù)的尋址方式是理解指令功能的前提操作數(shù)采取哪一種尋址方式操作數(shù)采取哪一種尋址方式一方面,會(huì)影響處理器執(zhí)行指令的速度和效率一方面,會(huì)影響處理器執(zhí)行指令的速度和效率另一方面,另一方面,對程序設(shè)計(jì)也很重要對程序設(shè)計(jì)也很重要注意:注意:一條指令一般都有源操作數(shù)和目的操作數(shù),要說一條指令一般都有源操作數(shù)和目的操作數(shù),要說明一條指令為何種尋址方式,應(yīng)
7、就源操作數(shù)和目的操明一條指令為何種尋址方式,應(yīng)就源操作數(shù)和目的操作數(shù)分別加以說明。作數(shù)分別加以說明。MOV指令指令1. 立即數(shù)尋址方式立即數(shù)尋址方式指令中的指令中的操作數(shù)直接存放在機(jī)器代碼中操作數(shù)直接存放在機(jī)器代碼中,緊跟在,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)作碼之后的主存單元中)這種操作數(shù)被稱為這種操作數(shù)被稱為立即數(shù)立即數(shù)imm可以是可以是8位數(shù)值位數(shù)值i8(00HFFH)也可以是也可以是16位數(shù)值位數(shù)值i16(0000HFFFFH)立即數(shù)尋址方式常用來給立即數(shù)尋址方式常用來給寄存器寄存器和和存儲單元存儲單元賦值,
8、賦值,多以常量形式出現(xiàn)多以常量形式出現(xiàn)MOV AX, 0102H;AX0102HMOV AL,80H ; AL80H特點(diǎn)及注意事項(xiàng)特點(diǎn)及注意事項(xiàng)執(zhí)行速度快:操作數(shù)是直接從指令中取得執(zhí)行速度快:操作數(shù)是直接從指令中取得立即數(shù)只能作源操作數(shù),不能作目的操作數(shù)立即數(shù)只能作源操作數(shù),不能作目的操作數(shù)主要用來給寄存器或存儲器賦初值主要用來給寄存器或存儲器賦初值8位立即數(shù)可裝入位立即數(shù)可裝入8位或位或16位寄存器,位寄存器,16位立即數(shù)只位立即數(shù)只能裝入能裝入16位寄存器。例如:位寄存器。例如:MOV AL,14H和和MOV AX,14H合法,而合法,而MOV AL,1234H或或MOV BL,123H是
9、錯(cuò)誤的。是錯(cuò)誤的。2. 寄存器尋址方式寄存器尋址方式操作數(shù)存放在操作數(shù)存放在CPU的內(nèi)部寄存器的內(nèi)部寄存器reg中中:8位寄存器位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4個(gè)段寄存器個(gè)段寄存器seg:CS、DS、SS、ES寄存器名表示其內(nèi)容(操作數(shù))寄存器名表示其內(nèi)容(操作數(shù))MOV AX, BX;AXBX2. 寄存器尋址方式寄存器尋址方式執(zhí)行速度快:因操作數(shù)就在執(zhí)行速度快:因操作數(shù)就在CPU內(nèi)部內(nèi)部源操作數(shù)和目的操作數(shù)都可使用寄存器尋址源操作數(shù)和目的操作數(shù)都可使用寄存器尋址注意:源操作數(shù)的長度必須與目
10、的操作數(shù)一致,否注意:源操作數(shù)的長度必須與目的操作數(shù)一致,否則會(huì)出錯(cuò)。則會(huì)出錯(cuò)。例如:例如:MOV CX,AH 盡管盡管CX寄存器放得下寄存器放得下AH的內(nèi)容,但匯編程序不知的內(nèi)容,但匯編程序不知道將它放到道將它放到CH還是還是CL。3. I/O端口尋址(輸入輸出指令中講解)端口尋址(輸入輸出指令中講解)操作數(shù)存放在操作數(shù)存放在I/O端口中端口中直接端口尋址直接端口尋址 IN AL,50H ;將;將50H端口的字節(jié)數(shù)輸入到端口的字節(jié)數(shù)輸入到AL IN AX,60H ;將;將60H和和61H兩個(gè)相鄰端口的兩個(gè)相鄰端口的16位數(shù)位數(shù)據(jù)輸入到據(jù)輸入到AXDX寄存器間接端口尋址寄存器間接端口尋址 MO
11、V DX,383H OUT DX,AL MOV DX,380H IN AX,DX4. 存儲器尋址方式存儲器尋址方式一條指令中,最多只能有一個(gè)存儲器操作數(shù)一條指令中,最多只能有一個(gè)存儲器操作數(shù),或者,或者是源操作數(shù),或者是目的操作數(shù)是源操作數(shù),或者是目的操作數(shù)存儲器尋址方式共有存儲器尋址方式共有24種,按種,按EA的計(jì)算方法不的計(jì)算方法不同又可分為以下幾種:同又可分為以下幾種:1、直接尋址方式、直接尋址方式2、寄存器間接尋址方式、寄存器間接尋址方式3、寄存器相對尋址方式、寄存器相對尋址方式4、基址變址尋址方式、基址變址尋址方式5、相對基址變址尋址方式、相對基址變址尋址方式存儲器尋址的指令,其操作
12、數(shù)總是在代碼段之外存儲器尋址的指令,其操作數(shù)總是在代碼段之外的的數(shù)據(jù)段、堆棧段或附加段數(shù)據(jù)段、堆棧段或附加段的存儲器中,指令給的存儲器中,指令給出的是操作數(shù)尋址信息(邏輯地址)出的是操作數(shù)尋址信息(邏輯地址)第第3章:章: (1)直接尋址方式)直接尋址方式直接尋址方式的有效地址在指令中直接給出直接尋址方式的有效地址在指令中直接給出默認(rèn)的默認(rèn)的段地址在段地址在DS段寄存器,可使用段寄存器,可使用段超越前段超越前綴綴改變,因此,段地址默認(rèn)的情況下,物理地改變,因此,段地址默認(rèn)的情況下,物理地址址PA=DS10H+EA指令中有效地址可以用數(shù)值或符號表示,數(shù)值指令中有效地址可以用數(shù)值或符號表示,數(shù)值必
13、須加一個(gè)必須加一個(gè)方括號方括號,以便與立即數(shù)相區(qū)別,以便與立即數(shù)相區(qū)別MOV AX, 2000H;AXDS:2000HMOV AX, ES: 2000H;AXES:2000H第第3章:章: (1)直接尋址方式)直接尋址方式如果要對如果要對代碼段、堆棧段代碼段、堆棧段或或附加段附加段寄存器所指出的寄存器所指出的存儲區(qū)進(jìn)行直接尋址,應(yīng)在指令中加段超越前綴。存儲區(qū)進(jìn)行直接尋址,應(yīng)在指令中加段超越前綴。例如:數(shù)據(jù)若存放在附加段中,則應(yīng)在有效地址前例如:數(shù)據(jù)若存放在附加段中,則應(yīng)在有效地址前加加“ES:”,這里的冒號稱為修改屬性運(yùn)算符,計(jì),這里的冒號稱為修改屬性運(yùn)算符,計(jì)算物理地址時(shí)要用算物理地址時(shí)要用
14、ES作段地址,而不再是默認(rèn)值作段地址,而不再是默認(rèn)值DS。MOV AX, ES: 2000H;該指令的源操作數(shù)物理地址:該指令的源操作數(shù)物理地址:PAES10H+2000H第第3章:章: (1)直接尋址方式)直接尋址方式在匯編語言中還允許用在匯編語言中還允許用符號地址符號地址代替數(shù)值地代替數(shù)值地址,實(shí)際上就是給存儲單元取一個(gè)名字,址,實(shí)際上就是給存儲單元取一個(gè)名字,這樣,如果要與這些單元打交道,只要使這樣,如果要與這些單元打交道,只要使用其名字就可以了,而不必記住具體數(shù)值用其名字就可以了,而不必記住具體數(shù)值是多少。是多少。MOV AX,DATA1第第3章:章: (2)寄存器間接尋址方式)寄存器
15、間接尋址方式 操作數(shù)放在存儲器中,操作數(shù)的有效地址操作數(shù)放在存儲器中,操作數(shù)的有效地址EA存放在指令指明的寄存器中。寄存器可存放在指令指明的寄存器中。寄存器可以是以是BX、SI、DI、BP其中之一。其中之一。指令中指定的寄存器是指令中指定的寄存器是BX、DI或或SI,則操,則操作數(shù)在當(dāng)前作數(shù)在當(dāng)前DS數(shù)據(jù)段中,其操作數(shù)的物理數(shù)據(jù)段中,其操作數(shù)的物理地址是:地址是: PA=DS10H+MOV AX, BX;AXDS:BX第第3章:章: (2)寄存器間接尋址方式)寄存器間接尋址方式 指令中若指明指令中若指明BP為間址寄存器,則操作數(shù)為間址寄存器,則操作數(shù)在堆棧段中。此時(shí),用在堆棧段中。此時(shí),用SS
16、寄存器內(nèi)容作段寄存器內(nèi)容作段地址,操作數(shù)的實(shí)際地址地址,操作數(shù)的實(shí)際地址PASS10H+BPMOV AX, BP;AXSS:BP若在指令中規(guī)定是段超越的,則若在指令中規(guī)定是段超越的,則BP的內(nèi)容也的內(nèi)容也可以與其它的段寄存器相加,形成操作數(shù)可以與其它的段寄存器相加,形成操作數(shù)地址。地址。MOV AX,DS: BP;AXDS:BP第第3章:章: (3)寄存器相對尋址方式)寄存器相對尋址方式指定指定BX,BP,SI,DI的內(nèi)容進(jìn)行的是間接尋址。的內(nèi)容進(jìn)行的是間接尋址。但是,和寄存器間接尋址方式不同的是:但是,和寄存器間接尋址方式不同的是:指令中還要指定一個(gè)指令中還要指定一個(gè)8位或位或16位的位移量
17、位的位移量DISP,操作數(shù)的有效地址操作數(shù)的有效地址EA則等于則等于間址寄間址寄存器內(nèi)容和位移量之和存器內(nèi)容和位移量之和,結(jié)果按,結(jié)果按16位歸算。位歸算。第第3章:章: (3)寄存器相對尋址方式)寄存器相對尋址方式對于寄存器為對于寄存器為BX,SI,DI的情況,用段寄存器的情況,用段寄存器DS的內(nèi)的內(nèi)容作段首址;而對于寄存器容作段首址;而對于寄存器BP,則使用段寄存器,則使用段寄存器SS的內(nèi)容作段首址。操作數(shù)的實(shí)際地址為:的內(nèi)容作段首址。操作數(shù)的實(shí)際地址為:第第3章:章: (3)寄存器相對尋址方式)寄存器相對尋址方式MOV AX, SI+06H;AXDS:SI+06HMOV AX, 06HS
18、I;AXDS:SI+06H采用寄存器相對尋址的指令,也可使用段超越前綴。采用寄存器相對尋址的指令,也可使用段超越前綴。第第3章:章: (4) 基址變址尋址方式基址變址尋址方式通常將通常將BX和和BP看作看作基址寄存器基址寄存器,將,將SI、DI看作看作變址寄存器變址寄存器。在基址變址尋址方式中。在基址變址尋址方式中存儲器操作數(shù)的有效地址存儲器操作數(shù)的有效地址EA由指令指定的由指令指定的一個(gè)基址寄存器一個(gè)基址寄存器和和一個(gè)變址寄存器一個(gè)變址寄存器的內(nèi)容的內(nèi)容之和確定。之和確定。第第3章:章: (4) 基址變址尋址方式基址變址尋址方式基址在基址在BX,段寄存器使用,段寄存器使用DS;基址在;基址在
19、BP中,段寄存器使用中,段寄存器使用SS。第第3章:章: (4) 基址變址尋址方式基址變址尋址方式MOV AX, BX+SI;AXDS:BX+SIMOV AX, BXSI;AXDS:BX+SI采用基址變址尋址的指令,也可使用段超越前綴采用基址變址尋址的指令,也可使用段超越前綴PA計(jì)算公式中,計(jì)算公式中,BX可與可與SI或或DI組合,組合,BP也可與也可與SI或或DI組合,但組合,但BX不可與不可與BP組合組合第第3章:章: (5) 相對基址變址尋址方式相對基址變址尋址方式操作數(shù)的有效地址操作數(shù)的有效地址EA是由指令指定的一個(gè)是由指令指定的一個(gè)基址寄存器和一個(gè)變址寄存器的內(nèi)容再加基址寄存器和一個(gè)
20、變址寄存器的內(nèi)容再加上上8位或位或16位位移量之和。位位移量之和。第第3章:章: (5) 相對基址變址尋址方式相對基址變址尋址方式對應(yīng)對應(yīng)BX基址寄存器基址寄存器默認(rèn)是默認(rèn)是DS,對應(yīng),對應(yīng)BP基址基址寄存器寄存器默認(rèn)是默認(rèn)是SS;可用段超越前綴改變。;可用段超越前綴改變。MOV AX, BX+DI+6;AXDS:BX+DI+6MOV AX, 6BX+DIMOV AX, 6BXDI第第3章:存儲器尋址方式中的變量章:存儲器尋址方式中的變量變量指示內(nèi)存中的數(shù)據(jù),變量名具有地址變量指示內(nèi)存中的數(shù)據(jù),變量名具有地址屬性。存儲器尋找方式中經(jīng)常采用變量形屬性。存儲器尋找方式中經(jīng)常采用變量形式式變量的定義
21、變量的定義WVAR DW 1234H;定義;定義16位變量位變量WVAR,具有初值,具有初值1234H;假設(shè)其偏移地址為;假設(shè)其偏移地址為10H單獨(dú)引用變量名是直接尋址方式單獨(dú)引用變量名是直接尋址方式MOV AX,WVAR ;指令功能:;指令功能:AX1234H;等同于;等同于 MOV AX,0010H第第3章:相對尋址方式中的位移量章:相對尋址方式中的位移量在寄存器相對和相對基址加變址尋址方式在寄存器相對和相對基址加變址尋址方式中,其位移量不僅可用常量表示,也可用中,其位移量不僅可用常量表示,也可用符號表示符號表示這個(gè)符號可以是變量名,例如這個(gè)符號可以是變量名,例如WVAR變量,變量,而且支
22、持多種表達(dá)形式而且支持多種表達(dá)形式MOV AX, DI+WVAR ;等同于;等同于 MOV AX, WVARDIMOV AX,BX+SI+WVAR;等同于;等同于 MOV AX, WVARBX+SI;等同于;等同于 MOV AX, WVARBXSI對尋址方式作一總結(jié)對尋址方式作一總結(jié)對尋址方式作一總結(jié)對尋址方式作一總結(jié)對尋址方式作一總結(jié)對尋址方式作一總結(jié)對尋址方式作一總結(jié)對尋址方式作一總結(jié)例題:分別指出下列指令中源操作數(shù)和目的操作數(shù)的尋址方例題:分別指出下列指令中源操作數(shù)和目的操作數(shù)的尋址方式。若是存儲器尋址,試用表達(dá)式表示出式。若是存儲器尋址,試用表達(dá)式表示出EA?,?,PA?(1)MOV
23、SI,2100H(2)MOV SI,AX(3)MOV AX,ES:BX(4)MOV AX,BX+SI+20H(5)MOV CX,DISPBX例題例題2:一些寄存器的內(nèi)容和一些存儲單元的內(nèi)容如下圖所示。:一些寄存器的內(nèi)容和一些存儲單元的內(nèi)容如下圖所示。試指出下列各條指令執(zhí)行后,試指出下列各條指令執(zhí)行后,AX中的內(nèi)容。中的內(nèi)容。(1)MOV AX,2010H(2)MOV AX,1200H(3)MOV AX,1100HBX(4)MOV AX,1100HBX+SI1.以下指令中,設(shè)執(zhí)行前:以下指令中,設(shè)執(zhí)行前:DS3000H,BX0600H,SI00B0H,ES2000H,SS1000H,CS=350
24、0H,BP0050H。 (1)執(zhí)行指令)執(zhí)行指令MOV AX,BX后,后,AX( )H,BX( )H, 該指令的源操作數(shù)是(該指令的源操作數(shù)是( )尋址方式。)尋址方式。 (2)執(zhí)行指令)執(zhí)行指令A(yù)DD AX,BXSI,其源操作數(shù)物,其源操作數(shù)物理地址為(理地址為( )H,源操作數(shù)是(,源操作數(shù)是( )尋址方)尋址方式。式。復(fù)習(xí)題復(fù)習(xí)題2.80X86微處理器的尋址方式有微處理器的尋址方式有_、_、_和和_四種。四種。3.根據(jù)以下要求用一條指令寫出相應(yīng)的操作:根據(jù)以下要求用一條指令寫出相應(yīng)的操作:(1)用寄存器)用寄存器BX間接尋址間接尋址2000H內(nèi)存單元,并將內(nèi)存單元,并將2000H單元的內(nèi)
25、容傳送至單元的內(nèi)容傳送至AX寄存器中。寄存器中。(2)用寄存器)用寄存器BX和和SI的基址變址尋址方式把存儲的基址變址尋址方式把存儲器中的一個(gè)字傳送至器中的一個(gè)字傳送至AX寄存器中。寄存器中。MOV指令的功能指令的功能立即數(shù)尋址方式立即數(shù)尋址方式寄存器尋址方式寄存器尋址方式直接尋址方式直接尋址方式間接尋址方式間接尋址方式相對尋址方式相對尋址方式基址變址尋址方式基址變址尋址方式相對基址變址尋址方式相對基址變址尋址方式總結(jié)總結(jié)一、指令的基本格式一、指令的基本格式二、尋址方式二、尋址方式作業(yè)作業(yè)習(xí)題習(xí)題31、習(xí)題、習(xí)題331寄存器間接尋址方式中,操作數(shù)在寄存器間接尋址方式中,操作數(shù)在( )中。中。2
26、. 8086/8088CPU指令系統(tǒng)的操作數(shù)的來源有指令系統(tǒng)的操作數(shù)的來源有( )、( )、( )、( )。3. 下列三條指令語句中,下列三條指令語句中, ( )是錯(cuò)誤的。是錯(cuò)誤的。 AMOV AX,SIDIBMOV AX,200H CMOV AX,ARRAYSI+24. 若(若(CS)5200H時(shí),物理地址為時(shí),物理地址為5A238H,那么(那么(CS)變成)變成7800H時(shí),物理地址為多少?時(shí),物理地址為多少?5. 設(shè)(設(shè)(BX)637DH,(,(SI)2A9BH,位移量,位移量0C237H,(,(DS)3100H,求下列尋址方式產(chǎn),求下列尋址方式產(chǎn)生的有效地址和物理地址:生的有效地址和物
27、理地址:(1)直接尋址;()直接尋址;(2)用)用BX的寄存器間接尋址;的寄存器間接尋址;(3)用)用BX的寄存器相對尋址;的寄存器相對尋址; (4)用)用BX和和SI的的基址變址尋址;(基址變址尋址;(5)用)用BX和和SI的基址變址且相對的基址變址且相對尋址尋址7.將左邊的詞匯和右邊的說明聯(lián)系起來,括號內(nèi)填入所將左邊的詞匯和右邊的說明聯(lián)系起來,括號內(nèi)填入所選的選的A、B、C、D等。等。(1)EU ( ) A 總線接口部件,實(shí)現(xiàn)執(zhí)行總線接口部件,實(shí)現(xiàn)執(zhí)行 部件所需要的所有總線操作部件所需要的所有總線操作(2)BIU ( ) B 唯一代表存儲器空間中的每唯一代表存儲器空間中的每 個(gè)字節(jié)單元的地
28、址個(gè)字節(jié)單元的地址(3)堆棧)堆棧 ( ) C 保存當(dāng)前棧頂偏移地址的寄保存當(dāng)前棧頂偏移地址的寄 存器存器(4)SP ( ) D 以后進(jìn)先出方式工作的存儲空以后進(jìn)先出方式工作的存儲空 間間(5)物理地址)物理地址 ( ) E 執(zhí)行部件,由算術(shù)邏輯單執(zhí)行部件,由算術(shù)邏輯單 元(元(ALU)和寄存器等組成)和寄存器等組成第三節(jié)第三節(jié) 8086/80888086/8088指令系統(tǒng)指令系統(tǒng)8086/80888086/8088指令系統(tǒng)包含指令系統(tǒng)包含133133條基本指令。這些指令條基本指令。這些指令與尋址方式組合,再加上不同的數(shù)據(jù)形式與尋址方式組合,再加上不同的數(shù)據(jù)形式有有的為字處理,有的為字節(jié)處理,
29、可構(gòu)成上千種指的為字處理,有的為字節(jié)處理,可構(gòu)成上千種指令。這些指令按功能可分為六類:令。這些指令按功能可分為六類: 數(shù)據(jù)傳送類數(shù)據(jù)傳送類 算術(shù)運(yùn)算類算術(shù)運(yùn)算類 邏輯運(yùn)算與移位類邏輯運(yùn)算與移位類 串操作類串操作類 控制轉(zhuǎn)移類控制轉(zhuǎn)移類 處理器控制類處理器控制類第三節(jié)第三節(jié) 8086/80888086/8088指令系統(tǒng)指令系統(tǒng)實(shí)現(xiàn)實(shí)現(xiàn)CPUCPU內(nèi)部寄存器之間、內(nèi)部寄存器之間、CPUCPU和存儲器之間以及和存儲器之間以及CPUCPU和和I/OI/O端口之間的數(shù)據(jù)傳送。端口之間的數(shù)據(jù)傳送。3.1 3.1 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令功能功能特點(diǎn)特點(diǎn)含兩個(gè)操作數(shù);含兩個(gè)操作數(shù);除除SAHF和和POP
30、F指令外,數(shù)據(jù)傳送指令不影響標(biāo)志指令外,數(shù)據(jù)傳送指令不影響標(biāo)志寄存器的內(nèi)容寄存器的內(nèi)容重點(diǎn)掌握重點(diǎn)掌握MOV XCHG PUSH POP LEA1. 通用數(shù)據(jù)傳送指通用數(shù)據(jù)傳送指 令令提供方便靈活的通用傳送操作提供方便靈活的通用傳送操作有有4條指令條指令MOVPUSHPOPXCHG(1) 傳送指傳送指 令令MOV(move)指令格式:指令格式:MOV dst,src ;src dst把一個(gè)字節(jié)或字的操作數(shù)從源地址傳送至目把一個(gè)字節(jié)或字的操作數(shù)從源地址傳送至目的地址的地址MOV reg/mem,immMOV reg/mem,imm;立即數(shù)送寄存器或主存;立即數(shù)送寄存器或主存MOV reg/mem
31、/seg,regMOV reg/mem/seg,reg;寄存器送(段)寄存器或主存;寄存器送(段)寄存器或主存MOV reg/seg,memMOV reg/seg,mem;主存送(段)寄存器;主存送(段)寄存器MOV reg/mem,segMOV reg/mem,seg;段寄存器送寄存器或主存;段寄存器送寄存器或主存演示演示MOV指指 令立即數(shù)傳送令立即數(shù)傳送MOV CL,A;CL41HCL41H,字節(jié)傳送,字節(jié)傳送MOV DX,0FFH;DX00FFHDX00FFH,字傳送,字傳送MOV SI,200H;SI0200HSI0200H,字傳送,字傳送MOV BVAR,0AH;字節(jié)傳送字節(jié)傳送;
32、假設(shè);假設(shè)BVARBVAR是一個(gè)字節(jié)變量,定義如下:是一個(gè)字節(jié)變量,定義如下:BVAR BVAR DBDB 0 0 MOV WVAR,0BH;字傳送字傳送;假設(shè);假設(shè)WVARWVAR是一個(gè)字變量,定義如下:是一個(gè)字變量,定義如下:WVAR WVAR DWDW 0 0明確指令是字節(jié)操作還是字操作明確指令是字節(jié)操作還是字操作MOV指令寄存器傳送指令寄存器傳送MOV AH,AL;AHAL,字節(jié)傳送,字節(jié)傳送MOV BVAR,CH;BVARCH ,字節(jié)傳,字節(jié)傳送送MOV AX,BX;AXBX,字傳送,字傳送MOV DS,AX;DSAX,字傳送,字傳送MOV BX,AL ;BXAL,字節(jié)傳送,字節(jié)傳送
33、 寄存器具有明確的字節(jié)和字類型寄存器具有明確的字節(jié)和字類型MOV指令存儲器傳送指令存儲器傳送MOV AL,BX;ALDS:BXMOV DX,BP;DXSS:BP+0MOV DX,BP+4;DXSS:BP+4MOV ES,SI;ESDS:SI 不存在存儲器向存儲器的傳送指令不存在存儲器向存儲器的傳送指令MOV指令段寄存器傳送指令段寄存器傳送MOV SI,DSMOV AX,DS;AXDSMOV ES,AX;ESAXDS 對段寄存器的操作不靈活對段寄存器的操作不靈活例例1: 請指出下列指令中的錯(cuò)誤。請指出下列指令中的錯(cuò)誤。(1)MOV AH,400H(2)MOV DS,2000H (3)MOV BX
34、,SIMOV指令傳送功能圖解指令傳送功能圖解立即數(shù)立即數(shù)段寄存器段寄存器CS DS ES SSCS DS ES SS通用寄存器通用寄存器AX BX CX DXAX BX CX DXBP SP SI DIBP SP SI DI存存儲儲器器 非法指令的主要現(xiàn)象非法指令的主要現(xiàn)象:兩個(gè)操作數(shù)的類型不一致兩個(gè)操作數(shù)的類型不一致無法確定是字節(jié)量還是字量操作無法確定是字節(jié)量還是字量操作兩個(gè)操作數(shù)都是存儲器兩個(gè)操作數(shù)都是存儲器段寄存器之間直接傳送數(shù)據(jù)段寄存器之間直接傳送數(shù)據(jù)立即數(shù)作為目的操作數(shù)立即數(shù)作為目的操作數(shù)CS和和IP作為目的操作數(shù)作為目的操作數(shù)向段寄存器送立即數(shù)向段寄存器送立即數(shù)非非 法指令兩個(gè)操作
35、數(shù)類型不一致法指令兩個(gè)操作數(shù)類型不一致在絕大多數(shù)雙操作數(shù)指令中,目的操作數(shù)和源操在絕大多數(shù)雙操作數(shù)指令中,目的操作數(shù)和源操作數(shù)必須具有一致的數(shù)據(jù)類型,或者同為字量,作數(shù)必須具有一致的數(shù)據(jù)類型,或者同為字量,或者同為字節(jié)量,否則為非法指令或者同為字節(jié)量,否則為非法指令MOV AL, 050AH;非法指令,;非法指令,MOV SI, DL;非法指令,;非法指令, 修正:修正:;MOV AX,050AH 修正:修正:;MOV DH,0;MOV SI,DX非法指令無法確定是字節(jié)量還是字量操作非法指令無法確定是字節(jié)量還是字量操作當(dāng)無法通過任一個(gè)操作數(shù)確定是何種操作類型時(shí),當(dāng)無法通過任一個(gè)操作數(shù)確定是何種
36、操作類型時(shí),需要利用匯編語言的操作符顯式指明需要利用匯編語言的操作符顯式指明MOV BX+SI, 255;非法指令,;非法指令,修正:修正:;MOV BYTE PTR BX+SIBYTE PTR BX+SI,255;BYTE PTR BYTE PTR 說明是字節(jié)操作說明是字節(jié)操作;MOV WORD PTR BX+SIWORD PTR BX+SI,255;WORD PTR WORD PTR 說明是字操作說明是字操作非法指令兩個(gè)操作數(shù)都是存儲器非法指令兩個(gè)操作數(shù)都是存儲器8086指令系統(tǒng)除串操作指令外,不允許兩個(gè)操作指令系統(tǒng)除串操作指令外,不允許兩個(gè)操作數(shù)都是存儲單元(存儲器操作數(shù))數(shù)都是存儲單元
37、(存儲器操作數(shù))MOV BUF2, BUF1;非法指令,;非法指令,修正:修正:;假設(shè);假設(shè)BUF2和和BUF1是兩個(gè)字變量是兩個(gè)字變量;MOV AX,BUF1;MOV BUF2,AX;假設(shè);假設(shè)BUF2和和BUF1是兩個(gè)字節(jié)變量是兩個(gè)字節(jié)變量;MOV AL,BUF1;MOV BUF2,AL非法指令段寄存器的操作有一些限制非法指令段寄存器的操作有一些限制8086指令系統(tǒng)中,能直接對段寄存器操作的指令指令系統(tǒng)中,能直接對段寄存器操作的指令只有只有MOV等個(gè)別傳送指令,并且不靈活等個(gè)別傳送指令,并且不靈活MOV DS, ES;非法指令,;非法指令,修正:修正:;MOV AX,ES;MOV DS,A
38、XMOV DS, 100H;非法指令,;非法指令,修正:修正:;MOV AX,100H;MOV DS,AXMOV CS, SI;非法指令;非法指令一般數(shù)據(jù)傳送指令例子一般數(shù)據(jù)傳送指令例子判斷下列指令的正確性:判斷下列指令的正確性:MOV AL,BXMOV AX,SI05HMOV BXBP,BXMOV DS,1000HMOV DX,09HMOV 1200,SI作業(yè)講評:作業(yè)講評:P112 3.(DS)=2000H,(BX)=0100H,(AX)=1200H,(SI)=0002H, (20100H)=12H,(,(20101H)=34H,(20102H)=56H,(20103H)=78H, (21
39、200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H. 試說明下列各指令單獨(dú)執(zhí)行后相關(guān)寄存器或存儲單元的內(nèi)容。試說明下列各指令單獨(dú)執(zhí)行后相關(guān)寄存器或存儲單元的內(nèi)容。(1) MOV AX,1800H (2) MOV AX,BX(3) MOV BX,1200H (4) MOV DX,1100BX (5) MOV BXSI,AL (6) MOV AX,1100BXSI(2)交換指令交換指令XCHG(exchange)指令格式:指令格式:XCHG dst,src ;dst src實(shí)現(xiàn)實(shí)現(xiàn)CPU內(nèi)部寄存器之間或內(nèi)部寄存器與內(nèi)部寄存器之間或內(nèi)部寄存器與存儲器之
40、間的內(nèi)容交換,不影響標(biāo)志寄存存儲器之間的內(nèi)容交換,不影響標(biāo)志寄存器。器。XCHG reg,reg/memXCHG reg,reg/mem;reg reg reg/memreg/mem演示演示例例: 數(shù)據(jù)交換數(shù)據(jù)交換MOV AX,1199HMOV AX,1199H;AX=1199HAX=1199HXCHG AH,ALXCHG AH,AL;等同于;等同于 XCHG AL,AHXCHG AL,AHMOV WVAR,5566HMOV WVAR,5566H;WVARWVAR是一個(gè)字量變量是一個(gè)字量變量XCHG AX,WVARXCHG AX,WVAR ;等同于;等同于 XCHG WVAR,AXXCHG W
41、VAR,AX XCHG AL,BYTE PTR WVAR+1XCHG AL,BYTE PTR WVAR+1;“BYTE PTR WVAR+1BYTE PTR WVAR+1”強(qiáng)制為字節(jié)量,只取高字強(qiáng)制為字節(jié)量,只取高字節(jié)與節(jié)與ALAL類型交換,否則數(shù)據(jù)類型不匹配類型交換,否則數(shù)據(jù)類型不匹配;AX=9911H;AX=5566H,WVAR=9911H;AX=5599H,WVAR=6611H使用使用XCHG指令時(shí)應(yīng)注意:指令時(shí)應(yīng)注意:dst和和src不能同時(shí)為存儲器操作數(shù);不能同時(shí)為存儲器操作數(shù);任一個(gè)操作數(shù)都不能使用段寄存器和任一個(gè)操作數(shù)都不能使用段寄存器和IP,也不能,也不能使用立即數(shù)。使用立即數(shù)
42、。堆棧的引入堆棧的引入以三層子程序嵌套為例,逐級進(jìn)入子程序時(shí),以三層子程序嵌套為例,逐級進(jìn)入子程序時(shí),A、B、C三點(diǎn)都有斷點(diǎn)和現(xiàn)場需要保護(hù),順序?yàn)槿c(diǎn)都有斷點(diǎn)和現(xiàn)場需要保護(hù),順序?yàn)锳BC;當(dāng)子程序當(dāng)子程序sub3執(zhí)行結(jié)束,逐級返回時(shí),最后被保護(hù)執(zhí)行結(jié)束,逐級返回時(shí),最后被保護(hù)的的C點(diǎn)數(shù)據(jù)應(yīng)最先恢復(fù),最先保護(hù)的點(diǎn)數(shù)據(jù)應(yīng)最先恢復(fù),最先保護(hù)的A點(diǎn)數(shù)據(jù)應(yīng)最后點(diǎn)數(shù)據(jù)應(yīng)最后恢復(fù)。為此,通常在內(nèi)存中開辟一段區(qū)域,結(jié)合軟硬恢復(fù)。為此,通常在內(nèi)存中開辟一段區(qū)域,結(jié)合軟硬件技術(shù),使其具有保護(hù)數(shù)據(jù)和后進(jìn)先出的功能。件技術(shù),使其具有保護(hù)數(shù)據(jù)和后進(jìn)先出的功能。A AB BC Cmainmainsub1sub1sub2s
43、ub2sub3sub3(3) 堆棧操作指令堆棧操作指令l 堆棧以堆棧以“后進(jìn)先出后進(jìn)先出”或或“先進(jìn)后出先進(jìn)后出”的原則存取信的原則存取信息息l 存取地址由一個(gè)專門的地址寄存器存取地址由一個(gè)專門的地址寄存器SP來管理來管理l 堆棧段段基址由堆棧段段基址由SS提供,偏移地址由提供,偏移地址由SP提供提供l 棧頂棧頂:堆棧指針始終指向堆棧中最后存入信息的那:堆棧指針始終指向堆棧中最后存入信息的那個(gè)單元,稱該單元為棧頂。個(gè)單元,稱該單元為棧頂。l 棧底:棧底:在信息的存與取的過程中,棧頂是不斷移動(dòng)在信息的存與取的過程中,棧頂是不斷移動(dòng)的,也稱它為堆棧區(qū)的動(dòng)端,而堆棧區(qū)的另端則是固的,也稱它為堆棧區(qū)的
44、動(dòng)端,而堆棧區(qū)的另端則是固定不變的,這端我們又稱其為棧底。定不變的,這端我們又稱其為棧底。SP初始化堆棧:初始化堆棧:堆棧只有兩種基本操作:進(jìn)棧和出棧,對應(yīng)堆棧只有兩種基本操作:進(jìn)棧和出棧,對應(yīng)兩條指令兩條指令PUSH和和POP進(jìn)棧指令進(jìn)棧指令PUSH指令格式:指令格式:PUSH srcPUSH srcSP-1SP-1SP,srcSP,srcH H(SP), (SP), SP-1SP-1SP, srcSP, srcL L(SP)(SP)該指令不影響標(biāo)志寄存器。該指令不影響標(biāo)志寄存器。PUSH r16/m16/segPUSH r16/m16/seg;SPSPSPSP2 2;SS:SPr16/m1
45、6/segSS:SPr16/m16/seg演示演示例如:例如:PUSH AX PUSH 2000H PUSH CSMOV SS,1050HMOV SP,000EHPUSH AX (設(shè) AX=1234H)PUSH BX (設(shè) BX=5CF8H)例題:出棧指令出棧指令POP指令格式:指令格式:POP dstPOP dst(SP) (SP) dstdstL L,SPSP1 1SP,SP,( (SP)SP)dstdstH H,SP+1,SP+1SPSP該指令不影響標(biāo)志寄存器。該指令不影響標(biāo)志寄存器。POP r16/m16/segPOP r16/m16/seg; r16/m16/segSS:SPr16/
46、m16/segSS:SP;SPSPSPSP2 2POP BXPOP 2000HPOP DS演示演示堆棧操作注意事項(xiàng):堆棧操作注意事項(xiàng):堆棧操作的單位是字,進(jìn)棧和出棧只針對字量堆棧操作的單位是字,進(jìn)棧和出棧只針對字量字量數(shù)據(jù)從棧頂壓入和彈出時(shí),都是低地址字節(jié)字量數(shù)據(jù)從棧頂壓入和彈出時(shí),都是低地址字節(jié)送低字節(jié),高地址字節(jié)送高字節(jié)送低字節(jié),高地址字節(jié)送高字節(jié)CS寄存器可進(jìn)棧,但不能隨意彈出一個(gè)數(shù)據(jù)到寄存器可進(jìn)棧,但不能隨意彈出一個(gè)數(shù)據(jù)到CS堆棧容量有限,因此進(jìn)棧和出棧要成對出現(xiàn),否堆棧容量有限,因此進(jìn)棧和出棧要成對出現(xiàn),否則將有數(shù)據(jù)殘留在堆棧中,時(shí)間一長,堆棧會(huì)滿則將有數(shù)據(jù)殘留在堆棧中,時(shí)間一長,堆
47、棧會(huì)滿的!的!進(jìn)棧和出棧指令用于程序保存或恢復(fù)數(shù)據(jù)或中斷進(jìn)棧和出棧指令用于程序保存或恢復(fù)數(shù)據(jù)或中斷時(shí)保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。時(shí)保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。輸入輸入/輸出(輸出(I/O)指令)指令執(zhí)行輸入指令時(shí),執(zhí)行輸入指令時(shí),CPU可以從一個(gè)可以從一個(gè)8位端口讀位端口讀入入1個(gè)字節(jié)到個(gè)字節(jié)到AL中,也可以從兩個(gè)連續(xù)的中,也可以從兩個(gè)連續(xù)的8位端口讀位端口讀1個(gè)字到個(gè)字到AX中。中。例:例:IN AL,50H;IN AX,70H將將50H端口的字節(jié)讀入端口的字節(jié)讀入AL將將70H、71H兩端口的值讀入兩端口的值讀入AX2. 輸入輸入/輸出指令(輸出指令(累加器專用傳送指令)2. 輸入輸入/輸出指令(輸出指令
48、(累加器專用傳送指令)(1)輸入指令)輸入指令I(lǐng)N AL,PORT ;將將port端口字節(jié)數(shù)據(jù)輸入到端口字節(jié)數(shù)據(jù)輸入到ALIN AX,PORT ;將將port和和port1兩端口的內(nèi)容輸入兩端口的內(nèi)容輸入到到AX,其中,其中port的內(nèi)容輸入到的內(nèi)容輸入到AL,port1的內(nèi)的內(nèi)容輸入到容輸入到AHIN AL,DX ;從從DX所指的端口中輸入一字節(jié)到所指的端口中輸入一字節(jié)到ALIN AX,DX ;從從DX和和DX1所指的兩個(gè)端口輸一個(gè)字所指的兩個(gè)端口輸一個(gè)字到到AX,低地址端口的值輸?shù)?,低地址端口的值輸?shù)紸L,高地址端口的,高地址端口的值輸?shù)街递數(shù)紸H(2)輸出指令)輸出指令OUT PORT
49、, AL ;將將AL中的一個(gè)字節(jié)數(shù)據(jù)輸出到中的一個(gè)字節(jié)數(shù)據(jù)輸出到PORT端口端口OUT PORT, AX;將將AX中的字?jǐn)?shù)據(jù)輸出到中的字?jǐn)?shù)據(jù)輸出到PORT和和PORT+1兩端口兩端口OUT DX,AL ;將將AL中的字節(jié)輸出到中的字節(jié)輸出到DX所指的端口所指的端口OUT DX,AX ;將將AL中低位字節(jié)輸出到中低位字節(jié)輸出到DX所指的端口,所指的端口,同時(shí)將同時(shí)將AH中的高位字節(jié)輸出到中的高位字節(jié)輸出到DX1所指的端口所指的端口例:從端口例:從端口2F0H輸入數(shù)據(jù)的程序段為:輸入數(shù)據(jù)的程序段為:MOV DX,02F0HIN AX,DX8086的地址的地址目標(biāo)傳送指令是用來對尋址機(jī)構(gòu)進(jìn)目標(biāo)傳送指
50、令是用來對尋址機(jī)構(gòu)進(jìn)行控制的。此類指令傳送到行控制的。此類指令傳送到16位目標(biāo)寄存器中的位目標(biāo)寄存器中的是存儲器是存儲器操作數(shù)的地址操作數(shù)的地址,而不是它的內(nèi)容。,而不是它的內(nèi)容。3.地址地址目標(biāo)傳送指令目標(biāo)傳送指令這類指令有這類指令有3條:條:LEALDSLES將存儲器操作數(shù)的有效地址送至指定的將存儲器操作數(shù)的有效地址送至指定的16位通用位通用寄存器寄存器(1)有效地址送寄存器()有效地址送寄存器(LEA)指令)指令LEA r16, src;src的的EA r16例:例:MOV BX,400HMOV SI,3CHLEA BX,BX+SI+0F62H;BX400H3CH0F62H139EH例例
51、 : 地址傳送與內(nèi)容傳送地址傳送與內(nèi)容傳送WVAR DW 4142H;假設(shè)偏移地址為;假設(shè)偏移地址為04HMOV AX,WVAR;內(nèi)容傳送:;內(nèi)容傳送:AX4142HLEA SI,WVAR;地址傳送:;地址傳送:SI0004H;等同于;等同于 LEA SI, 0004HMOV CX,SI;內(nèi)容傳送:;內(nèi)容傳送:CX4142HMOV DI, OFFSET WVAR;MOV DI,0004H;利用操作符;利用操作符OFFSET獲取變量的有效地址獲取變量的有效地址MOV DX,DI ;內(nèi)容傳送:;內(nèi)容傳送:DX4142H該指令完成一個(gè)該指令完成一個(gè)32位地址指針的傳送。地址指針包括段地址位地址指針的
52、傳送。地址指針包括段地址和偏移量部分。指令把源操作數(shù)和偏移量部分。指令把源操作數(shù)src指定的指定的4個(gè)字節(jié)地址指個(gè)字節(jié)地址指針傳送到兩個(gè)目標(biāo)寄存器。針傳送到兩個(gè)目標(biāo)寄存器。(2)數(shù)據(jù)段指針?biāo)图拇嫫鳎?shù)據(jù)段指針?biāo)图拇嫫鱈DS指令指令LDS r16, src;其中,地址指針的前;其中,地址指針的前2個(gè)字節(jié)(低地址中個(gè)字節(jié)(低地址中的字)傳到某一寄存器的字)傳到某一寄存器r16(通常為(通常為SI),),后后2個(gè)字節(jié)(高地址中的字)傳到個(gè)字節(jié)(高地址中的字)傳到DS中。中。例:例:LDS SI,2100在指令執(zhí)行前,設(shè)在指令執(zhí)行前,設(shè)(DS)=3000H,在,在DS段中,段中,有效地址有效地址EA為
53、為21002103H的的4個(gè)字節(jié),其個(gè)字節(jié),其中存放著一個(gè)地址指針,中存放著一個(gè)地址指針,如圖所示如圖所示,則指令,則指令執(zhí)行后,執(zhí)行后,SI=0140H,DS2000H該指令和該指令和LDS r16, src功能類似,不同的只是用功能類似,不同的只是用ES代替代替DS,這時(shí)常指定,這時(shí)常指定DI作寄存器作寄存器r16。(3)附加段指針?biāo)图拇嫫鳎└郊佣沃羔標(biāo)图拇嫫鱈ES指令指令LES r16, src;其中,地址指針的前;其中,地址指針的前2個(gè)字節(jié)傳到某一個(gè)字節(jié)傳到某一寄存器寄存器R16中,后中,后2個(gè)字節(jié)傳到個(gè)字節(jié)傳到ES中。中。使用使用LDS和和LES指令時(shí)應(yīng)注意:指令時(shí)應(yīng)注意:R16不能
54、使用段寄存器不能使用段寄存器Src一定是存儲器操作數(shù),其尋址方式可以一定是存儲器操作數(shù),其尋址方式可以是以前所學(xué)存儲器尋址中的一種是以前所學(xué)存儲器尋址中的一種 通過這些指令可以讀出當(dāng)前標(biāo)志寄存器中各通過這些指令可以讀出當(dāng)前標(biāo)志寄存器中各狀態(tài)位的內(nèi)容,也可以對各狀態(tài)位設(shè)置新的值。狀態(tài)位的內(nèi)容,也可以對各狀態(tài)位設(shè)置新的值。這類指令有這類指令有4條。源操作數(shù)和目的操作數(shù)都隱含在條。源操作數(shù)和目的操作數(shù)都隱含在操作碼中。操作碼中。4.標(biāo)志傳送指令標(biāo)志傳送指令這類指令有這類指令有4條:條:LAHFSAHFPUSHFPOPF(1)讀取標(biāo)志指令()讀取標(biāo)志指令(LAHF)LAHF;FLAH,標(biāo)志寄存器低,標(biāo)
55、志寄存器低8位送位送AH15 14 13 12 11 109876543210 OF DF IF TF SF ZF AF PF CFD7D6D4D2D0(2)設(shè)置標(biāo)志指令()設(shè)置標(biāo)志指令(SAHF)SAHF; AH FL,AH,AH的內(nèi)容送的內(nèi)容送標(biāo)志寄存器低標(biāo)志寄存器低8位位15 14 13 12 11 109876543210 OF DF IF TF SF ZF AF PF CFD7D6D4D2D0(3)標(biāo)志寄存器的入棧指令()標(biāo)志寄存器的入棧指令(PUSHF)和出棧指令()和出棧指令(POPF)PUSHF ; 標(biāo)志寄存器的內(nèi)容入棧標(biāo)志寄存器的內(nèi)容入棧同時(shí)修改堆棧指針同時(shí)修改堆棧指針:(S
56、P-2) SP。POPF ; 將堆棧頂部的一個(gè)字彈出將堆棧頂部的一個(gè)字彈出到標(biāo)志寄存器,同時(shí)修改堆棧指針到標(biāo)志寄存器,同時(shí)修改堆棧指針 :(SP2) SP。這兩條指令分別可以用作在中斷服務(wù)程序和這兩條指令分別可以用作在中斷服務(wù)程序和子程序的應(yīng)用中,保存主程序的標(biāo)志和恢子程序的應(yīng)用中,保存主程序的標(biāo)志和恢復(fù)主程序的標(biāo)志。復(fù)主程序的標(biāo)志。MOV指令的功能指令的功能XCHG指令的功能指令的功能XLAT指令的功能指令的功能PUSH指令的功能指令的功能POP指令的功能指令的功能LDS指令指令DS=3000HEA=2100H32100HSIDS總結(jié)總結(jié)一、數(shù)據(jù)傳送類指令一、數(shù)據(jù)傳送類指令通用傳送指令(通用
57、傳送指令(MOV、PUSH、POP、XCHG)累加器專用傳送指令(累加器專用傳送指令(IN、OUT)地址地址目標(biāo)傳送指令(目標(biāo)傳送指令(LEA、LDS、LES)3.在堆棧內(nèi),有效地址為在堆棧內(nèi),有效地址為2500H到到2505H單元內(nèi)依次單元內(nèi)依次存放存放10H、20H、30H、40H、50H、60H六個(gè)數(shù),已六個(gè)數(shù),已知知SP=2502H,執(zhí)行,執(zhí)行POP BX指令后,有指令后,有( )。 ASP=2502H,BX=1020H BSP=2504H,BX=4030H CSP=2504H,BX=3040H DSP=2500H,BX=2010H4.假定假定SS=2000H,SP=0100H,AX=
58、2107H,執(zhí),執(zhí)行指令行指令PUSH AX后,存放數(shù)據(jù)后,存放數(shù)據(jù)21H的物理地址是的物理地址是( )。 A20102H B20101H C200FEH D200FFH5.交換寄存器交換寄存器SI、DI的內(nèi)容,正確的程序段是的內(nèi)容,正確的程序段是( )。 AMOV AX,SI MOV BX,DI XCHG BX,AXCMOV AX,SI MOV SI,AX MOV DI,AX BPUSH SI PUSH DI POP DI POP SI D PUSH SI PUSH DI POP SI POP DI6.若已知若已知SP=2000H, AX=1234H, BX=5678H 執(zhí)行指令執(zhí)行指令 P
59、USH AX PUSH BX POP AX POP BX 執(zhí)行后,執(zhí)行后,SP= ,AX= ,BX= 。7. BX=1000H,DS=2000H,(,(21000H)=3000H,(,(23000H)=4000H,則則 XCHG BX,BX 執(zhí)行完后執(zhí)行完后BX= H (BX)= H(一個(gè)字的內(nèi)(一個(gè)字的內(nèi)容)容) (BX)= = H(21000H)= H(一個(gè)字的內(nèi)容)(一個(gè)字的內(nèi)容)8. SP=1000H,SS=3000H,(,(31000H)=2000H,DS=4000H,BX=1200H,則,則 POP BX 指令執(zhí)行完后指令執(zhí)行完后SP= H, BX= H (41200H)= H(一
60、個(gè)字的內(nèi)容)(一個(gè)字的內(nèi)容)第第3章:章:3.2 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令用來執(zhí)行二進(jìn)制的算術(shù)運(yùn)算術(shù)運(yùn)算類指令用來執(zhí)行二進(jìn)制的算術(shù)運(yùn)算:算:加減乘除加減乘除。這類指令會(huì)根據(jù)運(yùn)算結(jié)果影響這類指令會(huì)根據(jù)運(yùn)算結(jié)果影響狀態(tài)標(biāo)志狀態(tài)標(biāo)志,有時(shí)要利用某些標(biāo)志才能得到正確的結(jié)果;有時(shí)要利用某些標(biāo)志才能得到正確的結(jié)果;使用他們時(shí)請留心有關(guān)狀態(tài)標(biāo)志。使用他們時(shí)請留心有關(guān)狀態(tài)標(biāo)志。重點(diǎn)掌握重點(diǎn)掌握加法指令:加法指令:ADD、ADC、INC 減法指令:減法指令:SUB 、SBB、DEC、CMP、NEG第第3章:章:3.2 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令(1)作為無符號數(shù)作為無符號數(shù) 作為帶符號數(shù)作為
溫馨提示
- 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)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融法務(wù)試題及答案
- 高頻教輔崗位面試題及答案
- 廠區(qū)安全考試試題及答案
- 《中國的行政區(qū)劃》教學(xué)設(shè)計(jì)(湘教版·八年級地理上冊)
- 精研主謂一致·賦能精準(zhǔn)表達(dá)-初中英語中考語法復(fù)習(xí)課教學(xué)設(shè)計(jì)
- 初中音樂八年級下冊《草原上》民族器樂合奏欣賞教學(xué)設(shè)計(jì)
- 小學(xué)英語四年級下冊Unit 3 Weather核心詞匯探究式教學(xué)設(shè)計(jì)
- 小學(xué)信息技術(shù)五年級上冊《信息共享》教學(xué)設(shè)計(jì)
- 專業(yè)教師考試試題及答案
- 安全類考試試題及答案
- 2025屆高考小說專題復(fù)習(xí)-小說敘事特征+課件
- 部編版二年級下冊寫字表字帖(附描紅)
- 干部履歷表(中共中央組織部2015年制)
- GB/T 5657-2013離心泵技術(shù)條件(Ⅲ類)
- GB/T 3518-2008鱗片石墨
- GB/T 17622-2008帶電作業(yè)用絕緣手套
- GB/T 1041-2008塑料壓縮性能的測定
- 400份食物頻率調(diào)查問卷F表
- 滑坡地質(zhì)災(zāi)害治理施工
- 實(shí)驗(yàn)動(dòng)物從業(yè)人員上崗證考試題庫(含近年真題、典型題)
- 可口可樂-供應(yīng)鏈管理
評論
0/150
提交評論