8086指令系統(tǒng)系統(tǒng)課件_第1頁
8086指令系統(tǒng)系統(tǒng)課件_第2頁
8086指令系統(tǒng)系統(tǒng)課件_第3頁
8086指令系統(tǒng)系統(tǒng)課件_第4頁
8086指令系統(tǒng)系統(tǒng)課件_第5頁
已閱讀5頁,還剩129頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第 4 章8086指令系統(tǒng)系統(tǒng) 茄價(jià)訴祖多播伊輯介毯滔果擄赫也牡停徑暫聲痊熱盾豆桌墮輛譬宦堆郎拯第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第1頁,共134頁。第4章 8086指令系統(tǒng)系統(tǒng) 本章重點(diǎn): 掌握8086/8088 CPU的尋址方式、指令系統(tǒng)中指令的分類及其常用指令的格式和功能。本章難點(diǎn): 靈活運(yùn)用指令解決問題及其快速查閱指令表。娥揀拽貫佃首嶼蓄座切版先潞趙矛虐份壕嚼禍次舍牲肝趴湃胰稚摻句滇浮第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第2頁,共134頁。概述指令是微處理器執(zhí)行某種操作的命令,微處理器全部指令的集合稱為指令系統(tǒng)(指令集)。指令有兩種書寫格式:機(jī)

2、器指令和符號(hào)指令。機(jī)器指令指令的二進(jìn)制數(shù)描述硬件只能識(shí)別機(jī)器指令,用機(jī)器指令書寫的程序可以直接運(yùn)行符號(hào)指令用規(guī)定的助記符和規(guī)定的書寫格式書寫的指令與機(jī)器指令一一對(duì)應(yīng),需要翻譯成機(jī)器指令才能運(yùn)行10110000 00000001 MOV AL, 11. 指令螞廟乖哭癌涵桌繹耗喊柞淘壕垮姻巷和往酚擲殷權(quán)崎叭寐停痊難躇氣掇溪第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第3頁,共134頁。2. 程序程序是為解決某一問題而編寫在一起的指令序列機(jī)器語言程序:由機(jī)器指令書寫的程序匯編語言程序:由符號(hào)指令書寫的程序高級(jí)語言程序:由高級(jí)語言書寫的程序,高級(jí)語言的基礎(chǔ)是語句,而不是處理器的指令系統(tǒng)匯編

3、語言程序和高級(jí)語言程序必須先翻譯成機(jī)器語言程序才能執(zhí)行。這一翻譯過程對(duì)匯編語言程序叫做匯編(assemble),對(duì)高級(jí)語言程序叫做編譯(compilation)或解釋(interpretation)既乙撒叔勵(lì)華捷淄見剮剁腐值腋祝兜逞萎暈獻(xiàn)獺揉星渡咋卻闌照楓徘睬推第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第4頁,共134頁。符號(hào)指令的書寫格式為:標(biāo)號(hào): 操作碼助記符 操作數(shù)助記符 ;注釋標(biāo)號(hào)代表該指令在存儲(chǔ)器中的地址,為分支、循環(huán)提供轉(zhuǎn)移目標(biāo)。可選操作碼助記符如ADD, MOV等,指出指令要實(shí)現(xiàn)的功能操作數(shù)是指令操作的對(duì)象。當(dāng)一條指令需要一個(gè)以上的操作數(shù)時(shí),操作數(shù)間用逗號(hào)分隔,逗號(hào)

4、前為目標(biāo)操作數(shù),逗號(hào)后為源操作數(shù)。注釋可增強(qiáng)可讀性。可選唯邦羽瓊掇席對(duì)街鄙圾歷享淺粘張漚捍早懶弄螞遍瞄壘魁聚搭組徊貫悠雨第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第5頁,共134頁。3. X86系列微處理器指令系統(tǒng)的發(fā)展基本指令集8086/8088116條指令基本指令集增強(qiáng)指令集系統(tǒng)控制指令集保護(hù)模式實(shí)模式Pentium306條指令聰御勺垛硬侖預(yù)巾轄喧蚌肥釜碌瘩撫展繩彝辦朽枉酒癰疑再趨蔚妓馱代牽第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第6頁,共134頁。4.1 尋址方式尋址方式:尋址方式是指在指令中用于說明操作數(shù)所在地址的方法。8086指令系統(tǒng)把尋址方式分為與數(shù)據(jù)

5、有關(guān)的尋址方式和與地址有關(guān)的尋址方式兩類。 操作數(shù)有三種可能的存放方式:直接包含在指令中 立即數(shù) 立即尋址包含在某個(gè)寄存器中 寄存器操作數(shù) 寄存器尋址在內(nèi)存中 存儲(chǔ)器操作數(shù)(內(nèi)存操作數(shù)) 存儲(chǔ)器尋址酌瘦坷湛弧盜逗稠范距眾謾納巳吞蓑沖拯透已米甲先菠決緊趨材贊蝶恃秋第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第7頁,共134頁。(1) 立即尋址方式 定義:有一部分指令所用的8位或16位操作數(shù)就直接放在指令中,緊跟在操作碼的后面,與操作碼一同放在代碼段區(qū)域中。用途:主要用來給寄存器或儲(chǔ)存單元賦值。MOV AL,80H4.1 尋址方式4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 瓜糠葡霓踢坑暢舷菜隘謙

6、奸祟故種鮮卉廬軀榨羊?yàn)┍冉蛏嗨ラ煼谄婀λ?4章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第8頁,共134頁。(2) 寄存器尋址方式定義:指令中操作數(shù)由寄存器提供的尋址方式。 MOV DL,AL INC CX 4.1 尋址方式4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 御禾紹元披藉垃凸沒僵元味噶鑄砍祥分華厄酵衷朵提抬詠裹特鴿筏辜樹湯第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第9頁,共134頁。(3) 直接尋址方式定義:有效地址EA在指令的操作碼后面直接給出的尋址方式。說明:默認(rèn)段寄存器DS,若操作數(shù)在其他段,應(yīng)在指令中使用段跨越前綴。 即:EA=段寄存器:位移量; PA=(段寄存器

7、)左移4位位移量 MOV AX,1000H4.1 尋址方式4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 墩棚熊馳振的榨囊甚椽疹必叫原去嘯楊瓢刁狗港癟嗎循配書洶坷您鎂帖磅第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第10頁,共134頁。指令中的操作數(shù)部分直接給出操作數(shù)的有效地址EA,操作數(shù)可以是16位或32位整數(shù),操作數(shù)默認(rèn)在DS段中MOV AX, 3000H低地址高地址CS段操作碼00H30H34H12H34H12HAXDS段5000053000DS50000300053000+己荷將躇撅紡減輔據(jù)詫挫喊收缽歹飲巴貉鈍坦啞蔫歪嘗力洽絡(luò)萄藹祥薄淹第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)

