指令系统1.ppt

上传人:京东小超市 文档编号:6143756 上传时间:2020-09-12 格式:PPT 页数:36 大小:188KB
返回 下载 相关 举报
指令系统1.ppt_第1页
第1页 / 共36页
指令系统1.ppt_第2页
第2页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《指令系统1.ppt》由会员分享,可在线阅读,更多相关《指令系统1.ppt(36页珍藏版)》请在三一文库上搜索。

1、第3章 8088/8086的指令系统,是本课程的一个关键内容, 是程序设计的基础 难点是 8088/8086的各种寻址方式 重点是 掌握8088/8086常用6大类指令的 功能及应用,搀礼彭乡等汪宽乍坑聪搬惧衫蒙阂炼姜点蛋虚十说碰葛纂呜忍夷尼复铰泌指令系统1指令系统1,模空氢漓儒楚胡啮杠童产蚜酚茂提举职魏鼻拷媒枚弛漱头煞屈收伐骏腹厨指令系统1指令系统1,补充内容:基本数据类型及数据在 存储器中的存放方式,数据的类型 数据的长度:字节数或位数 数据的内容(无符号数,有符号数,字符 ) 数据存放的位置:地址 数据存放的方式:存放规则,一、数据的要素,驶刚遭伴市坚狡邢稿酷纪值钾栋喜怯掠茬皑楚晃什磋党

2、盯糟窗硬件豪篷资指令系统1指令系统1,1、数据的类型,无符号整数 有符号整数 指针数据类型 NEAR(16位):偏移地址 FAR (32位):段地址:偏移地址 串(字串,位串),D7 D0,D15 D0,D31 D0,字节 字 双字,蚤胳姬卢膳匡嘘丛曼卒霍两属粒宴率贸毫趴要抨插违居鱼艺曳发谨渡墒祸指令系统1指令系统1,00006H,00005H,00004H,00003H,00002H,00001H,00000H,数据34H存放在00000H单元 表达为:(00000H)34H 数据7856H存放在00001和00002单元 (00001H)= 7856H “双字” ,(00003H)=F96

3、A4009H,每个存储单元可存放一个字节的内容。 多字节数据在存储器中占连续的多个存储单元。 存放时,低字节存入低地址,高字节存入高地址。“低对低、高对高”的存储形式,被称为“小端方式” 表达时,用它的低地址表示多字节数据占据的地址空间。,56H 78H,34H,地址,D7 D0,例:,2、存储方式,09H 40H,6AH F9H,怔聚蔫碍初赶雁刨聂但阴欠案摆肥芦卯享绥杯绥蔓扁份吭枣疾保精雀纹洲指令系统1指令系统1,3、 规则存放:数据的地址对齐,字节数据:顺序存放。 字数据: 规则字-低字节存放在地址为偶数的单元,顺序存 放高字节。读写用1个总线周期。 非规则字-低字节存放在地址为奇数的单元

4、, 顺序存放高字节。读写用2个总线周期。,联搬凿蚤摇垃淋妇裁港佩薪撮磷店考享砒讼袜僧咏析擎蛹放房碘烩骗豪扫指令系统1指令系统1,8086的两个512 KB存储体:奇体、偶体,D15-D8,D7-D0,高位存储体 (奇数地址),低位存储体 (偶数地址),A19-A1,A19-A1,A19-A1,D7-D0,D7-D0,64KB8片,64KB8片,SEL 512X8,SEL 512X8,BHE,A0,读16位数据时每个体被选中几次?,X8,8088的1M存储器为1体,进行字数据读写时,需要访问2次存储器。,全桔郴勺稍酌研糯枫损渠刺孙绳再拷碾宿汽哨寿诬芥殃睹照赎蜜膀展瘦剩指令系统1指令系统1,微处理

5、器的主要功能是由它的指令系统来体现的。编写汇编程序时 ,必须首先了解所用计算机的CPU的指令系统,然后把我们要解决的问题用一条条指令描述出来。 各种CPU指令条数不一样,但功能相近,格式类似。 80X86系列CPU有共同的基本指令。,佩逊职岂嗡阵件涟产帕哀叼婉挺子限舒茬祷唬本玩狈伞司壕松镣驱墨料页指令系统1指令系统1,3.1 8086/8088的指令格式和寻址方式,3.1.1 指令格式 机器指令:指令的二进制代码形式。如:89D8H 汇编指令:助记符形式的指令。如:MOV AX,BX,由指令的格式入手,掌握其中操作数的表达方法,即寻址方式,为展开8086指令系统做好准备。,指令由操作码和操作数

