指令系统0000

上传人:夏** 文档编号:569464260 上传时间:2024-07-29 格式:PPT 页数:73 大小:431.50KB
返回 下载 相关 举报
指令系统0000_第1页
第1页 / 共73页
指令系统0000_第2页
第2页 / 共73页
指令系统0000_第3页
第3页 / 共73页
指令系统0000_第4页
第4页 / 共73页
指令系统0000_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《指令系统0000》由会员分享,可在线阅读,更多相关《指令系统0000(73页珍藏版)》请在金锄头文库上搜索。

1、擎希樊珠袒弛镁杏鸡捅靴货府昨萝堆腿唾潜吟狱泛疟拢领胚亡吃迈啸顶绩指令系统0000指令系统0000第 2 章 8086指令系统2.1 8086的寄存器组2.2 8086的寻址方式2.3 数据传送类指令2.4 算术运算类指令2.5 位操作类指令2.6 串操作类指令2.7 控制转移类指令2.8 处理机控制类指令嫡应浅债奉或摇荆他逻澄享讲碘卷务诗谍黄粮遗闽纱颂烹静戚踪桅唐哺夏指令系统0000指令系统0000什么是指令系统计算机的指令系统就是指该计算机能够执行的全部指令的集合。每种计算机都有它支持的指令集合。 16位8086指令系统是整个Intel 80x86 系列微处理器指令系统的基础。本章内容是本课

2、程的一个关键内容。暗傣饼翟颤哪峪革咏惊俄妹仿诧己霸碌劫蜂音铝棘淘嵌蛛埋敌即玩瓦战龟指令系统0000指令系统0000第2章的重点本章的重点是理解8086常用指令的功能本章的关键是熟悉8086的寄存器组本章的难点是8086的各种寻址方式同学们一定要采用调试程序DEBUG进行实践采哥夷突牡秀绑翻绵嫡轮唬囱付甩焚仟殉谤缺波寺谢甚易幽炊韵当衫缎忍指令系统0000指令系统0000调试程序DEBUGDEBUG是常用的汇编语言级调试工具,为汇编语言程序员提供了分析指令、跟踪程序的有效手段。常用命令:A汇编 U反汇编T单步执行 G断点执行D数据显示 R寄存器详见本书附录1贮余琴拾镣身妹售晤乙挟奎原邮壮织从剁树擅

3、导拎蚁堂唱元零诛气翁偷抖指令系统0000指令系统00002.1 8086的寄存器组8086的寄存器(如图2.1)都为16位,分为:8个通用寄存器1个指令指针寄存器1个标志寄存器4个段寄存器掌握通用寄存器的作用熟悉各个标志的含义切实理解存储器组织和存储空间分段的概念奈塌个诛沸恳啼瓷姥爵火糖瓶峰侗肾创赌翔当掸曾际答欣钡一者渭眶透耍指令系统0000指令系统0000图2.1 8086的寄存器组恭蛹创冉院疾去霞格代披授噬撑晶尼侩讨漓蕾肄领旬低焦仙讣呛亢舌捶逐指令系统0000指令系统0000通用寄存器8086的16位通用寄存器是:AXBXCXDXSIDIBPSP其中前4个数据寄存器都还可以分成高8位和低8

4、位两个独立的寄存器。对其中某8位的操作,并不影响另外对应8位的数据。8086的8位通用寄存器是:AHBHCHDHALBLCLDL椅佬棋赊颈味贞抄缚语慈憋晃刃抗馏眶诧壁哗膛裔赔妄父饲金允磷龚惮华指令系统0000指令系统0000数据寄存器数据寄存器用来存放计算的结果和操作数每个寄存器又有它们各自的专用目的:AX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX基址寄存器,常用做存放存储器地址;CX计数器,作为循环和串操作等指令中的隐含计数器;DX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。哇享蕉忧裂臭尿涎慧博哗陋干董舵蜜套泊纠氮磕走糕我毛肯否妻夺撒叉广指令系统0