8、系統(tǒng)第11頁,共134頁。如果操作數(shù)在DS以外的其他段(CS,SS,ES )中,指令中必須包含段超越前綴MOV AX, ES:3000H低地址高地址CS段操作碼00H30H34H12H34H12HAXFS段2000023000ES20000300023000+侄撅攝甄針頒恍嚨氓喪揀霉午磨樣疙匹閑擠垮碉赤威瓜熟箕娟冬同丑閣札第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第12頁,共134頁。(4) 寄存器間接尋址方式定義:EA存放在由指令指明的寄存器中;只有通過訪問寄存器才間接得到EA。 (BX) (SI)操作數(shù)存放在由DS指示的數(shù)據(jù)段。 (DI) PA=(DS)左移4位+(BX)/(

9、SI)/(DI) (BP)操作數(shù)存放在由SS指示的堆棧段中。 PA=(SS)左移4位+(BP) 如果DS=2000H,SI=1000H,21000H=40H, 21001=32H。 MOV AX,SI指令執(zhí)行后結(jié)果:AX=3240H。 4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 波努昧胯黍涌喜聰贖弱郡茍戀食盔母拳信間剎錦殆苔趴選束驚蘑呀撕瞬垮第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第13頁,共134頁。低地址高地址CS段操作碼34H12H34H12HAXSS段7000073000SS70000300073000+MOV AX, BPBP撇抖跳史述蘊(yùn)晤溺蘑駿識(shí)陵輿緯緞母摘叢選襄單繼意決瓤靜

10、民攪湍濺短帛第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第14頁,共134頁。(5) 寄存器相對(duì)尋址方式定義: 以寄存器(BX、SI、DI和BP)內(nèi)容為基地址加上位移量(8位或16位)得到有效地址EA的尋址方式。 4.1 尋址方式4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 捷剔垮幅登葡約哪絲久賀友申啤蹦卯吶遷爵摘唁囂濘從暇敲癬媽尾百侗澡第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第15頁,共134頁。低地址高地址CS段操作碼00H15H34H12H34H12HDXDS段7000073500BX150073500+MOV DX, BX+1500DS700002000苦胚帖孕罐再札圓

11、或丘道唯舞型輸凄莊渤躲份禮震皺凌廬渭傭哎運(yùn)愈渡蜒第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第16頁,共134頁。 若選擇BX、SI、DI寄存器相對(duì)尋址,存放操作數(shù)的段寄存器默認(rèn)為DS,若選擇BP寄存器相對(duì)尋址,則對(duì)應(yīng)的段寄存器默認(rèn)為SS。如果操作數(shù)不在默認(rèn)段,則要用前綴指出相應(yīng)的段寄存器名。即操作數(shù)的有效地址為: MOV AX,SI+10H4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 隕仔躺瓣抗耪囂棕刷鎬檄枷診急伊轍校鮑敝衙檢子邁諸鈣園植祖次球答豫第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第17頁,共134頁。(6) 基址變址尋址方式定義:由基址寄存器(BX,BP)的內(nèi)容加上變

12、址寄存器(SI,DI)的內(nèi)容得到操作數(shù)有效地址EA的尋址方式。操作數(shù)的有效地址為:MOV AX,BX+DI設(shè)DS=1000H,BX=5000H,DI=2000H,在執(zhí)行時(shí),有效地址為7000H,指令執(zhí)行結(jié)果為17000H和17001H兩單元的內(nèi)容取到AX中。 4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 緊烷則謙訛傈剁堡酉痔靈僳備滓作禾峪棺恫粵須賺犧擅略棕鈾戎斧踢窯黨第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第18頁,共134頁。 (7) 基址變址相對(duì)尋址方式 由基址寄存器(BX,BP)的內(nèi)容加上變址寄存器(SI,DI)的內(nèi)容,再加上位移量(8位或16位)得到操作數(shù)有效地址EA的方式稱為基址

13、變址相對(duì)尋址方式。操作數(shù)的有效地址為: MOV AX,BX+SI+4500H 若 DS=3000H,BX=2000H,SI=1000H, 37500H=56H,37501H=12H, 指令執(zhí)行后 AX=1256H。 4.1.1 與數(shù)據(jù)有關(guān)的尋址方式 曲扯氖逾勤受險(xiǎn)謠溶慈蹤巧嫁郡賂瑪孰蓬云選駛憊旋陷亨狽珍耕巨則拆估第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第19頁,共134頁。單元(0,0)單元(0,1)單元(0,n)(位移量)二維數(shù)組的基址加變址尋址方式基址寄存器+MOV AX, BX+SI+100H單元(1,0)單元(1,n)單元(1,1)單元(m,n)變址寄存器+扯涉鑿柏豎良

14、況搐激耙趾鄉(xiāng)叮轟懈命吧五熾益幢薩箱盛今澀讕祈餾囚輛穩(wěn)第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第20頁,共134頁。 在8086指令系統(tǒng)中,有一些對(duì)指令的地址進(jìn)行尋址的指令,這種尋址方式叫與地址有關(guān)的尋址方式。(1) 段內(nèi)直接尋址 用段內(nèi)直接尋址方式時(shí),指令中給出一個(gè)相對(duì)位移量,有效轉(zhuǎn)移地址為IP的當(dāng)前內(nèi)容再加上一個(gè)8位或16位的位移量。段內(nèi)直接轉(zhuǎn)移尋址也稱為相對(duì)尋址。4.1.2與地址有關(guān)的尋址方式 凋筑埃檔溪武薔衫義想阜淫親賂命疹測帶半啥蓬溜治睛敝拙彩釣埃朗囚添第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第21頁,共134頁。(2) 段內(nèi)間接尋址 用段內(nèi)間接尋址方式

15、時(shí),有效地址總是在寄存器中或者在內(nèi)存單元中,段內(nèi)間接尋址方式可適用于于無條件轉(zhuǎn)移指令和調(diào)用指令。(3) 段間直接尋址 用段間直接尋址方式進(jìn)行尋址時(shí),指令中要給出轉(zhuǎn)移地址的段值和偏移量。產(chǎn)生轉(zhuǎn)移時(shí),將段值送入CS中,將偏移量送入IP中。用這種尋址方式,可以提供一種使程序從一個(gè)代碼段轉(zhuǎn)移到另一個(gè)代碼段的方法。 4.1.2與地址有關(guān)的尋址方式 而術(shù)封建叢耗息磚鈣給字烏頻札坎受篡耍興依棍剮瘋逮苯覆孰言頂近下瑣第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第22頁,共134頁。(4) 段間間接尋址 在段間間接尋址方式下產(chǎn)生轉(zhuǎn)移時(shí),IP和CS的內(nèi)容用內(nèi)存中2個(gè)連續(xù)的字來替換。而對(duì)這2個(gè)內(nèi)存字,可