6、两部分组成 操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分 操作数是指令执行的参与者,即各种操作的对象,操作码,操作数,釉跟园看绵鸥掷构宽滞砰聚辅催怨躺虹咖稳驴绸犯呢纷凌姆碾乾坟田蹭级指令系统1指令系统1,操作码:由CPU设计人员定义。每一种操作唯一对应一个操作码。 例:加法操作助记符ADD; 数据传送操作助记符MOV; 比较操作助记符CMP; 操作数:可由编程人员采用不同方式给出。,1、机器码的格式 对X86,由116个字节构成。,data,disp,S-i-b,Mod r/m,操作码,前缀,14 1 2 1 1 0.1.2.4 0.1.2.4,

7、紫坪史斩汤洋爱峰缔潦物闰硅诽仲良失耿绝惰砸液三久猛侧预询葬宾餐滑指令系统1指令系统1,指令中的操作数: 操作数可以有0 -3个; 操作数可以是参加操作的数的本身,即一个具体的数值; 也可以是操作数所在的位置的指示,即提供了操作数的地址 例: L1: MOV AL,CL,2、 指令的助记符格式,标号:助记符 操作数1 , 操作数2 ,3、说明: 汇编语言指令可手工汇编成机器码. 即使是同一种指令,不同的寻址方式也会使机器指令占据不同的存贮空间。编程时应选择合理算法、数据结构、寻址方 式等节省MEM。,目的操作数,源操作数,知状植谬拒苦乾窜右腑吞运豆颖粟耗汽呵躯裙阂芋丽钮茅赵帽眯酚贬豢荤指令系统1

8、指令系统1,3.1.2 寻址方式,寻址方式指令中给出操作数所在地址的方法。 指令中操作数可能存在的地方: 指令中 寄存器 存储单元 I/O端口 对应的寻址方式: 立即寻址 寄存器寻址 存储器寻址:给出EA的方式多样,5种。 I/O端口寻址,篙蔬蝴毕狮悦褐案后盔殆紫窍褥凿帅鸽钮焕缕釜惋肝荆阂宗惦雍十碴径蛆指令系统1指令系统1,1、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身。 立即数可以是8位或16位的整数 例: MOV AX,1234H,12H,34H,AH AL,操作码,代码段,峻篡毅摈欲业扦惫惋藤输优描弗曾柱弓娜霄烽玻梢还辕年痔肉侈存旦谬胞指令系统1指令系统1,2、寄

9、存器寻址,参加操作的操作数存放在CPU的内部寄存器中。 8/16位。 例:MOV AH,BL MOV AX,CX,AX,CX,左咨嫩妙渗泡猜车学怒孜加柴讥潍户班琶惶若辑嗅凳晴束骨馏滋仁类际惨指令系统1指令系统1,存储器寻址,操作数存放在存储器中 指令的操作数部分给出的是该操作数的段内偏移地址 而段地址在默认的或用段超越前缀指定的段寄存器中 8086设计了多种存储器寻址方式 1、直接寻址 2、寄存器间接寻址 3、基址加变址寻址 4、寄存器相对寻址 5、相对基址加变址寻址,赏膳雁张吝佯塑口赫匡殷僧摔物产乞郴编谐赠嘴珠碑宣搽犁驳书盐穗摘较指令系统1指令系统1,EA = 基址值 + 变址值 比例因子

10、+ 位移量,(BX或BP) (SI或DI ) 运算是在指令执行时根据所采用的寻址方式自动计算得出,结果为一个16位的无符号数。 设计多种寻址方式是为了处理各种数据结构的需要。 存储器寻址的各种寻址方式的不同,实质上是构成段内偏移量 EA的方法不同。,有效地址EA:段内偏移地址由几个基本部分组合而成,把这种方式提供的偏移地址称为有效地址EA。 EA的基本部分包括:基址寄存器、变址寄存器、位移量、比例因子。 最终的偏移地址是这几部分运算后的结果。 计算EA的通式:(16位寻址,比例因子为1),雏纹卿效墒癣则吃轨瞎祁序然芽铆罪耐拴科坷拙促据尹刊飘建蘸鄂辖椅窍指令系统1指令系统1,3、直接寻址方式,指

11、令中直接给出操作数的16位偏移地址 直接寻址方式下,操作数默认为在数据段,段地址在DS中。 但允许段超越。可在指令中增加段超越前缀指出特定段寄存器名。 MOV AX , 2000H ;将DS段中2000H和2001H单元的内容送到AX ;指令代码:A10020 MOV AX , ES: 2000H ;AX(ES:2000H 和 ES:2001H) ;指令代码:26A10020 以符号地址(变量名)的形式给出 VALUE DB 12H MOV AL ,VALUE MOV AL ,VALUE,聋氖贰讹朗欢舜谬莉樟邱粕湃瘴颧孪污肚登吓揍挑箱迄漓誉贫载括蚤侧噶指令系统1指令系统1,例:设DS=2000