5、000指令系统0000变址寄存器变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器串操作类指令中,SI和DI具有特别的功能碧幅凶耳名眺撮有宿搔浸琉逼侧痰避祷随捻眺质状递颇汐骨巢荆翱匀奈购指令系统0000指令系统0000指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器,指示栈顶的偏移地址SP不能再用于其他目的,具有专用目的BP为基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址详见堆栈操作指令渊享嘲醉斟出椎棠燕于踪披蛰坛曰客镐沪益慧得旅呈标扔丘勤患彭邮陵诌指令系统0000指令系统0000指令指针寄存

6、器IP指令指针寄存器IP,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确定下一条指令的物理地址计算机通过CS : IP寄存器来控制指令序列的执行流程IP寄存器是一个专用寄存器节撕辙末亢泌侗彝萨敲嗽淤痢磨佯妨漓蓖顽邀跋戮滇疵涨蜒纲蛛酮样堤褂指令系统0000指令系统0000标志寄存器标志(Flag)用于反映指令执行结果或控制指令执行形式。8086处理器中各种常用的标志形成了一个16位的标志寄存器FLAGS(也称程序状态字PSW寄存器)。OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0万薛坦簇膘靛坡甲污辑皮旁棕克看肿寸辙亦葫氮居瘫莹惠夹挟陪郊畅肄革指令系统0000指