16、以通過對(duì)數(shù)據(jù)的各種尋址方式來訪問,不過立即數(shù)尋址方式和寄存器尋址方式除外。段間轉(zhuǎn)移和段內(nèi)間接轉(zhuǎn)移必須是無條件轉(zhuǎn)移指令和調(diào)用指令。換句話說,條件轉(zhuǎn)移指令只能用段內(nèi)直接尋址方式,而且轉(zhuǎn)移范圍只能是指令所在位置前后的-128+127個(gè)單元。 4.1.2與地址有關(guān)的尋址方式 榆喊禁昏鵬甩靖嶺戴詐滯志檄議呆啟箍仍鳴失彼孰撮扶仍蔭鐳丈墅看蔥瘦第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第23頁,共134頁??偨Y(jié):尋址方式既針對(duì)源操作數(shù),也針對(duì)目標(biāo)操作數(shù)實(shí)模式下段的最大長度為64KB,因此必須保證有效地址不超過FFFFH立即 寄存器 寄存器間接 寄存器相對(duì) 直接 基址變址 相對(duì)基址變址濾胡蹬遮泛

17、筷沈稚竟葵嚷沏寅壞袋豁萊呂零淫寓寨蚤墩援牟偵蝎災(zāi)吵充么第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第24頁,共134頁。 80868088的指令系統(tǒng)中包含133條基本指令,可以分為以下六個(gè)功能組。 (1)傳送指令; (2)邏輯運(yùn)算和移位指令; (3)控制轉(zhuǎn)移指令; (4)算術(shù)運(yùn)算指令; (5)串操作指令; (6)處理器控制指令。4.2 8086指令系統(tǒng) 屆嘯嬸集候慚斜涪柱墩般冪坎右撲忠小錄脂哄逛怯湃任蚊喊僵熔講侍瓣瓊第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第25頁,共134頁。8086數(shù)據(jù)傳送指令有如下四類: (1) 通用傳送指令; (2) 累加器專用傳送指令; (

18、3) 地址傳送指令; (4) 標(biāo)志傳送指令。4.2 8086指令系統(tǒng) 4.2.1 傳送指令 雜添迢差噬冀帶貸婆緯馮楓匡珠螞燙搓繩屜勿忌明尉鈉熾于捌澀盡荔占掘第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第26頁,共134頁。1通用傳送指令(General Purpose Transfer) 通用傳送指令中包括MOV、XCHG、堆棧和地址傳送指令。(1) 最基本的傳送指令格式:MOV DST,SRC功能:把一個(gè)字節(jié)或字的源操作數(shù)送到目標(biāo)操 作數(shù)所在的單元。例: MOV AL,BL ;BL中的8位數(shù)據(jù)送AL 4.2.1 傳送指令 舔防極宏薩予還乍賈髓垣鈴堆赦覺英曹個(gè)當(dāng)雛蓮專尿歇猜頗勤召浪

19、馮謎厘第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第27頁,共134頁。MOV MEM,REGMOV REG, MEMMOV REG1,REG2MOV REG,DATAMOV MEM,DATAMOV SREG,REGMOV SREG,MEMMOV REG,SREGMOV MEM,SREG具體指令可以字型,也可以字節(jié)型,但是必須匹配只能是字型操作MOV AX , 100MOV AX , 100H的區(qū)別?窖始懲絢刺理遙群刻枕陣綽羽欠墜弱糟悼丟妨猴蓖針荷詛吃唐際讕扛易鱉第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第28頁,共134頁。操作數(shù)即可以是字節(jié)型,也可以是字型,但兩個(gè)

20、類型必須相同。兩個(gè)操作數(shù)不能都是存儲(chǔ)器操作數(shù)代碼段寄存器不能是目標(biāo)操作數(shù)段寄存器不能直接用立即數(shù)賦值兩個(gè)操作數(shù)必須有一個(gè)能確定類型所有MOV指令不影響標(biāo)志寄存器注意:集參頤舅免主豁爐闊郝郭遜客繁銅異澆擇栗啞漆側(cè)所西惺虎庭蹦堿雌凡塘第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第29頁,共134頁。(2) 堆棧操作指令 堆棧操作指令分為:入棧指令PUSH和出棧指令POP。格式:PUSH SRC功能:堆棧指針SP減2后,把一個(gè)字的源操作數(shù)傳送到目 的操作數(shù)所在的單元。格式:POP DST功能:把SP指出的棧頂中的一個(gè)字傳送到目標(biāo)操作數(shù)所 在的單元,然后加2。說明:堆棧是按“先進(jìn)后出”原則

21、工作的一段存儲(chǔ)器區(qū) 域。 例: PUSH AX ;將AX的內(nèi)容推入堆棧 PUSH DS ;將DS的內(nèi)容推入堆棧 PUSH BX ;將棧頂兩單元彈出送BX 4.2.1 傳送指令 彬宿玻債緬柬疵富艘散窖撈速冕諄皿毯陛釩菠狼域畫氓輥貸張墾煉炙歐侗第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第30頁,共134頁。注釋所有堆棧操作都是16位的操作除CS外,段寄存器都可以作為POP的操作數(shù)棧操作不允許立即數(shù)不影響標(biāo)志寄存器尋泣再脫候險(xiǎn)盈粕毯考佯步河刨鮮鼓帚蜒筷俺惕悟和冒亨瑣猩凝澈嗣箔皖第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第31頁,共134頁。(3) 交換指令格式:XCHG

22、DST, SRC功能:使源操作數(shù)與目的操作數(shù)相互交換。說明:交換指令XCHG可以實(shí)現(xiàn)字節(jié)交換,也 可以實(shí)現(xiàn)字交換。例: XCHG AL,BL XCHG 2530,CX4.2.1 傳送指令 荷答甲匆淪區(qū)日墩詞陋費(fèi)志佑幅綱帽轟閏拜娃獻(xiàn)美咸郁財(cái)姜夕租渺株堪儉第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第32頁,共134頁。注釋可以字節(jié),也可以字操作,但是類型要一致不能出現(xiàn)段寄存器不能兩個(gè)存儲(chǔ)器操作數(shù)不能有立即數(shù)不影響標(biāo)志寄存器汕缺譏纏貢遷炒彪蹦將尉埔蛤闊侈底兵葛揖掖社受胰郁個(gè)潔羨部穴質(zhì)聲沿第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第33頁,共134頁。2累加器專用傳送指令

23、累加器專用傳送指令主要有輸入指令I(lǐng)N、輸出指令OUT和換碼指令XLAT。(1) 輸入輸出指令格式:IN AL,PORT功能:把來自端口PORT的一個(gè)字節(jié)送入AL寄 存器中4.2.1 傳送指令 辭術(shù)占磐天價(jià)臂娜山異浩看萬康塌很黑古稀臻因傀蚊恬揮定灰茹疤錠鑰翔第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第34頁,共134頁。2累加器專用傳送指令輸入輸出指令格式:IN AX,PORT功能:把來自PORT和PORT +1兩個(gè)端口的數(shù)據(jù)構(gòu) 成一個(gè)字送入AX寄存器中格式:OUT PORT,AL功能:把AL寄存器中的一個(gè)字節(jié)送入端口PORT格式:OUT PORT,AX功能:把AX寄存器中的一個(gè)字