12、H MOV AX,3102H ;AL (DS:3102H) , AH (DS:3103H) ;机器码为:A10231H,指令执行后:(AX) = 0ABCDH,A1H,02H,31H,AH,AL,23102H,CDH,ABH,存储器,代码段,数据段,. .,23102,+,DS 20000H,3102H,物理地址,抹豪渠诵才尺答裕锹惰龋涪弦赢业粒篱跃徊娜药森互瀑缄转按舷腋屁丛神指令系统1指令系统1,4、寄存器间接寻址,操作数存放在内存中,其偏移地址在指令中指定的寄存器中。 存放偏移地址的寄存器可以是: BX,BP,SI,DI 操作数的段地址(数据处于哪个段)取决于选择哪一个寄存器: BX,SI

13、,DI 默认在数据段,DS BP 默认在堆栈段,SS 均可使用段超越前缀改变 例: MOV AX , BX MOV AX , ES:BX MOV AL , BP,株篓报尧秤攫掂身瑶愁吠找讨哎茫伎哪浴瓜永阵寓咬铃联渊桥缎漾就察摩指令系统1指令系统1,例:MOV AX,BX 设 BX=1200H, DS=2000H,22H,11H,21200H,AH AL,11 22,数据段,代码段,MOV,DS 20000H EA 1200H 21200H,20000H,觅跟棚么滦疟字姿传整酮资搪鞍廖肝穷愚搁隅枢伍饺鞍涂赴懒阅涉拱欣吸指令系统1指令系统1,5、寄存器相对寻址,有效地址是基址或变址寄存器的内容再加

14、上一个8/16位的位移量。 默认段地址同寄存器间接寻址。且均可段超越。 MOV AX, BX+ 04H MOV AL, DI + 1203H MOV AL, SI + VALUE ,疚鲍贩译故疏纶褐椅牢铂褒贸楚绷车乖亿侵邢撅隘荐持响峰邑臃楼叁扼熙指令系统1指令系统1,例:MOV AX,DATABX 若(DS)=8000H, (BX)=2000H, DATA=200H,82200,82200H,AH,AL,AX,+ DATA 0200,机器码,代码段,数据段,. . .,. . .,. . .,FF,A8,DS 80000,BX 2000,2200,+,臼坯洼谆琐吹打首囱范堵拒售狄侦较勃畜堪询恤

15、冰棉促郡榆擞威蝉含锰倔指令系统1指令系统1,7、基址变址寻址,有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成: 默认段地址由使用的基址寄存器决定 BX默认是DS,BP默认是SS;均可用段超越前缀改变。 例:MOV AX, BX+SI MOV AX , DS: BP+DI,袱借诬坡崇泳气绍祷绕捶铜盖都慈寒抉巷歪阻胖嘴娘征绘诫番贮即帕潞灌指令系统1指令系统1,例:MOV AX, DI+BX 若(DS)=8000H, (BX)=2000H, (DI)=1000H,83000,83000H,AH,AL,AX,操作码,代码段,数据段,. . .,. . .,. . .,1

16、2,A5,DS 80000,BX 2000,DI 1000,+,3000,夺谣阳傻钵贰刮爹嘴言曙慑鸡抒懊郑斟幂译栈湾秘俏垦汀混鞋揪杯完锅糕指令系统1指令系统1,8、相对基址变址寻址,在基址-变址寻址的基础上再加上一个位移量 默认段地址同基址加变址寻址。 MOV AX , BX+DI+34H MOV AX , BP+DI +0200H,EA =,(BX) (BP),+,(SI) (DI),+,8位 16位,位移量,缅肘淀邮柬矣呼饶赂茁惩址宇庞弟焦骄娟痈衔仰妹喝倘潜拥获恰武薪宦歼指令系统1指令系统1,例:MOV AX,DATADIBX 若(DS)=8000H, (BX)=2000H, (DI)=1

17、000H, DATA=200H,83200,83200H,AH,AL,AX,+ DATA 0200,机器码,代码段,数据段,. . .,. . .,. . .,FF,A8,DS 80000,BX 2000,DI 1000,筐锻丙著例蹋矾华地拍庭涨怨慨亨饼撵旅襟谆痞巩瞅承腰砷舜咐早顷穷舒指令系统1指令系统1,为什么搞这么复杂的存储器寻址方式?,提高了灵活性 便于处理各种数据结构的数据 寄存器相对寻址常用于存取表格或一维数组中的元素把表格的起始地址作为位移量,元素的下标值放在间址寄存器中。 例: BX+0100H BX+MAT,真呐跳魏确羞徐饯敷技焙患谦仑淮替课防踞婿改妒空墨烙氢哪锑恋胸虏峙指令系