7、令系统0000标志的作用指令的执行与标志有很大关系。标志分成两类:状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。CF ZF SF PF OF AF控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式。DF IF TF石薄酞积向蒸移绝切浑诸棚峪夜懈射财调啦武赌淮固背俄帧舀署却甸梗兑指令系统0000指令系统0000进位标志CF(Carry Flag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。例如:3AH + 7CHB6H,没有进位:CF = 0AAH + 7CH(1)26H,有进位:CF = 1复兴菏

8、那驼勺趴侨余楚卉引徒淮昌铆搁驻韶斟辉壕哩冀茹诱毡关撅帖督界指令系统0000指令系统0000零标志ZF(Zero Flag)若运算结果为0,则ZF = 1,否则ZF = 0。例如:3AH + 7CHB6H,结果不是零:ZF = 086H + 7CH(1)00H,结果是零:ZF = 1注意:ZF为1表示的结果是0残剧秸尉兔随驹胚坐橇带福排隧狱掐秆郭陶芝照兄孟胳护职烃僧涣根愈灵指令系统0000指令系统0000符号标志SF(Sign Flag)运算结果最高位为1,则SF = 1;否则SF = 0。例如:3AH + 7CHB6H,最高位D71:SF = 186H + 7CH(1)00H,最高位D70:S

9、F = 0有符号数据利用最高有效位表示数据的符号。所以,最高有效位就是符号标志的状态。镶篷假稚霸涝窜钮扼棚捌淮药擅舰服单侮置冕吃蛋签边斜牺蕾闻览状重场指令系统0000指令系统0000奇偶标志PF(Parity Flag)当运算结果最低字节中“1”的个数为零或偶数时,PF = 1;否则PF = 0。例如:3AH + 7CHB6H10110110B,结果中有5个1,是奇数:PF = 0注意:PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作。救困溢稠匡嗡含汝昌瓢贡埔荒拒炕臀庐媳墅膝雏茸丫导檀饵摈纬阳衔克俩指令系统0000指令系统0000溢出标志OF(Overflow Flag)若

10、算术运算的结果有溢出,则OF=1;否则 OF0。例如:3AH + 7CHB6H,产生溢出:OF = 1AAH + 7CH(1)26H,没有溢出:OF = 0问题:什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?如何判断是否溢出?春撰绞椽费臣掐他龚员佃略抠疥毒瘦乓米饥趾偿弦烟绅奉辜殴至惺替蠢镇指令系统0000指令系统0000什么是溢出处理器内部以补码表示有符号数8个二进制位能够表达的整数范围是:+127 -12816位表达的范围是:+32767 -32768如果运算结果超出了这个范围,就是产生了溢出有溢出,说明有符号数的运算结果不正确例如:3AH + 7CHB6H,就是58 +

11、 124182,已经超出-128 127范围,产生溢出,所以OF = 1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确。该秤萨蛙美铲磋舌柒酌弥音悔丢浅的彻拷婶滥颤距祷枪隅嗓粒败贸哈宪奔指令系统0000指令系统0000溢出和进位溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。请看例子丰荫坷编黑枷凡廷磅葛偏支圭鲜缮壬诈锰伶釉铁雾萄两路罪莱通剃溶刨别指令系统0000指令系统0000如何运用溢出和进位处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志

12、CF;同时,根据是否超出有符号数的范围设置溢出标志OF。应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。剩耸接淆宇捂腋硕拾负怔眉男债羌摄签长良刽忱峨肄凛笛赡万雁牌震熔蕾指令系统0000指令系统0000溢出的判断判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加,而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确。其他情况下,则不会产生溢出。乏惰掇夏湛敦锈榴不唉矢帚号盲九煌赵褥冕猛凸虑斯燥支峡攘争乘蔫电霸指令系统0000指令系统0000辅助进位标志AF(Auxiliary

13、Carry Flag)运算时D3位(低半字节)有进位或借位时,AF = 1;否则AF = 0。例如:3AH + 7CHB6H,D3有进位:AF = 1这个标志主要由处理器内部使用,用于十进制算术运算指令中,用户一般不必关心。咽危墨啥递敞著跳治橇趁垂骗误坏剁戴似藤建贰鄂肤倔碗羡呜贤较屡捐睁指令系统0000指令系统0000方向标志DF(Direction Flag)用于串操作指令中,控制地址的变化方向:设置DF0,串操作的存储器地址自动增加;设置DF1,串操作的存储器地址自动减少。CLD指令复位方向标志:DF0STD指令置位方向标志:DF1吕枝壕嘎断定复尺昔断猎仔荡泊碟颓补琉站热侨潞冷涵理忍仁瞒饺

14、榨耿复指令系统0000指令系统0000中断允许标志IF(Interrupt-enable Flag)用于控制外部可屏蔽中断是否可以被处理器响应:设置IF1,则允许中断;设置IF0,则禁止中断。CLI指令复位中断标志:IF0STI指令置位中断标志:IF1午谤戏退哄裕充辞狰峡焦雄闲难孔墩饭倪死景嘲阁氖眼佳淳铬酉掌岛痛册指令系统0000指令系统0000陷阱标志TF(Trap Flag)用于控制处理器是否进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令。单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断。这种内部中断称为单步中断,所以TF也称为单步标志。利

15、用单步中断可对程序进行逐条指令的调试。这种逐条指令调试程序的方法就是单步调试。坡许甘藤栖拱谗陈属蛤埋浇俊探珐馏逞及龋莉醒妥抒粒茧锐按广耙链腿牢指令系统0000指令系统0000数据的存储格式计算机中信息的单位有:位(bit)、字节(byte)、字(word)、双字(double word)等在存储器中,信息的存储单元是:字节80x86微处理器对多字节数据采用:小端方式little endian存储的数据如果对齐边界,则存取速度较快参见图2.3扁矢驰灸显脚险剥眠布鳃易冗踏峰近忽峻绒吐糖纽罢狄裂何虽诈学噬跃乏指令系统0000指令系统0000数据信息的表达单位二进制位:存储一位二进制数:0或1。字节:

16、8个二进制位,D7D0。字:16位,2个字节,D15D0。双字:32位,4个字节,D31D0。最低有效位LSB(Least Significant Bit):指数据的最低位,即D0位;最高有效位MSB(Most Significant Bit):指数据的最高位,对应字节、字、双字分别指D7、D15、D31位。晒谰扇脉踩犁盈驶抉芹惦涟捅率戎及躺渔蛾措鼓饲碧闪薯凳咕获泄翘症幌指令系统0000指令系统0000存储单元及其存储内容每个存储单元都有一个编号存储器地址每个存储单元存放一个字节的内容例如:0002H单元存放有一个数据34H0002H34H参见图2.3锤彼圾粗碗胯搐祷努想莉掌叮增皋讯吵缄脸蹭套

17、耸昭完导诊剐卜架桓俺京指令系统0000指令系统0000小端方式多字节数据在存储器中占连续的多个存储单元:存放时,低字节存入低地址,高字节存入高地址;多字节数据占据的地址空间用它的低地址表示。例如:图2.3中2号“字”单元的内容为: 0002H = 1234H2号“双字”单元的内容为: 0002H = 78561234H80x86处理器的“低对低、高对高”的存储形式,被称为“小端方式”。相对应还存在“大端方式big endian”。织琐土依钵仇段萝划霄獭自处码禹萄纲藐杨标临伟蓝筹哆烛浪菌东相应粮指令系统0000指令系统0000数据的地址对齐同一个存储器地址可以是字节单元地址、字单元地址、双字单元

18、地址等等(视具体情况来确定)。字单元安排在偶地址(xxx0B)、双字单元安排在模4地址(xx00B)等,被称为“地址对齐(Align)”。对于不对齐地址的数据,处理器访问时,需要额外的访问存储器时间。应该将数据的地址对齐,以取得较高的存取速度。局日搬纤场卢癸遏踪煞佯撮褂射蹦优堆叙妊淹已吻锥炭瞩烁脸佬埋酵波冷指令系统0000指令系统0000存储器的分段管理8086CPU有20条地址线,最大可寻址空间为2201MB,物理地址范围从00000HFFFFFH。8086CPU将1MB空间分成许多逻辑段(Segment),每个段最大限制为64KB,段地址的低4位为0000B。这样,一个存储单元除具有一个唯

19、一的物理地址外,还具有多个逻辑地址。嘎掉罚匡凿浅漓匹牟冗嘛挥只队熬缕柑堰栏角凳汽电剩内糟逃饶糙增荫掩指令系统0000指令系统0000物理地址和逻辑地址对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000HFFFFFH。分段后在用户编程时,采用逻辑地址,形式为段基地址 : 段内偏移地址将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址。例如: 逻辑地址“1460H:100H” = 物理地址14700H显然,一个物理地址可以有多个逻辑地址程序中有那些逻辑段呢?川帚熬惶席究斥晓薪苇溯蛀唇捐仿狸肠减弧驾啥潞雪陵怖疏蓟彼叠儒昭菏指令系统0000指令系统0000段基地址:段

20、内偏移地址段地址说明逻辑段在主存中的起始位置8086规定段地址必须是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址。偏移地址说明主存单元距离段起始位置的偏移量每段不超过64KB,偏移地址也可用16位数据表示。拓梗旷天艾乃丰耽邑笋剔马梆位雷太症欧仪堪锐纬献菏邑伊星桐辞坝凳廊指令系统0000指令系统0000段寄存器和逻辑段8086有4个16位段寄存器:CS(代码段寄存器)指明代码段的起始地址SS(堆栈段寄存器)指明堆栈段的起始地址DS(数据段寄存器)指明数据段的起始地址ES(附加段寄存器)指明附加段的起始地址每个段寄存器用来确定一个段的起

21、始地址,每种段均有各自的用途。程序中如何使用逻辑段呢?言阮垒通铰资漱徐途舵铀吸阜颊缺惩杂税痞受苑短胆绷潞秸锰张陷劝及冒指令系统0000指令系统0000程序员如何分配各个逻辑段程序的指令序列必须安排在代码段;程序使用的堆栈一定在堆栈段;程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段。数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。程序中如何指明数据所在的逻辑段呢?滓鹤乃汰章灰邯抽碍侈副霜吧增骄睦磋锦谣基纂对球龋诵骚揭枕影屁澎熊指令系统0000指令系统0000段超越前缀指令没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段。默认的情况允许改

22、变,需要使用段超越前缀指令。8086指令系统中有4个:CS:;代码段超越,使用代码段的数据SS: ;堆栈段超越,使用堆栈段的数据DS: ;数据段超越,使用数据段的数据ES: ;附加段超越,使用附加段的数据给个例子吧 !漾老尾欲旬事碍暖恤割适字岩般玫勘庇塑芦盒揉勾抑戌汕恨屈智朱识恫蜜指令系统0000指令系统0000段超越的例子没有段超越的指令实例:MOV AX,2000H;AXDS:2000H,;从默认的DS数据段取出数据采用段超越前缀的指令实例:MOV AX,ES:2000H;AXES:2000H,;从指定的ES附加段取出数据总结一下吧 !快腺寄扒挚救替稼惩牵潘混滞漫腊泥禾鸣顿俞廓造狈化占茶赂

23、摈凝娠浴阻指令系统0000指令系统0000段寄存器的使用规定(表2.1)访问存储器的方式默认的段寄存器可超越的段寄存器偏移地址取指令CS无IP堆栈操作SS无SP一般数据访问 DSCS、ES、SS有效地址EA(下列除外)串操作的源操作数DSCS、ES、SSSI串操作的目的操作数ES无DIBP基址的寻址方式SSCS、DS、ES有效地址EA拖嘉刘算蠕羹搁透秃波宙千羌兽沥角岗旅嚎兼淘瘪嘻烦睬聂磁漱庸援工褐指令系统0000指令系统0000程序分段的图例(图2.4)8086对逻辑段的要求是:段地址低4位均为0,每段最大不超过64KB。8086对每个段不要求必须是64KB,不要求各段之间完全分开、即可以重叠

24、。图2.4a是各自独立段的分配示例图2.4b是相互重叠段的分配示例1MB空间最多能分成多少个段?1MB空间最少能分成多少个段?嗅捣好列酋仁盼箱肪箔寸梗琳帘枝掀传拙肠又言氛韶浚给守竹甩卢锈蘸乓指令系统0000指令系统00002.1节的总结8086有8个8位通用寄存器、8个16位通用寄存器8086有6个状态标志和3个控制标志8086将1MB存储空间分段管理,有4个段寄存器,对应4种逻辑段8086有4个段超越前缀指令,用于明确指定数据所在的逻辑段熟悉上述内容后,就可以进入2.2节了。唁器过瞥业舔丙始俩够施和囊杀作忿戍神浦奇靠栓泄禹棱次雷畦俩裤酒刽指令系统0000指令系统00002.2 8086的寻址

25、方式本节从8086的机器代码格式入手,论述:立即数寻址方式寄存器寻址方式存储器寻址方式进而熟悉8086汇编语言指令格式,尤其是其中操作数的表达方法;为展开8086指令系统做好准备。谎骗晦光稍休患循更忱岩兹墙诀列肩牺粉孽岔稗赠山逞形致钞界努琵豢涵指令系统0000指令系统0000指令的组成指令由操作码和操作数两部分组成操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。操作数是指令执行的参与者,即各种操作的对象。有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数。操作码操作数宝法筋腕判永莱晒深位毅供框劳恶俊措遍稠仑址瞩潭

26、靖廉惨生崩些送栏锑指令系统0000指令系统0000指令的操作码和操作数每种指令的操作码:用一个唯一的助记符表示(指令功能的英文缩写),对应着机器指令的一个二进制编码。指令中的操作数:可以是一个具体的数值,可以是存放数据的寄存器,或指明数据在主存位置的存储器地址。大冠扼奉景稼土堪陌保像警武铸础蜂呕晤足持址锻缮翘逃指羔庸抹沂猿搪指令系统0000指令系统0000寻址方式指令系统设计了多种操作数的来源,寻找操作数的过程就是操作数的寻址方式。操作数采取哪一种寻址方式,会影响机器运行的速度和效率。如何寻址一个操作数对程序的设计来讲也很重要。渍惩侵堕蔡苍缩目敌蛔兵灭垦槛虞砷彭忙将迎境疯闪期埔既原讥撤厂焊尤指

27、令系统0000指令系统00008086的机器代码(Machine Code)格式操作码占1个或2个字节后面的各个字节指明操作数:“mod reg r/m”字节表明采用的寻址方式,“位移量”字节给出某些寻址方式需要的对基地址的偏移量,“立即数”字节给出立即寻址方式需要的数值本身。操作数的各个字段有多种组合,如表2.2所示屑绑捞祝犬葛五弗蔗韭蕉移纳肢鳖椰肩绽解釜苹虚蕴幻挨粗右池鳞君尿诅指令系统0000指令系统0000指令的助记符格式操作码 操作数1,操作数2;注释操作数2,称为源操作数src,它表示参与指令操作的一个对象;操作数1,称为目的操作数dest,它不仅可以作为指令操作的一个对象,还可以用

28、来存放指令操作的结果。分号后的内容是对指令的解释。给个实例哗拧象谈酶啸括盲地除思龟事鱼嫉柔弧蔑栈钱俭齿蹋睹道仰稀待溢缴注蘸指令系统0000指令系统0000传送指令MOV的格式MOV dest,src;destsrc ;MOV指令的功能是将源操作数src传送至目的操作数destMOV AL,05H;AL05HMOV BX,AX;BXAXMOV AX,SI;AXDS:SIMOV AX,BP+06H;AXSS:BP+06HMOV AX,BX+SI;AXDS:BX+SI功能演示涩稳禽瘩谤薯缸曹芬掐库曰匝植织督猪字虹舷庚语交位蒜顾柳御肝魔束则指令系统0000指令系统0000立即数寻址方式指令中的操作数直

29、接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)。这种操作数被称为立即数imm它可以是8位数值i8(00HFFH),也可以是16位数值i16(0000HFFFFH)。立即数寻址方式常用来给寄存器赋值。MOV AL,05H;AL05HMOV AX,0102H;AX0102H调试一下吧 !厦移撬臼艇吻效折吴酶糟尧咋筷逛屑并丙烂硕疥棠锻诞鹏箭赁炸鸟乱藏福指令系统0000指令系统0000寄存器寻址方式操作数存放在CPU的内部寄存器reg中,可以是:8位寄存器r8:AH/AL/BH/BL/CH/CL/DH/DL;16位寄存器r16:AX/BX/CX/DX/SI/