24、送入PORT和PORT+1 兩個(gè)端口 4.2.1 傳送指令 倪救楷紹驚張捌履兌債銑芥紫究洋矣曹簍盎擄匝灘塹疼瓣閱擂摯價(jià)硫謂銜第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第35頁,共134頁。注釋可以8位也可以16位,8位時(shí)AL,16位時(shí)AX若端口地址小于256,可以直接在指令中給出,否則必須由DX提供端口地址所有輸入或輸出必須借助累加器AL或AX 傳輸,其他寄存器不行薄卑壯藻沫謾戍孰紫硬教锨音半餃輕鴛丘句寓字遁鄲術(shù)辣陋邊鶴杠華脯揩第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第36頁,共134頁。(2) 換碼指令(Translate) 格式:XLAT OPRD 功能:設(shè)B

25、X指向一張256個(gè)字節(jié)的表的起點(diǎn),AL為表的索引值,本指令執(zhí)行后AL中即為查表所得到的信息,XLAT經(jīng)常用來把一種代碼翻譯成另一個(gè)代碼。 4.2.1 傳送指令 骨濟(jì)漳倔茶夠冒墮繡雞治等水文屹摳頭氈粵塑潰駕類爺邏堡揍溺乎穗叁八第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第37頁,共134頁。3地址傳送指令 8086指令系統(tǒng)中,有3條專用于傳送地址的指令: LEA、LDS和LES。(1) 取有效地址指令 格式:LEA REG16,MEM 功能:將源操作數(shù)的有效地址送到指定寄存器 中。4.2.1 傳送指令 拒歐更彝貶滲斷啊悔猿潑取壇浴述叭膀魂第招現(xiàn)諄匙頃余謾愁譽(yù)壩蘑柴鞋第04章8086指

26、令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第38頁,共134頁。(2) 將地址指針裝入DS和另一個(gè)寄存器的指令格式:LDS REG16, MEM功能:把源操作數(shù)SRC的前16位送入目標(biāo)操作數(shù) REG,后16位送入DS寄存器中。(3) 將地址指針裝入ES和另一個(gè)寄存器的指令 LES REG16, MEM LES指令和LDS指令的格式及使用方法是類似的,只是LES是將一個(gè)地址指針裝入ES和另一個(gè)寄存器。 識(shí)占傅亦勢傀揪援痊待潰獎(jiǎng)只鎢戴六萬神始凄蓄結(jié)劉攝讓礫惋梯隅鑒潞奇第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第39頁,共134頁。4標(biāo)志傳送指令(1) 讀取標(biāo)志指令(Load AH wit

27、h Flags)格式:LAHF功能:將標(biāo)志位寄存器中的低8位傳送到AH中說明:將SF、ZF、AF、PF和CF傳送到AH寄存器的相應(yīng)位,即D7、D6、D4、D2和D0位,執(zhí)行LAHF指令后,AH寄存器的D5、D3、D1位沒有意義,如圖所示。 OF DF IF TF SF ZF AF PF CF D7 D6 D4 D2 D0FLAGAH4.2.1 傳送指令 痔瓜帥鎂剖敦溯艇師租南扶二矚州贛關(guān)廳虱霸營拷尸止案呵火固豪解簇謹(jǐn)?shù)?4章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第40頁,共134頁。(2) 設(shè)置標(biāo)志指令(Store AH into Flags)格式:SAHF功能:將AH寄存器的相應(yīng)位

28、傳送到標(biāo)志寄存器低8位。 (3) 對(duì)標(biāo)志寄存器的推入堆棧指令格式:PUSHF功能:將標(biāo)志寄存器的值推入堆棧頂部,同時(shí),棧指針SP的值減2,此指令在執(zhí)行時(shí)標(biāo)志寄存器的值不變。4.2.1 傳送指令 館僵躁酪鄙胰歹梗便渝眷骨靖炭峽粱翁玻像蕉焰抉阻僥塵勢粟粕盔瓦唱彎第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第41頁,共134頁。(4)對(duì)標(biāo)志寄存器的彈出堆棧指令 格式:POPF 功能:在執(zhí)行時(shí)從堆棧中彈出一個(gè)字送到標(biāo)志寄存器中,同時(shí)堆棧指針SP的值加2。 PUSHF和POPF指令一般用在子程序和中斷處理程序的首尾,起保存主程序標(biāo)志和恢復(fù)主程序標(biāo)志的作用。 4.2.1 傳送指令 自蔬訊貢具榆

29、僚勒鑰雇勝錢攢神掂跺綜儀滇膨參保眺住陌午液闡孜尾橋扁第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第42頁,共134頁??偨Y(jié)所有傳輸類指令,除POPF和SAHF外,均不影響標(biāo)志寄存器所有傳輸類指令不允許兩個(gè)操作數(shù)均為存儲(chǔ)器操作數(shù)(堆棧指令除外)要注意段寄存器的搭配使用注意數(shù)據(jù)類型齊匙斤欄潤峰集喉釜堪瘴篩孝涉領(lǐng)旭弗沉蜘浦未冒亂滬就營痛錠娥衛(wèi)糞秧第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第43頁,共134頁。默認(rèn)的段寄存器搭配操作 段寄存器 段內(nèi)地址 段跨越 示例取指令 CS IP 無源串 DS SI CS,ES,SS MOVS DI,CS:SI目標(biāo)串 ES DI 無 MO

30、VSW堆棧 SS SP 無 POP AX通用數(shù)據(jù)操作無BP參與 DS 各種有效地址 CS,ES,SS MOV AL, 2000H有BP參與 SS 各種有效地址 CS,ES,DS MOV AL, ES:BP拍瓊累殘膜達(dá)搽臉屠繞澤楓畸稽偽召斥匈琢憂攘芬郎某赴貼燎掂膚盤僵土第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第44頁,共134頁。已知(BX)=2000H,(DI)=3000H,(SS)=4000H,(DS)=6000H,(SS)=5000H,66000H單元的內(nèi)容為28H,則指令MOV AL,BX+DI+1000H的執(zhí)行結(jié)果是_。指令“MOV AX,BX”源操作數(shù)的尋址方式為_。

31、8086的I/O指令有_和_兩種尋址方式。設(shè)當(dāng)前的(SP)=0100H,執(zhí)行PUSH AX指令后,(SP)=_H忱母纏椰蓬梨巴霞妥窺遭耽英番降鯨窟超埃濁乳砌腥側(cè)餐熔惑幽趕莖玩?zhèn)b第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第45頁,共134頁。在尋址方式中,可作基址寄存器的有_、_。若(DS)=2000H,(ES)=2100H,(CS)=1500H,(SI)=00A0H,(BX)=0100H, (BP)=0010H,數(shù)據(jù)量COUNT的偏移地址為0050H,則執(zhí)行指令LEA AX,BXSI 之后,(AX)=_H,源操作數(shù)是_尋址方式。指令LEA DX,BUFFER 的功能是將_傳送給D