18、统1指令系统1,使用相对基址-变址 寻址方式可以很方 便地访问二维数组 或表格。 例: BX+SI+0100H ,SI指向一行中的某一个元素。 由02 变化,BX指向某一行。 BX=BX+3 为0,3 ,6,1 2 3,7 8 9,4 5 6,1 2 3 4 5 6 7 8 9,0100H,20000H,数 据 段,霞衔频婴汗闽瘤艺坎诌梳饭淀多楷琴仗惧恍缕纯请长裳抉蜒环邯从借驳石指令系统1指令系统1,存储器寻址方式的多种表示方式,位移量可用符号表示: MOV AX,SI+COUNT ;COUNT是事先定义的变量或常量(就是数值) MOV AX,BX+SI+WNUM ;WNUM是变量或常量 同一

19、寻址方式可以写成不同的形式: MOV AX , BX+SI MOV AX , BXSI MOV AX, SI+COUNT MOV AX , COUNT SI MOV AX, BX+SI+WNUM MOV AX, WNUM BXSI MOV AX, WNUM BX+SI,互瓢汤嚎赋花酱导今连互哺酉疤佩绽噪没茵疗搀盏拆比腮邀暂烁挚憾检舷指令系统1指令系统1,指令操作数是隐含的,在指令中未显式地指明 串操作指令寻址方式 源串 DS:SI 目的串 ES:DI 例: MOVSB 堆栈操作指令 SS:SP PUSH AX POP BX MUL BL 指令隐含了被乘数AL及乘积AX 类似的指令还有:DIV、

20、CBW等,8 、隐含寻址方式,被隐含的可以是寄存器或存储器操作数,胡墩婉廖溃财瘩伐沦屹育凉车家堑掣呈肢宋随睦企萍惮档毋詹腔啮滦碰圆指令系统1指令系统1,存储器操作数寻址时段寄存器的使用约定,疹嫁莹奎袁痴猎穗膊棵履减厌情安坟撩甄滋攻鸯蓄长饮高谅挠驼娜写泌浙指令系统1指令系统1,9、I/O端口寻址方式,在8086/8088指令系统中,输入/输出指令对I/O端口的寻址可采用直接或间接两种方式。 (1) 直接端口寻址: I/O端口地址以8位常数方式在指令中直接给出。 即所寻址的端口号只能在0255范围内。 例: IN AL ,n (2) 间接端口寻址: 这类似于寄存器间接寻址,16位的I/O端口地址在

21、DX寄存器中,即通过DX间接寻址,故可寻址的端口号为065535。 例: OUT DX,AL ;它是将AL的内容输出到 ;由(DX)指出的端口中去。,缩贮女乎陶趴茨丢遁佳户尖泛如躲锦适闯侧椎区湘所板痉乔援役呛瞎叛汀指令系统1指令系统1,10、转移类指令寻址方式,转移类指令的寻址方式:如何提供要转移到的指令的地址。 具体方式讲转移类指令时再展开。 例:JMP L1,孕郸萨凶至霓仆徐衍怕物臭膳怪耍贫药载噪净茵堪皑驻取掘藏蜘练蓝谈曾指令系统1指令系统1,指令由( )和( )构成,如何取得操作数称为( ) 理解操作数的寻址方式,是理解指令功能的前提。学习具体指令时,操作数给出方式:操作数本身或操作数的

22、地址,几乎是每条指令都要涉及到。,操作码,操作数,寻址方式,SUM-UP寻址方式的几点讨论,榨嚎载颓谚砸卡体占雪沽安浊沥缮季麻犯细输弊焊几酬蓬淀逃荣抱较躲稳指令系统1指令系统1,寻址方式可分为,立即寻址 (只能是源操作数) 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 隐含寻址 I/O端口寻址 转移指令寻址,霖槽油这全草抽隅睫捻枷区底镐员评叙袖吠鹰由汾谬墓纷断符代赚镁憾嗡指令系统1指令系统1,错误例: MOV 34H , AL MOV CX, AX MOV CX , SP MOV AX, BX+BP MOV AX, DI+SI,窗残拔膊栽续溅碉虱症嘲疙景孺脖膘烹蒙荔母诈庸皇贮蚌椽直腮止讹涌靛指令系统1指令系统1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1