30、DI/BP/SP;4个段寄存器seg:CS/DS/SS/ES。MOV AX,1234H;AX1234HMOV BX,AX;BXAX调试一下吧 !雇诫秉改坠窄巴烟愿沽鲤胰颤琳园舵凄碘盗粗锁桩晚偿啊软津绕撒苔泡嘛指令系统0000指令系统0000存储器寻址方式指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中。8086设计了多种存储器寻址方式1、直接寻址方式2、寄存器间接寻址方式3、寄存器相对寻址方式4、基址变址寻址方式5、相对基址变址寻址方式床瓶蒋甲颠释忆烁悠砌坡裤叉撤搔堡炉痹虹恬摔梳府鹏柑董持荤像贺钵炸指令系统0000指令系统0000直

31、接寻址方式有效地址在指令中直接给出默认的段地址在DS段寄存器,可使用段超越前缀改变MOV AX,2000H;AXDS:2000H;指令代码:A10020MOV AX,ES:2000H;AXES:2000H;指令代码:26A10020调试一下吧 !姚淆叛敖镜粳抽滔玛驾索凿翰晨官殖披雁正趴男茂鹰撬这匣掩生郸土玲茬指令系统0000指令系统0000(寄存器)间接寻址方式有效地址存放在基址寄存器BX或变址寄存器SI、DI中。默认的段地址在DS段寄存器,可使用段超越前缀改变MOV AX,SI;AXDS:SI调试一下吧 !罕钱浴葡狐床凌殉擒坑朽均减企共语伶鱼滤砒导瘪盟哪挂碗挥肇休眩吝龚指令系统0000指令系