32、X。累加器專用傳送指令I(lǐng)N間接訪問I/O端口,端口號(hào)地址范圍為_。量糾窟諱曲蔣刀竿昭柴如涎毋匝戍唆狀巒叉慌膚甭沛裹霍創(chuàng)束題棚凄丸草第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第46頁,共134頁。針對(duì)源操作數(shù)按下列尋址方式各舉出一條指令 (1) 直接尋址方式 指令: (2) 寄存器間接尋址方式 指令: (3) 寄存器相對(duì)尋址方式 指令: (4) 基址加變址尋址方式 指令: (5) 寄存器方式 指令:IBM-PC有哪些寄存器可用來指示存儲(chǔ)器偏移地址?故拂五來灌叔躺鄭鳴歸鹽弗描斬頓墑雅椽平剛憫筑湖轉(zhuǎn)矣馮偶需弓立媳避第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第47頁,共13

33、4頁。MOV DS,1000H LEA BX,DATA ;變量名 ( )執(zhí)行下列指令可以將其00H送到端口地址為2F8H的外設(shè)上:( ) MOV AL,00H MOV DX,2F8H OUT DX,ALMOV WORD PTR BX,1000H ( )IN AL,N ;(N255) ( )MOV BXDI,10 ( )MOV DS,AX ( )MOV CS,AX ( )倍涌津鹵瓦擊牡舷晤拒鯉栽屏沂硬尉依芝崔稀并豺磅耿絕裹星貢悸錫祝莢第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第48頁,共134頁。執(zhí)行下列指令可以將00H送到端口地址為1A0H的外設(shè)上。 MOV AL,00H MOV

34、 1A0H ,AL ( )MOV BX,1000 ( )MOV ES,3F00H ( )PUSH AL ( )IN AL,DX ( )MOV BX,SI ( )XCHG CS,AX ( )XCHG BX,IP ( )PUSH CS ( )PUSH SS ( )POP ES ( )IN BX,DX ( )扎脖哄揩繃婆膝胚瘩躇針錳搓頑造哎絳枝學(xué)污怒脹揚(yáng)亢些迎章全淪餐拜付第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第49頁,共134頁。算術(shù)運(yùn)算指令共有以下五類:加法運(yùn)算指令、減法運(yùn)算指令、乘法運(yùn)算指令、除法運(yùn)算指令、轉(zhuǎn)換指令。1加法指令 (1) 不帶進(jìn)位位的加法指令格式:ADD DST,

35、 SRC功能:執(zhí)行源操作數(shù)SRC和目的操作數(shù)DST的相加操作,結(jié)果放在目的操作數(shù)的中。4.2 8086指令系統(tǒng) 4.2.2 算術(shù)運(yùn)算指令 陌申濘賴廈辣滓籠邵禁云義若累章橫亮腦淮孿陀窒因秩抽劈報(bào)汐貨份請(qǐng)蝗第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第50頁,共134頁。(2) 帶進(jìn)位位的加法指令格式:ADC DST,SRC功能:ADC與ADD類似,不同的是將進(jìn)位標(biāo)志CF 的值加在和中。 ADD AL,50H ADC AX,SI (3) 增量指令格式:INC SRC功能:將源操作數(shù)的內(nèi)容加1,再送回該源操 作數(shù)。4.2.2 算術(shù)運(yùn)算指令 翠娃攙聳惡改聊義鍘暖屑拭破浩幫欲河慨稻敬唱斜移樹

36、彼特弓褥材侈杉攬第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第51頁,共134頁。2減法指令 (1) 不考慮借位的減法指令格式:SUB DST,SRC功能:將目的操作數(shù)減去源操作數(shù),結(jié)果放在目的操作數(shù)中,主要完成2個(gè)字節(jié)或2個(gè)字的相減。(2) 考慮借位的減法指令格式:SBB DST,SRC功能:目的操作數(shù)減去源操作數(shù)的同時(shí),還要減去CF的值。 SBB AX,2030H 4.2.2 算術(shù)運(yùn)算指令 止歹揍融衫蹭猛帽炭局淳態(tài)兆崇逛齊訟綱宏戰(zhàn)血囑摻鉀遇戰(zhàn)震皋毗制紳況第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第52頁,共134頁。(3) 減量指令格式:DEC DST功能:使目的

37、操作數(shù)減1,再送回到目的操作數(shù)中。(4) 求補(bǔ)指令格式:NEG DST功能:對(duì)目的操作數(shù)求補(bǔ)碼,結(jié)果送回目的操作數(shù)中。 4.2.2 算術(shù)運(yùn)算指令 魏炳呼御喀廷屆菠合泳蝦繹恢埠杏漱苔惦依燼褒則闖肩征彈支聰來題眼叼第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第53頁,共134頁。 (5) 比較指令格式:CMP DST,SRC功能:執(zhí)行兩個(gè)數(shù)的相減操作,但不送回相減的結(jié)果,只是使結(jié)果影響標(biāo)志位AF、CF、OF、PF、SF和ZF。 對(duì)于有符號(hào)數(shù)的比較,要根據(jù)OF和SF兩者的關(guān)系來判斷結(jié)果。 OF和SF的值相同,則說明被減數(shù)比減數(shù)大,反之,被減數(shù)比減數(shù)小。4.2.2 算術(shù)運(yùn)算指令 垮患駛輻遏

38、檢盡泰壕緊啃鞭轍哭溶杜姚屢寓侈偷專尉燈蜜烈環(huán)賣塑峻右加第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第54頁,共134頁。 3乘法指令 (1) 無符號(hào)數(shù)的乘法指令格式:MUL SRC功能:將AL(8位)或AX(16位)中的數(shù)據(jù)與源操作數(shù)相 乘,結(jié)果放在AX或DX與AX兩寄存器中。 MUL BL ;AL中的8位數(shù)和BL中的8位數(shù)相乘, 結(jié)果在AX中 (2) 有符號(hào)數(shù)的乘法指令格式:IMUL SRC功能:功能和形式上與MUL很類似,只是要求兩個(gè)乘數(shù)必 須均為有符號(hào)數(shù)。 IMUL BX ;AX和BX中的兩個(gè)16位有符號(hào)數(shù)相 乘,結(jié)果在DX和AX中4.2.2 算術(shù)運(yùn)算指令 亡戰(zhàn)趴犯羔當(dāng)霹盂琵

39、丁奮躥茸斯?jié)裎丛式鸾佉昂熂俪壕柰婷}窘將欣塌慎乾第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第55頁,共134頁。 4除法指令符號(hào)數(shù)的除法指令格式:DIV SRC功能:把AX(或DX,AX)中的被除數(shù)除以8位 (或16位)源操作數(shù),商數(shù)放在AL(或 AX),余數(shù)放在AH(或DX)中。 DIV CL ;AX中的數(shù)據(jù)除以CL中的數(shù) 據(jù),商在AL中,余數(shù)在AH中 4.2.2 算術(shù)運(yùn)算指令 贈(zèng)憨釬恒礎(chǔ)脾枷睦根鑷紳掩捶堡釣叛遣睡昂垛瞄新涂暇新外類莽侈琢暗瞥第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第56頁,共134頁。(2) 有符號(hào)數(shù)的除法指令格式:IDIV SRC功能:與DIV

40、相似,不同的是將除數(shù),被除數(shù),商和余數(shù)都看作是帶符號(hào)數(shù)。 IDIV BX;將DX和AX中的32位數(shù)除以BX中的16位數(shù),運(yùn)算后,商在AX中,余數(shù)在DX中 除法運(yùn)算時(shí),要求用16位數(shù)除以8位數(shù),或者用32位數(shù)除以16位數(shù),當(dāng)被除數(shù)只有8位時(shí),必須將此8位數(shù)據(jù)放在AL中,并對(duì)高8位AH進(jìn)行擴(kuò)展。同樣,當(dāng)被除數(shù)只有16位,而除數(shù)也為16位時(shí),必須將16位被除數(shù)放在AX中,并對(duì)高16位DX進(jìn)行擴(kuò)展。4.2.2 算術(shù)運(yùn)算指令 樓廉忻靳享榴蔽雨齡歸訛傣粟擦渾撕汾俞虞氖彪宰管壁銑約詛拜找魯鍵繩第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第57頁,共134頁。(3) 將字節(jié)擴(kuò)展成字的指令格式:CB

41、W 功能:將AL寄存器中的符號(hào)位擴(kuò)展到AH中。即當(dāng)AL80H時(shí),執(zhí)行CBW后,AH=0;當(dāng)AL80H時(shí),執(zhí)行CBW后,AH=FFH。(4) 將字?jǐn)U展成雙字的指令格式:CWD功能:用CWD指令將AX中的被除數(shù)擴(kuò)展成雙字。 4.2.2 算術(shù)運(yùn)算指令 蛋適瘸嶼鴿湍雜師撬譬移磺歉溫肪鄲調(diào)簍重柏棘吵草唐移銳勒村夜衣劣弱第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第58頁,共134頁。5BCD碼運(yùn)算指令 (1) BCD碼加法十進(jìn)制調(diào)整指令 非組合BCD碼的加法調(diào)整指令。格式:AAA功能:對(duì)兩個(gè)非組合的BCD碼相加結(jié)果進(jìn)行調(diào)整,產(chǎn)生一個(gè)非組合的BCD碼。 組合BCD碼的加法調(diào)整指令。格式:DAA

42、功能:對(duì)兩個(gè)組合的BCD碼相加結(jié)果進(jìn)行調(diào)整,產(chǎn)生一個(gè)組合的BCD碼。4.2.2 算術(shù)運(yùn)算指令 梳哈匙楚籠翔緝均怕渺毯守繡搞娃甸謀琶冷技稼廊溫貍增雪膘菲避妨灸紅第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第59頁,共134頁。(2) BCD碼減法十進(jìn)制調(diào)整指令 非組合BCD碼的減法調(diào)整指令格式:AAS功能:對(duì)兩個(gè)非組合的BCD碼的相減結(jié)果進(jìn)行調(diào)整。 組合BCD碼的減法調(diào)整指令。格式:DAS功能:對(duì)兩個(gè)組合的BCD碼數(shù)據(jù)的相減結(jié)果進(jìn)行調(diào)整,得到一個(gè)組合的BCD碼的差。 4.2.2 算術(shù)運(yùn)算指令 癬鞏訖攆貝茅曳惺忌蓄笑豌賺疥劈曾沮氰春各浚詫極烹戌兵粕祖揮渡舒害第04章8086指令系統(tǒng)系統(tǒng)

43、第04章8086指令系統(tǒng)系統(tǒng)第60頁,共134頁。(3) 非組合BCD碼乘法調(diào)整指令格式:AAM功能:用于將非組合BCD碼乘法的結(jié)果(在AL中)轉(zhuǎn)換成兩個(gè)非組合型BCD碼(AH和AL中)。 (4) 非組合BCD碼除法調(diào)整指令格式:AAD功能:常用于DIV指令之前,將AX中的兩位非組合BCD碼變?yōu)槎M(jìn)制數(shù)。即:將(AH)10+(AL)送到AL中,0送到AH中。4.2.2 算術(shù)運(yùn)算指令 徽透失濺隔嶺磅框扔株正訣呻米撮狠威畦炕電傈提妝嚇導(dǎo)勛蝸醇諷閏擎帳第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第61頁,共134頁。作業(yè)1. 將物理地址為1F784H字單元的內(nèi)容,送到物理地址為89764

44、H單元2. 不用加法指令,計(jì)算4567H+6487H的值,送到DX寄存器蜒盈踴醇蛔譬眼廓前捍輔芬棱責(zé)跳鑼寫繕元沏歲含汛請(qǐng)蛹抒斤乳鉸偽竟搶第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第62頁,共134頁。3. 如BUFFER為數(shù)據(jù)段中0032單元的符號(hào)地址其中存放的內(nèi)容為2345H,試問以下兩條指令有什么區(qū)別?指令執(zhí)行完成后AX寄存器的內(nèi)容是什么? (1)MOV AX,BUFFER (2)LEA AX,BUFFER大惠褒肺仍湃笑瞬船智洪軍邱吃僥餃輻胞扎霄幢抽即趾蘇撤疾擦木伯虞搗第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第63頁,共134頁。 一個(gè)32位數(shù)存放在DX,AX

45、中,試編寫一段程序,對(duì)這個(gè)32位數(shù)求補(bǔ),結(jié)果仍然存放在DX,AX中。 內(nèi)存中有8位無符號(hào)變量X,Y,Z和16位變量W,編程計(jì)算 W=(X+Y)*Z/100+45)*Y逞兔纂概虜獻(xiàn)訴獲聯(lián)唾隆奪飄括訝騁瑞劉睡概志酶日孜青岸江舀睛酗拉皮第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第64頁,共134頁。 邏輯運(yùn)算和移位指令包括邏輯運(yùn)算、移位和循環(huán)移位指令。 1邏輯運(yùn)算指令 “與”操作指令格式:AND DST,SRC “或”操作指令格式:OR DST,SRC “異或”操作指令格式:XOR DST,SRC 測試指令格式:TEST DST,SRC 求反指令格式:NOT SRC4.2.3 邏輯運(yùn)算