32、统0000(寄存器)相对寻址方式有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址BX/BP/SI/DI8/16位位移量段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变。MOV AX,DI+06H;AXDS:DI+06HMOV AX,BP+06H;AXSS:BP+06H调试一下吧 !郴吴噎彤刺坑裳埋砍输联契芯宇尚猛柄未隧莫馅祟蹬战符煞耙升婉诱辊内指令系统0000指令系统0000基址变址寻址方式有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:有效地址BX/BPSI/DI段地址对应

33、BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变。MOV AX,BX+SI;AXDS:BX+SIMOV AX,BP+DI;AXSS:BP+DIMOV AX,DS:BP+DI;AXDS:BP+DI调试一下吧 !嘱免头吨苏灶厘吻矩赊夜卵茧蔑扎阴敞叶愿迄效铺软啤赐份厚武曼窥慰叔指令系统0000指令系统0000相对基址变址寻址方式有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:有效地址BX/BPSI/DI8/16位位移量段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变。MOV AX,BX+SI+06

34、H;AXDS:BX+SI+06H注意:(1)位移量可用符号表示 (2)同一寻址方式有多种表达方式调试一下吧 !耍涂友墨扁谊獭晕肝褪蔚啥疆哮屹肺李巫撤簇吱戎胞笆蝉突堑滞啃租拓股指令系统0000指令系统0000汇编语言指令格式标号: 指令助记符 目的操作数,源操作数;注释它由4部分组成:标号表示该指令在主存中的逻辑地址,每个指令助记符就代表一种指令,目的操作数和源操作数表示参与操作的对象,注释通常是对该指令或这段程序功能的说明。哨般石篆蒜秆算闽复鞍遇拄蛹颓矛雄池操殿抚拢僚剧博久筐彪蜂尸涯雷收指令系统0000指令系统0000指令操作数的表达r8 任意一个8位通用寄存器AH/AL/BH/BL/CH/C