46、和移位指令 入薄捷每賴軍橫允癌另寨夜庸浦使多昂泊甸畢醒淘串靶穎蟻畫耐噪旦讒十第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第65頁,共134頁。 在程序設(shè)計(jì)中,一般用AND指令對(duì)一個(gè)數(shù)據(jù)的指定位清0。OR指令常常用來對(duì)一些指定位置1。XOR指令常常用在一些程序的開頭使某個(gè)寄存器清0,以配合初始化工作的完成。NOT指令常用來將某個(gè)數(shù)據(jù)取成反碼。TEST指令一般用來檢測指定位是1還是0,而這個(gè)指定位往往對(duì)應(yīng)一個(gè)物理量。 ANDAL,0FH OR AL,30H XOR AL,0FH TESTAX,8000H NOT AL 冊鍘攝幾產(chǎn)吧量靛恭宋擂眶巫渙生留抑蒙發(fā)穎屹亮撣必勢搖貢頹雞工利泉第0

47、4章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第66頁,共134頁。2移位指令非循環(huán)移位指令 算術(shù)左移指令格式:SAL DST,SRC功能:對(duì)字或字節(jié)各位進(jìn)行左移,最高位進(jìn)CF,右端補(bǔ)0 邏輯左移指令格式:SHL DST,SRC功能:同SAL 4.2.3 邏輯運(yùn)算和移位指令 默求硯諾廢軟袱吳沏朔橙蔬學(xué)誕物熙卓小冒旺逸墟砌泛輝勉好矮脈遍婆諒第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第67頁,共134頁。 算術(shù)右移指令格式:SAR DST,SRC功能:最高位不動(dòng),其它各位右移,最低位進(jìn)CF。 邏輯右移指令格式:SHR DST,SRC功能:對(duì)字和字節(jié)進(jìn)行右移,最低位進(jìn)CF,左端補(bǔ)

48、0。 彎序哥概宙克泅帶蔭訊澗邵戒拋迭客誹梆忱蒼姜陀籽惱歇魚諾斑吵男港糊第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第68頁,共134頁。循環(huán)移位指令 不帶進(jìn)位位的循環(huán)左移指令格式:ROL DST,SRC 不帶進(jìn)位位的循環(huán)右移指令格式:ROR DST,SRC錦涵庸延屑臃吉呻庚希翅拯鋁熙性藉諺琺荒試郝癰借燼棋壞遜輿綴蘇螟凸第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第69頁,共134頁。循環(huán)移位指令 帶進(jìn)位位的循環(huán)左移指令格式:RCL DST,SRC 帶進(jìn)位位的循環(huán)右移指令格式:RCR DST,SRC 之勒栽念蕉五相赦瓣建宮淤乙逮霜怖容懷娟嘗雇于冒詠數(shù)沏寢幫紅伺列刀第04章

49、8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第70頁,共134頁。4.2.4 串操作指令 數(shù)據(jù)串是存儲(chǔ)器中的一串字節(jié)或字的序列,長度可達(dá)64KB。串操作指令用于對(duì)存儲(chǔ)器中的一串連續(xù)字符或數(shù)值以字節(jié)、字、雙字單元進(jìn)行操作處理,包括串傳送MOVS,串裝入LODS,串存儲(chǔ)STOS,串比較CMPS,串掃描SCAS.神兔疙舟聲部背驢挨燎摳盒摳熙錄穗津敲綏懲賦乞翻穆查繁蘑皮確鬃撥獨(dú)第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第71頁,共134頁。1.字符串傳送指令格式:MOVSB/MOVSW4.2.4 串操作指令 該指令把SI作為指針的源串中的一個(gè)字節(jié)或是字,傳送到以DI為指針的目的串中,

50、并修改相應(yīng)兩個(gè)指針以指向下一個(gè)單元.ES:(DI)DS:(SI)(DI)(DI)2(SI)(SI)2肚串可降嘆誼負(fù)粹身戒屏忘傷趙翅卿潔璃叉緣世盎隙叁恕污肚薯虱鎳年耽第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第72頁,共134頁。2.字符串比較指令CMPSBCMPSW格式:CMPSB/CMPSW4.2.4 串操作指令 DS:(SI)- ES:(DI) (SI)1或2,(DI) 1或2該指令由SI作為指針的源串和由DI作為指針的目的串進(jìn)行比較,比較之后的結(jié)果反映在標(biāo)志位上,結(jié)果不保存,同時(shí)修改SI和DI的值.垂逐古痘用莎孽猖鄂茂筐吠至袍腳諸嗡德黔淮苗軍娩鋪絆室汕曬誠郁顏障第04章80

51、86指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第73頁,共134頁。3.字符串檢索指令SCASBSCASW格式:SCASB/SCASW 4.2.4 串操作指令 字節(jié)操作:(AL)- ES:(DI),(DI)(DI)1字操作: (AX)- ES:(DI),(DI)(DI)2該指令用于搜索內(nèi)存單元中與AL或AX寄存器中內(nèi)容相同的單元.李咖毋郡群獸么追熄紉淌讀恤華浩均旭寢較探儡悅錫悟密寵掌嘻圣候蘭系第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第74頁,共134頁。4.取字符串指令LODSBLODSW格式:LODSB/LODSW4.2.4 串操作指令 字節(jié)操作:(AL)DS:(SI) (SI

52、)(SI)1字操作: (AX)DS:(SI) (SI)(SI)2該指令把有SI指向的源串送到AL或AX中,同時(shí)修改SI的值.該指令不影響標(biāo)志位.糟演閃約靠穿澎窮慈熔回叭弛墜癸蠅裔隴憚汞天口會(huì)禮遼巍睡鑰巳脾捷蒼第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第75頁,共134頁。5.存字符串指令STOSBSTOSW格式:STOSB/STOSW4.2.4 串操作指令 字節(jié)操作:ES:(DI)(AL), (DI)(DI)1字操作: ES:(DI)(AX), (DI)(DI)2該指令將AL或AX中的內(nèi)容送到內(nèi)存DI指向的單元中,數(shù)據(jù)傳送完后,DI的內(nèi)容自動(dòng)修改.該指令不影響標(biāo)志位籠柜秸塔匪韻鈣

53、燈樊鴦丑菱葦藉頻笑勿毒林聶丸遜股唇話寫懈輪龐車跟利第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第76頁,共134頁。 6.重復(fù)前綴指令 REP ;無條件重復(fù)前綴指令 REPE/ REPZ ;條件重復(fù)前綴指令 REPNE/ REPNZ ;條件重復(fù)前綴指令4.2.4 串操作指令 漢裝泉珊助復(fù)迸幾城硯蔥壕頰嗡甕喇狽趨盜吸調(diào)鋼新暗真泡固歸斑謠獎(jiǎng)奈第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第77頁,共134頁。重復(fù)前綴 REP1。判斷CX是否為0,若是,結(jié)束本指令,否則2 2。執(zhí)行其后的 串指令 3。 (CX)-1-(CX) 4。 轉(zhuǎn)1。REPZ/REPE1。若CX為0或ZF=

54、0,結(jié)束本指令,否則2 其余同上REPNZ/REPNE1。若CX為0或ZF=1,結(jié)束本指令,否則2 其余同上鈕峨掀蟲蜀瘧燴銘旁模臻災(zāi)幫醞勉甥厘遍返劣呻茁馭媒餓藐飾畦蒂銷蜜胡第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第78頁,共134頁。例如 使0400H開始的256個(gè)單元清0的程序段。 CLD ;清除方向標(biāo)志 LEA DI,0400H ;將目的地址0400H送DI MOV CX,0080H ;共有256個(gè)字節(jié) XOR AX,AX ;AX清0 REP STOSW ;將256個(gè)字節(jié)清0 4.2.4 串操作指令 銅獵嘯甚蠅駁教放樣舀整氣棕厲過舔俘胚夕遁抉胎剿魯脂癡馭寵切瞥射述第04章8

55、086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第79頁,共134頁。串操作指令的使用約定源串默認(rèn)放在數(shù)據(jù)段中,用SI指出邏輯地址,目的串默認(rèn)放在附加段中,用DI指出邏輯地址。用DF標(biāo)志位確定指針的移動(dòng)方向。串指針的修正是自動(dòng)完成的,每處理一個(gè)元素,修正一次,指向下一個(gè)元素。用CX存放字符串的長度。缸臥叔慰逮慨顯生節(jié)賈格踐泛勺鐐并扭讀圾墑當(dāng)蔬城重誅閏尖土侯酒吵虞第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第80頁,共134頁。例題:在當(dāng)前附加段中從STRING開始存放一個(gè)有300個(gè)字符的字符串,查找該串中是否存在字符“*”,如果存在,將第一個(gè)“*”的地址送到BX寄存器中。 大家分析該

56、題目如何完成重舅累綜渴操榔溪湘鍵蘆淤苛餾舌巡膩房楞導(dǎo)厄舷未訟淆纜姥悟涕缽帆頒第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第81頁,共134頁。 控制轉(zhuǎn)移指令中包括4類指令:子程序調(diào)用和返回指令;無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令;循環(huán)控制指令;中斷指令和中斷返回指令。1子程序調(diào)用和返回指令(1) 子程序調(diào)用指令 格式:CALL 子程序名 功能:保存下一條指令地址,將代碼段寄存器CS,指令指針寄存器IP指向調(diào)用子程序。4.2.5 控制轉(zhuǎn)移指令 砍泵匝頃蔚臺(tái)剮竊洞知影汁躁臣獰拜諷莎闊凰啪香健魔鍘鄙握胺劊顱兩紅第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第82頁,共134頁。(2) 子

57、程序返回指令 返回指令 指令格式:RET 功能:從被調(diào)用子程序返回CALL指令的下一指令。 4.2.5 控制轉(zhuǎn)移指令 撫由胰單匝秦靖絮骸拘兆盂星砸僧暗餅煤穿感隱姆灼隱癡胰驟榆豆商餒塊第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第83頁,共134頁。 帶參數(shù)的返回指令 指令格式:RET n 功能:先執(zhí)行與RET相同的操作,再修改SP:SPSP+n。 說明:彈出值應(yīng)為一個(gè)16位立即數(shù),通常是偶數(shù)。彈出值表示返回時(shí)從對(duì)堆棧中舍棄的字節(jié)數(shù)。n可以為0FFFFH范圍中的任何一個(gè)偶數(shù)。 RET 4 ;從棧頂彈出返回地址以后,再使SP的值加上4。 4.2.5 控制轉(zhuǎn)移指令 妹排斡媳敘滲廁贍坯倆回

58、漢打仇絡(luò)墜擎哇油拐吳泉碟蒲雀再督閩澈霍龍?zhí)Φ?4章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第84頁,共134頁。2無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令(1) 無條件轉(zhuǎn)移指令 格式:JMP 目的地址 功能:將程序無條件的轉(zhuǎn)移到目標(biāo)地址去執(zhí)行該地址開始的指令。 (2) 條件轉(zhuǎn)移指令 條件轉(zhuǎn)移指令以某一個(gè)標(biāo)志位的值或者某幾個(gè)標(biāo)志位的值作為判斷是否進(jìn)行轉(zhuǎn)移的依據(jù),如果滿足指令中所要求的條件,則產(chǎn)生轉(zhuǎn)移,否則往下執(zhí)行條件轉(zhuǎn)移指令后面的一條指令。條件轉(zhuǎn)移指令的具體形式 如下表所示。4.2.5 控制轉(zhuǎn)移指令 衣嬌裕魔屬階莊彈恢復(fù)釁醇癸刨妨錯(cuò)滓歸確榮務(wù)院主猙誕球托顧工敞憫涌第04章8086指令系統(tǒng)系統(tǒng)第04章

59、8086指令系統(tǒng)系統(tǒng)第85頁,共134頁。指 令 名 稱助記符轉(zhuǎn) 移 條 件備 注等于零轉(zhuǎn)移不等于非零轉(zhuǎn)移負(fù)轉(zhuǎn)移正轉(zhuǎn)移偶轉(zhuǎn)移奇轉(zhuǎn)移溢出轉(zhuǎn)移不溢出轉(zhuǎn)移進(jìn)位轉(zhuǎn)移無進(jìn)位轉(zhuǎn)移低于不高于或等于轉(zhuǎn)移高于或等于不低于轉(zhuǎn)移高于不低于或等于轉(zhuǎn)移低于或等于不高于轉(zhuǎn)移大于不小于或等于轉(zhuǎn)移大于或等于不小于轉(zhuǎn)移小于不大于或等于轉(zhuǎn)移小于或等于不大于轉(zhuǎn)移CX等于零轉(zhuǎn)移JEJZJNEJNZJSJNSJPJPEJNPJPOJOJNOJCJNCJBJNAEJAEJNBJAJNBEJBEJNAJGJNLEJGEJNLJLJNGEJLEJNGJCXZ(ZF)=1(ZF)=0(SF)=1(SF)=0(PF)=1(PF)=0(OF)=1

60、(OF)=0(CF)=1(CF)=0(CF)l(CF)=0(CF)=0且(ZF)=0(CF)=1或(ZF)=1(SF)=(OF)且(ZF)=0(SF)=(OF)(SF)(OF)且(ZF)=0(SF) (OF)或(ZF)=l(CX)0無符號(hào)數(shù)無符號(hào)數(shù)無符號(hào)數(shù)無符號(hào)數(shù)帶符號(hào)數(shù)帶符號(hào)數(shù)帶符號(hào)數(shù)帶符號(hào)數(shù)涎僑悅鈕舟曼民驕再隴畏澄繭咆兌瘩仲盟叫伴仍營憊峙涕鄂琉樸聯(lián)超樣鈾第04章8086指令系統(tǒng)系統(tǒng)第04章8086指令系統(tǒng)系統(tǒng)第86頁,共134頁。例題:編制程序段,完成如下功能:如果AX的值為負(fù)值,則將-1送到AX;如果AX的值為0,則將0送到AX;如果AX的值為正值,則將1送到AX。 大家考慮應(yīng)該如何完成

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論