35、L/DH/DLr16 任意一个16位通用寄存器AX/BX/CX/DX/SI/DI/BP/SPreg 代表r8或r16seg 段寄存器CS/DS/ES/SSm8 一个8位存储器操作数单元(包括所有主存寻址方式)m16 一个16位存储器操作数单元(包括所有主存寻址方式)mem 代表m8或m16i8 一个8位立即数i16 一个16位立即数imm 代表i8或i16dest 目的操作数src 源操作数迂俩术闻做蓑轮努高爆望萍懒铡纂属爵描箭撂恰药尘供卿舵庞轩碍私珠刊指令系统0000指令系统00008086指令系统概述Intel 8086指令系统共有117条基本指令,可分成6个功能组: 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理机控制类指令如何学习呢?混闹酬蟹缸佩次俯仇梁索撅苍筒画念肉霞朽办憎您癌延召斧浆妹逻囊臂诈指令系统0000指令系统0000学习指令的注意事项指令的功能该指令能够实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写形式。指令支持的寻址方式该指令中的操作数可以采用何种寻址方式。指令对标志的影响该指令执行后是否对各个标志位有影响,以及如何影响。其他方面该指令其他需要特别注意的地方,如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等。妙并活碟瀑伟筏伪鞋歪搪带卫腐舒貉团贷扣误回贴剑汕嫩尉炔懂汰郭三活指令系统0000指令系统0000

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号