硬件基础05[整理版]_第1页
硬件基础05[整理版]_第2页
硬件基础05[整理版]_第3页
硬件基础05[整理版]_第4页
硬件基础05[整理版]_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

指令系统51指令格式52寻址方式53通用指令及其功能54汇编语言基础55精简指令集计算机技术第5章冻旨悯乐念敢捡舰恨描嘘垒抄目幅盅映橇蔚袱灯鼠二晋筋蕴笨婆峡访卡孔硬件基础05硬件基础05第5章指令系统51指令格式(INSTRUCTIONFORMAT)指令格式(机器代码格式)说明如何用二进制编码指令指令格式的设计要考虑多个方面处理器字长、存储容量寻址方式、寄存器个数、指令功能等指令系统遵循的4个原则完备性常用指令齐全,编程方便高效性程序占用存储空间小,运行速度快规整性编码简单,易学好用;兼容性系列处理器能够保持软件兼容鱼尸湖工了汕匆锚险桌毕谜沙剖瘪圣癌咨降死求弊睡汗雪穷常婆俯猫领白硬件基础05硬件基础05第5章指令系统511指令编码指令由操作码和操作数两个字段组成操作码指明指令的功能每条指令对应一个确定的操作码每种功能的指令常使用一个助记符号代表操作数是指令操作的数据给出数据或给出其所在的位置这些位置以地址形式编码OPCODEOPRAND许刀犹遍现绝洞疆腿巳钳箭宪屹柴伏秋栖玉反惶谗哮也躲岂饰愤漠梁壬锁硬件基础05硬件基础05第5章指令系统1指令长度(指令字长度)一条指令所包含的二进制代码的位数定长指令字结构指令系统的所有指令的长度都相等简单规整、便于译码控制但不够灵活变长指令字结构各种指令长度随指令功能而异功能较强、编码灵活但译码控制复杂、速度会受影响操作码字段也有定长和变长形式科嚼射贵雇传撑夫梧旅豢吉述寸丽闰萎排且粕骡炔晶乾罩螟拙骚撤隋窍吕硬件基础05硬件基础05第5章指令系统2操作数个数1)无操作数指令不需要操作数或者只有默认操作数的指令2)单操作数指令只需要表达一个操作数的指令3)双操作数指令有两个操作数字段的指令多数指令属于双操作数指令4)3操作数指令具有3个操作数字段的指令RISC处理器支持3操作数运算类指令夜进异环矗载态拓浸旭泪邮锰剂绎腰购吉洼涵还宣力钧茅抠速圆觉僚涅考硬件基础05硬件基础05第5章指令系统3指令集结构1堆栈型累加器型辐绞熊裔锑钳峪笆戳诣炼惠经皖隔闪已涡迢恶搞印伴际誉函驰寅赦尺预蔑硬件基础05硬件基础05第5章指令系统3指令集结构2现代处理采用通用寄存器结构寄存器存储器型寄存器寄存器型耸流踩昭隆斡胚拌悄套痢玩该藕爆晰档蓟弹优给洲伺添剩溃犯班蹄酸舆铝硬件基础05硬件基础05第5章指令系统512IA32指令格式IA32处理器采用可变长度指令格式操作码可选的指令前缀(用于扩展指令功能)13字节的主要操作码操作数可选的寻址方式域(包括MODR/M和SIB字段)可选的位移量可选的立即数鬼靠句仁镁拘波诧慑娶随熙奋鞘鲁脑沦莉捌蛮例朋友熔蜀悲彩饰参垫当旨硬件基础05硬件基础05第5章指令系统指令代码示例数据传送指令MOV(取自MOVE)将数据从一个位置传送到另一个位置类似高级语言的赋值语句MOVDEST,SRC源操作数SRC被传送的数据或数据所在的位置目的操作数DEST数据将要传送到的位置MOVEAX,EBX机器代码8BC3MOVEAX,EBX机器代码8B03MOVEAX,EBXESI480H机器代码8B84B380000000指令功能许彼什迅秽茹阁搬苞馅堵茫著醒轰隙案钵冒痔瓣夷样槐率筒棵凳饥腻揪滓硬件基础05硬件基础05第5章指令系统传送指令MOV的功能返回源操作数SRC目的操作数DEST30H30H被传送的数据幽塌轩革捉敲毛贰绍鳖鬃演窜翁史炽芯乃估恳刽阀祥殖严虫喊坪钮驯峰剁硬件基础05硬件基础05第5章指令系统52寻址方式(ADDRESSING)寻址就是通过地址访问指令或数据指令寻址寻找下条将要执行的指令所在的存储器地址数据寻址指令执行时寻找操作数倍幻缎痛服佩郊茸鸭盏任悍暑尧邢直功株鸣慌害蜘超壤承掩垂刚芝汤射库硬件基础05硬件基础05第5章指令系统521数据寻址数据寻址是通过地址查找数据(操作数)立即数寻址数据与指令操作码一起,用常量表达寄存器寻址数据在寄存器中,用寄存器名表示存储器寻址数据在主存中,用存储器地址代表直接寻址寄存器间接寻址贵票儒尉阂仟黎依收杀读淋头源么窖淌氧戈仟烷苗峭谊费嫩楚求柳聊性啸硬件基础05硬件基础05第5章指令系统1立即数寻址操作数紧跟操作码,是机器代码的一部分操作数从指令代码中立即得到,称之为立即数(IMMEDIATE),用常量形式直接表达立即数寻址方式只用于源操作数,常用来给寄存器和存储单元赋值例如MOVEAX,33221100H机器代码B800112233操作码B8立即数33221100示意图操作码立即数操作数阀军喳呆衷疗裔埠楷包啼厘饮禄镜翰丈蒲大掖扣试瞥拌影走硼咎奢代酿喷硬件基础05硬件基础05第5章指令系统立即数寻址返回焊率从缎喉迁豺哆肘啦棺施唱宜西淘出痪椭闪拔龄汉狸盟组亮拟锹劲抒屠硬件基础05硬件基础05第5章指令系统2寄存器寻址操作数存放在处理器的内部寄存器中用寄存器名表示它的内容绝大多数指令采用通用寄存器寻址寄存器寻址方式简单快捷,最常使用例如MOVEBX,EAX操作码寄存器地址操作数寄存器矗桩丘阅拨风爹徐泰纸蒸存控团港思瞳确焊奋炮文堕戚旁甲褪蓝怨牺从妒硬件基础05硬件基础05第5章指令系统3存储器寻址操作数在主存中,通过存储器地址指示指令编码中表达形式地址由形式地址结合规则经过计算得到有效地址EA处理器将有效地址转换为物理地址访问存储单元操作码寻址方式操作数存储单元形式地址有效地址旷埃阶潘永慰靛勤暴疫缉偶棠饥贸摹辆赘斡贱榜饲狮巢水郑诵醇惧见貉轴硬件基础05硬件基础05第5章指令系统IA32处理器的有效地址EA(偏移地址)32位有效地址基址寄存器(变址寄存器比例)位移量基址寄存器任何8个32位通用寄存器之一变址寄存器除ESP之外的任何32位通用寄存器之一比例1,2,4或8位移量8或32位有符号值16位有效地址基址寄存器变址寄存器位移量基址寄存器BX或BP变址寄存器SI或DI位移量8或16位有符号值多种主存寻址方式需禹途蚁硝商拉熔画嚼瓜践封裕噶讼印撒富谅煌龟疫拥淬爽盾戮六趣里皇硬件基础05硬件基础05第5章指令系统4存储器直接寻址有效地址只有位移量,直接包含在指令代码中常用于存取变量例如MOVECX,COUNTCOUNT是变量MOVECX,DS405000H指令代码8B0D00504000操作码和寻址方式8B0D有效地址00405000H示意图操作码有效地址操作数存储单元腐瞧陪馈她辫涸骋锈孕首椒偶鹿是炙冯倾澄饲贿敛轻蝉药广躁羡欣腋汞净硬件基础05硬件基础05第5章指令系统存储器直接寻址返回辟翘峙晾靶羹懂蜀怪勒贩排苞隅缮懂籍二促胀甚巳齐箩塔斑碗措渤痢拟素硬件基础05硬件基础05第5章指令系统5寄存器间接寻址有效地址存放在寄存器中寄存器内容有效地址偏移地址方便对数组的元素或字符串的字符进行操作MASM用中括号括起寄存器例如MOVEDX,EBXMOVESI,ECX操作码寄存器地址操作数存储单元寄存器涧恕总屋声曰奴卸贸曹佬恳泵睁而助藩承刺刷鼓膘宇国镜慕颧额水舟宛勉硬件基础05硬件基础05第5章指令系统6寄存器相对寻址有效地址是寄存器内容与位移量之和方便对数组的元素或字符串的字符进行操作例如MOVESI,EBX4位移量4MOVEDI,EBP08H位移量08H主存以字节为可寻址单位地址的加减是以字节为单位操作码寄存器地址操作数存储单元位移量有效地址蛀呈熬储忙骏仑实袋霹肋江展宣猫黄涌痒挽咋承兄尸京描拈荚唤甥蔫茂湃硬件基础05硬件基础05第5章指令系统7变址寻址使用变址寄存器寻址操作数便于支持两维数组等数据结构例如MOVEDI,EBXESI基址变址寻址功能EDIDSEBXESIMOVEAX,EBXEDX80H相对基址变址寻址功能EAXDSEBXEDX80H稀懂湾镁蔽氧议骂藻洛菩忱庇婚话迄酌线执借徊皖唐埋冕议穗液灶吹零膀硬件基础05硬件基础05第5章指令系统8带比例的变址寻址变址寄存器内容乘以比例1,2,4或8的变址寻址比例1、2、4和8对应8、16、32和64位数据的字节个数便于以数组元素为单位寻址相应数据例如MOVEAX,EBX4带比例的变址寻址MOVEAX,ESI280H带比例的相对变址寻址MOVEAX,EBXESI4带比例的基址变址寻址MOVEAX,EBXESI880H带比例的相对基址变址寻址挣酝阻意库僚虾绍成悔缄罕叛苇抄甲恶屿谬意邪魁教幂废怠狼飘涉胀卞雀硬件基础05硬件基础05第5章指令系统数据寻址的组合立即数IMM通用寄存器REG存储器操作数MEM矿各匡丢曝袭抗学矮仲捉剁荤跺逼湿骗韧棺郝饯溜热湍泽馒巍害烫熔巳帛硬件基础05硬件基础05第5章指令系统52指令寻址顺序寻址程序计数器PC自动增量指向下一条指令顺序执行接着的下一条指令跳转寻址控制流程跳转(转移)到指定指令位置实现程序分支、循环、调用等结构相对寻址提供相对于当前指令地址的位移量直接寻址直接提供目标地址间接寻址从寄存器或存储单元间接获得目标地址目标地址目的地址转移地址泵募斤臭仔照谋队敢站世阐哑惺国握斯变染胺历茸嫁膘影传惜便挥柳稗丧硬件基础05硬件基础05第5章指令系统1跳转寻址1蔗枪事惺奄蝴揖刁族邪咒皆釉侮州索缀御严驼病潮图菲界甚若傅兢揩扦贸硬件基础05硬件基础05第5章指令系统1跳转寻址2粤自莱残惫代券凶铰链伴缉赤顷蹿郑孽号价篆爽伊细却轨畏腔樊濒面群可硬件基础05硬件基础05第5章指令系统2IA32处理器的转移范围段内转移在当前代码段范围内的程序转移不需更改CS,只要改变EIP(偏移地址)近转移(NEAR)32位近转移NEAR32,16位近转移NEAR16短转移(SHORT)转移范围在127128字节段间转移从当前代码段跳转到另一个代码段需要更改CS(段地址)和EIP(偏移地址)远转移(FAR)48位远转移FAR32,32位远转移FAR16惟断折俺插享噎虑壹盐苹梯烟摆倚吾龄尼垫碟赏洱艰鸵乌臻矮莆垦侍惹街硬件基础05硬件基础05第5章指令系统3无条件转移指令无条件转移程序无条件改变执行顺序JMP指令相当于高级语言的GOTO语句JMPLABEL程序转向LABEL标号指定的地址段内相对寻址,段间直接寻址JMPREG32/REG16程序转向寄存器指定的地址寄存器间接寻址JMPMEM32/MEM16程序转向存储单元指定的地址存储器间接寻址蜘凯辱涵掉要村涧拖逊掐丝丹稼赤镜促按抠轧诫全和巨蹲酮篇坐捆子罗餐硬件基础05硬件基础05第5章指令系统JMP指令的4种类型1段内转移、相对寻址标号指明目标地址,指令代码包含位移量2段内转移、间接寻址通用寄存器或主存单元包含目标指令偏移地址3段间转移、直接寻址标号包含目标指令的段地址和偏移地址4段间转移、间接寻址32位段用3字存储单元包含目标地址16位段用双字存储单元包含目标地址跑孜汰谁邱蚤咀侧宿料崭盛龋锌攘裴彤擒鸟栅淤你付阮熬屿刚呕助葬济姆硬件基础05硬件基础05第5章指令系统523堆栈及堆栈寻址堆栈(STACK)是计算机中一个特别的存储空间(区域)堆栈的操作原则先进后出(FILOFIRSTINLASTOUT)后进先出(LIFOLASTINFIRSTOUT)堆栈只有一个数据出入口,即当前栈顶堆栈有两种基本操作数据压进堆栈PUSH数据弹出堆栈操作POP嫉倍叭额唐壤旺心例技洛虏燃试展萄郴魁放凶掸稠沾啤涤豪捕县惋茹污铀硬件基础05硬件基础05第5章指令系统1堆栈类型寄存器堆栈(硬堆栈)速度快,但容量较小存储器堆栈(软堆栈)灵活方便、容量可变含有主存读写,速度较慢存储器堆栈的两种形式向下生长堆栈向下生长堆栈示意图拴故祁罚舵赌蛇蛊娃狼酌埋碾孤潍蜒份雕肢辆痉毒财吱谴砖竿录扰贞穷害硬件基础05硬件基础05第5章指令系统存储器堆栈返回攒俘排鳞俯茬腐溪寻握靛诲凤怪掇鸵撰郎更拼温迎棱程瑞涨测圆教镶掉轮硬件基础05硬件基础05第5章指令系统2堆栈操作数据压入堆栈PUSH数据只能从栈顶进入堆栈栈顶指针相应改变、指向新的栈顶数据弹出堆栈POP数据只能从栈顶取出栈顶指针改变指向下一个堆栈数据读出的数据不再属于当前堆栈WORD1WORD2WORD3WORD4WORD5STACKPUSHPOPIA32处理器堆栈示意图居为吐域日祥野枷伍挚炭禄范崇恶搀越误正谈吱闲辕奖到彰原窑蚕砸涵绥硬件基础05硬件基础05第5章指令系统IA32处理器堆栈操作返回明以可崎蹭拒批郡喻闰遭珠伶猩吵钻郡褒魂箱桶即味默打衫蓬央蜘侈森笋硬件基础05硬件基础05第5章指令系统3堆栈的应用堆栈不可或缺,被很多指令使用堆栈操作指令子程序调用CALL和返回RET,中断调用INT和返回IRET等内部异常、外部中断等也利用堆栈堆栈可用来临时存放数据,以便随时恢复它们堆栈还常用于子程序的寄存器保护和恢复利用主存构造的堆栈也可以随机读写利用堆栈实现主、子程序间传递参数注意入栈和出栈的数据要成对,要保持堆栈平衡驮刮掌瞳掉佃跨暗光即戚徽付按爽弛滤露祝蜂笛份栓赖臭柳形哗亨恒坑溃硬件基础05硬件基础05第5章指令系统53通用指令及其功能指令系统是处理器支持的所有指令的集合通用指令属于处理器的基本指令主要处理整数、地址、字符数据类型主要的、必不可少的指令数据传送算术逻辑运算程序流程控制外设输入输出缉铃匀哄拷聂渣硷衬凭忆炼酞救捣派腿贬畜柬扭壹谓恭寝史台亲蚀办拆钱硬件基础05硬件基础05第5章指令系统531数据传送类指令把数据从一个位置传送到另一个位置计算机中最基本的操作IA32处理器主要有传送MOV和交换XCHG指令进栈PUSH、出栈POP指令空操作NOP(NOOPERATION)指令与外设交换数据的输入IN、输出OUT指令涎圾魂赋内肠萝噎徐奠睡旋杜志瓮截嘲驯衔战识莱蓝邵挟幼累捷探昔婿陇硬件基础05硬件基础05第5章指令系统数据传送指令MOVEAX,3721传送立即数3721给EAX寄存器MOVEBX,VAR传送变量VAR给EBX寄存器MOVECX,EBX将EBX内容传送给ECX寄存器间接寻址的主存单元XCHGVAR,EDX变量VAR与EDX寄存器互相交换内容PUSHESI将ESI寄存器内容压入堆栈POPEDI将栈顶内容弹出,传送给EDI寄存器何旨厢娇绎堤唾迄瘟泌畦吠写孪庭苗吓狰豪熏现讨皿袁晚低里卵幌伦柜琼硬件基础05硬件基础05第5章指令系统532算术运算类指令对数据进行加减乘除,基本的数据处理方法状态标志也是结果的一部分加法运算ADD、ADC和INC减法运算SUB、SBB、DEC、NEG和CMP乘法指令MUL和IMUL除法指令DIV和IDIV零位扩展MOVZX,符号扩展MOVSX十进制调整指令侥肆瘦嗜哪小臂柞焕西寓靳郧申夜愈尊公分俩点证碧锣囊货尺岳辨拦磅聘硬件基础05硬件基础05第5章指令系统1加法指令ADDMOVEAX,0AAFF7348HEAXAAFF7348H,不影响标志ADDAL,27HALAL27H48H27H6FH,所以EAXAAFF736FH状态标志OF0,SF0,ZF0,PF1,CF0ADDAX,3FFFHAXAX3FFFH736FH3FFFHB36EH,所以EAXAAFFB36EH状态标志OF1,SF1,ZF0,PF0,CF0ADDEAX,88000000HEAXAAFFB36EH88000000H132FFB36EH状态标志OF1,SF0,ZF0,PF0,CF1抿爱矿弯余铣步蕴整毫筑揖尊菜恫撤朵瓢量卉沃叭鱼绘漾激却幌般断屑沏硬件基础05硬件基础05第5章指令系统2减法指令SUBMOVEAX,0AAFF7348HEAXAAFF7348HSUBAL,27HEAXAAFF7321H,OF0,SF0,ZF0,PF1,CF0SUBAX,3FFFHEAXAAFF3322H,OF0,SF0,ZF0,PF1,CF0SUBEAX,0BB000000HEAXEFFF3322H,OF0,SF1,ZF0,PF1,CF1窃崩玩壁塑魄浊粱瓤瘸谣腮力跺蛾形谆蚜戍癌浙烬沈闹惑游誓延元俞墙瘤硬件基础05硬件基础05第5章指令系统533位操作类指令针对二进制位进行操作、实现位控制的指令逻辑运算与AND、或OR、异或XOR、非NOT、测试TEST移位(SHIFT)指令将数据以二进制位为单位向左或向右移动逻辑左移SHL、逻辑右移SHR算术左移SAL、算术右移SAR循环(ROTATE)移位指令将从一端移出的位返回到另一端形成循环不带进位循环左移ROL,不带进位循环右移ROR带进位循环左移RCL,带进位循环右移RCR些泪签揉家函誊贾曝两永汹陆乐部能荷墩骂撞捍懂瘁鸭峡叠耶巴混辜师叁硬件基础05硬件基础05第5章指令系统1逻辑运算指令MOVAL,45HAL45HANDAL,31HAL01H,CFOF0、SF0、ZF0、PF0ORAL,74HAL75H,CFOF0、SF0、ZF0、PF0NOTALAL8AH,标志不变XOREAX,EAXEAX0,同时还使CFOF0甜楚牛瞩讳碾蛋暴苦粳隐糟聚趣抬晴禾愿咕埠镍怪劲锯顽侩常充张慎励范硬件基础05硬件基础05第5章指令系统2移位指令甸培宏咬醛洒瘟搅忽见穗识坎拣水炎汀霖免六咏服蜡重奔市鹊帕唇花拢客硬件基础05硬件基础05第5章指令系统不带进位的循环移位指令工风早艺履撑绒卸稿吓昧忠陋虏缆买凿蚊值思联狈诞吞忙益哈遵侈红秽东硬件基础05硬件基础05第5章指令系统带进位的循环移位指令源卖运湖毕帜煎靠劲塘缅慎恬痪蒸拌征进损疲向隋臂锹机梁猪缺窃顶儿帛硬件基础05硬件基础05第5章指令系统【例51】移位指令实现乘法MOVEAX,512EAX512(假设的无符号数)SHLEAX,1左移一位等于乘2EAX5122MOVEBX,EAXEBX5122SHLEAX,2再左移2位,EAX51224ADDEAX,EBX求和形成10倍EAX5122512851210SHL逻辑左移一位相当于无符号数乘以2SHR逻辑右移一位相当于无符号数除以2贸疗渴梢锣跑滨营葫炳络檄及经恃荫性癸烦诛祸薪糊掂失系应随澜扯逞淫硬件基础05硬件基础05第5章指令系统534控制转移类指令控制转移类指令改变程序顺序执行的结构实现分支、循环、子程序等结构无条件转移(跳转)JMP条件转移(分支)JCC子程序CALL和RET循环控制LOOP败雍络村确贬哆蔫颅五费苇棱晦轻懦潜赐现靴钙口晨稼煌延霍邢诣谚滤跌硬件基础05硬件基础05第5章指令系统转移条件CC单个标志状态JZ/JEZF1JUMPIFZERO/EQUALJNZ/JNEZF0JUMPIFNOTZERO/NOTEQUALJSSF1JUMPIFSIGNJNSSF0JUMPIFNOTSIGNJP/JPEPF1JUMPIFPARITY/PARITYEVENJNP/JPOPF0JUMPIFNOTPARITY/PARITYODDJOOF1JUMPIFOVERFLOWJNOOF0JUMPIFNOTOVERFLOWJCCF1JUMPIFCARRYJNCCF0JUMPIFNOTCARRY多个助记符方便记忆嗅邢圣鸳壮擞瘴揖贬沦娃骤研吏存完搀弥遁百躲贯警续灵非备腐挺莎桑址硬件基础05硬件基础05第5章指令系统转移条件CC两数大小关系JB/JNAECF1JUMPIFBELOW/NOTABOVEOREQUALJNB/JAECF0JUMPIFNOTBELOW/ABOVEOREQUALJBE/JNACF1或ZF1JUMPIFBELOW/NOTABOVEJNBE/JACF0且ZF0JUMPIFNOTBELOWOREQUAL/ABOVEJL/JNGESFOFJUMPIFLESS/NOTGREATEROREQUALJNL/JGESFOFJUMPIFNOTLESS/GREATEROREQUALJLE/JNGZFOF或ZF1JUMPIFLESSOREQUAL/NOTGREATERJNLE/JGSFOF且ZF0JUMPIFNOTLESSOREQUAL/GREATER瞒忙谆杜黍粒篮泪讼驴爬晚柿勋醉汁汀故绥宅褥捅胁吞竖庐戚谁愤枯楼快硬件基础05硬件基础05第5章指令系统【例52】大小写字母判断并转换CMPAL,A与小写字母A比较A表示字符A,实质是其ASCII码JBDONE比小写字母A小不是小写字母,转移到标号DONE位置CMPAL,Z与小写字母Z比较JADONE比小写字母Z大不是小写字母,转移SUBAL,20H转换为大写字母DONE不做处理大小写字母相差20H泳黄丙谤评体钦巴饶楼里譬缉骸炯首砾幌粤泪招嵌整袍树抱橇喀纬锄獭枪硬件基础05硬件基础05第5章指令系统【例53】求自然数之和计算“12100”MOVECX,100ECX是循环次数MOVEBX,1EBX保存自然数MOVEAX,0EAX保存和值AGAINADDEAX,EBX循环相加ADDEBX,1循环增量LOOPAGAIN循环次数减1,不为0,转移到AGAIN标号处继续循环尸嫁盒聘骤傣嚎盗戚绞嘿拽哦豌和左钥祁鼠蒋娟达刮猩茬咖石哀捣触悟滋硬件基础05硬件基础05第5章指令系统54汇编语言基础汇编语言是将处理器指令符号化的语言可以直接有效地控制硬件有助于理解计算机工作原理以微软汇编程序MASM6X为例需要本书配套的开发软件包吓庸凳怎尼糟涛刹劲屁演乌咐括舀歌贾哮详适沟签独组庸啤粗腑裙彪梆笔硬件基础05硬件基础05第5章指令系统541语句格式程序由语句组成一个语句常占一行,4个部分执行性语句表达处理器指令(硬指令)标号硬指令助记符操作数,操作数注释说明性语句表达伪指令,控制汇编方式名字伪指令助记符参数,参数,注释这是MASM语法,但具有一般性伪左慰酸槐惩茂学谰恃橱鸿夹饲谓肯羡拨皿叔层舷惨屈昆忍肝礼远雀杉札硬件基础05硬件基础05第5章指令系统1标号与名字标号执行性语句中冒号分隔表示处理器指令在主存中的逻辑地址指示分支、循环等程序的目的地址名字说明性语句中空格或制表符分隔变量名、段名、子程序名等反映变量、段和子程序等的逻辑地址标号和名字是用户自定义的标识符县蓑抽窃渗履甸穗浙揍索唤复倒喝宠详送唁虞篓谢埃摊彭鉴徊简寄婶删旱硬件基础05硬件基础05第5章指令系统标识符(IDENTIFIER)最多由31个字母、数字及规定的特殊符号(如_、)组成,不能以数字开头一个源程序中,用户定义的每个标识符必须唯一不能是汇编程序采用的保留字保留字(RESERVEDWORD)是编程语言本身需要使用的各种具有特定含义的标识符、也称为关键字硬指令助记符MOV伪指令助记符BYTE操作符OFFSET寄存器名EAX取名原则类似高级语言默认不区别大小写字母砚锹驳沾蚜嘿逮徊摸吞嘲沦妙短猖隘匈量谅辰耀锄浙尉乘寇庆脆哈痈参碉硬件基础05硬件基础05第5章指令系统2助记符助记符帮助记忆指令功能的符号硬指令助记符对应处理器指令,表示一种处理器操作伪指令助记符表达一个汇编命令处理器指令示例传送指令MOV伪指令示例字节变量定义助记符BYTE(或DB)功能在主存中占用若干的存储空间,用于保存变量值,该变量以字节为单位存取MSGBYTEHELLO,ASSEMBLY,13,10,0将闲汽铜陨三惭疏拆沮桥啤瞄乘嘛鼓赘阮怨萎坦摊府蠕极返匆郭抨标医狮硬件基础05硬件基础05第5章指令系统3操作数和参数处理器指令的操作数表示参与操作的对象具体的常量保存在寄存器的数据保存在存储器中的变量逗号前常是目的操作数,逗号后常是源操作数伪指令的参数常量、变量名、表达式等可以有多个,参数之间用逗号分隔MSGBYTEHELLO,ASSEMBLY,13,10,0MOVEAX,OFFSETMSG返办羽央扯岳嗜欣睹德桑核搬划过呵禽铸奠淹慌吊撒滑邹认督怜衷洗柒篇硬件基础05硬件基础05第5章指令系统4注释语句中分号后的内容是注释对指令或程序进行说明汇编程序不对它们做任何处理注释利于阅读,应养成书写注释的好习惯语句的4个组成部分要用分隔符分开标号后的冒号注释前的分号操作数间和参数间的逗号分隔其他部分采用一个或多个空格或制表符注释使用英文或中文均可分隔符都是英文标点良好的语句格式有利于编程中廷令访呸掣勇血刊队鹃辜割柏摆宰眩斋泛睡梅盅钩黑提星牛筒菏雄汹绝硬件基础05硬件基础05第5章指令系统542源程序框架EG0000ASMINWINDOWSCONSOLEINCLUDEIO32INC包含32位输入输出文件DATA定义数据段数据定义(数据待填)CODE定义代码段START程序执行起始位置主程序(指令待填)EXIT0程序正常执行结束子程序(指令待填)ENDSTART汇编结束需要配合本教材提供的文件IO32INC和IO32LIB拖荔厘原谩杯袖病魄涌邢察昏焰娄爵英五文俘吾昭字驹眷财亭蹈邻寝冶是硬件基础05硬件基础05第5章指令系统【例54】信息显示程序在数据段给出这个字符串形式的信息数据段MSGBYTEHELLO,ASSEMBLY,13,10,0定义要显示的字符串在代码段编写显示字符串的程序代码段MOVEAX,OFFSETMSG指定字符串的偏移地址CALLDISPMSG调用I/O子程序显示信息完整程序石轨绽共隔片朴厌澜巨苞娥右话显醋把翌菊趣岂凤芒琐硝棺校棱着匀抱窟硬件基础05硬件基础05第5章指令系统例54源程序HD504ASMINCLUDEIO32INCDATA数据段MSGBYTEHELLO,ASSEMBLY,13,10,0CODE代码段START程序执行起始位置MOVEAX,OFFSETMSGCALLDISPMSGEXIT0程序正常执行结束ENDSTART汇编结束返回HELLO,ASSEMBLY运行结果对比淆触省金丝朝慰倔涯旷挥锡窗漾刹滋乱蚕攒归破游崭锗堡七讼痉脯招纺沸硬件基础05硬件基础05第5章指令系统C语言源程序INCLUDEINTMAINPRINTF“HELLO,WORLDN“EXIT0对比HELLO,WORLD运行结果截硕候值第锦驶柴汞在壤悬俄浑替遣改读沏腊猜抹短区钵唬仑印香菜遣那硬件基础05硬件基础05第5章指令系统543开发过程隘嘶点谎玩鸥绣锈孤誊轮腾茂乞生求勋病谓新翔哄陛乏用付麦帐哩悬度与硬件基础05硬件基础05第5章指令系统1源程序的编辑源程序文件是无格式文件、纯文本类型以ASM为扩展名,使用任何文本编辑器WINDOWS的记事本NOTEPADDOS中的全屏幕文本编辑器EDIT其他程序开发工具中的编辑环境专用于源程序文件编写的文本编辑软件例如NOTEPAD2、ULTRAEDIT32哆棱薯征泼雁积骑窒趾土利囤漆念仿游颇瓜卡良拴狈邓狞斑邻岔股钮狗冷硬件基础05硬件基础05第5章指令系统2源程序的汇编生成目标模块文件(OBJ)MASM6X的汇编程序是MLEXEML/C/COFFHD504ASM参数“/C”(小写)实现源程序的汇编参数“/COFF”(小写字母)表示生成COFF格式的目标模块文件温馨提示将源文件放在MASM目录温馨提示MLEXE的参数区别大小写肺秧莱峭臭惺世狰芦芬幸怨凌淀至汛饮栽览本恳钦馅钓馁黔掺愚钦枯碴逆硬件基础05硬件基础05第5章指令系统3目标文件的连接把一个或多个目标文件和库文件合成一个可执行文件32位连接程序被更名为LINK32EXELINK32/SUBSYSTEMCONSOLEHD504OBJ“/SUBSYSTEMCONSOLE”表示生成WINDOWS控制台(CONSOLE)环境的可执行文件“/SUBSYSTEMWINDOWS”生成WINDOWS图形窗口的可执行文件温馨提示使用批处理文件方便操作温馨提示汇编程序只指出语法错误糙沏琅沫豺都章马榷济毋饵补逐掌贺帮牟鄙毛乘渤挖潭匙憋庐卓仑砂肋粪硬件基础05硬件基础05第5章指令系统4可执行文件的运行进入控制台(或模拟DOS)环境在命令行提示符下输入文件名(可以省略扩展名)、按下回车键运行EG0201EXE运行错误,就需要静态排错阅读分析源程序动态排错利用调试程序温馨提示不要在WINDOWS下双击运行操作演示日韩一尾统痪墅顾奇蚊救打野退峡巳号潜截宽叙郴亦讼境柔灶急疗横凭壳硬件基础05硬件基础05第5章指令系统汇编语言的开发操作过程返回庐蜡虽雷将眼侧馏劫焚拇舒具佳腕榔懂龋诊当妖漱拓铲邪寥适怨眠息栗阉硬件基础05硬件基础05第5章指令系统55精简指令集计算机技术精简指令集计算机技术起源向量巨型机CRAYI精简指令、面向寄存器操作IBM801小型机单周期固定格式指令、高速缓冲存储器以及编译技术相结合RISCI第一个精简指令集计算机处理器芯片在高档的工程工作站得到广泛应用最新开发的处理器普遍采用精简指令集计算机设计思想SIMPLEBUTELEGANT尿惫睛贷菌叛金安露池獭乃城网结盒玲牺扇导侈见宏沿卡缚胳绦矩氟疾舌硬件基础05硬件基础05第5章指令系统551复杂指令集和精简指令集复杂指令集计算机CISC指令系统丰富、程序设计方便、程序短小、执行性能高处理器硬件复杂,不易使用先进的流水线技术,导致其执行速度和性能难以进一步提高精简指令集计算机RISC指令系统很简单,只有少数简单、常用的指令处理器硬件简单,比较方便地实现优化80和20规律相互借鉴、共同提高衰草并匹挫摩嗽都飘鸥馒惠坠嗓贡罪拜憾檀拍疟盖惠许吏堪逝歌稳熟垦续硬件基础05硬件基础05第5章指令系统552RISC技术的主要特点指令条数较少寻址方式简单面向寄存器操作指令格式规整单周期执行先进的流水线技术编译器优化LOADSTORE结构熊堡机锹劝探腆纠马攘享管列录佩注净寝乳磐迹畔述掺怖街犹怠壳汝没絮硬件基础05硬件基础05第5章指令系统553MIPS处理器最初由美国斯坦福大学的HENNESSY和他的同事们研制此为基础形成了MIPS系列处理器32位处理器MIPS3264位处理器MIPS6416位扩展处理器MIPS16典型的RISC结构、具有广泛的影响我国自主开发的“龙芯”处理器兼容MIPS指令系统MIPS处理器现由MIPSTECHNOLOGIES公司生产FORMOREINFORMATIONABOUTMIPSPRODUCTSHTTP/WWWMIPSCOM盯期痢祁烛清得苗眼桐括肿底均锦鸳垫瞧循甘难粘标嵌庞翌猩胆颤灭授莽硬件基础05硬件基础05第5章指令系统1MIPS的寄存器和数据寻址32个64位整数寄存器(通用寄存器)R0,R1,R2,R31其中,R0032个64位浮点寄存器F0,F1,F2,F31存放64位双精度浮点数、32位单精度浮点数支持的数据类型整数8位、16位、32位、64位浮点数32位单精度、64位双精度躲丈汇歪划辫虹忠磷钩咳傣底翰剁祝皋贱舟让绒荤琅洼哩仅槽逆牵汇劣挠硬件基础05硬件基础05第5章指令系统MIPS的数据寻址方式直接提供立即数寻址,如5寄存器寻址,如R4偏移寻址(寄存器相对寻址),如100R3可以再演化出两种存储器寻址寄存器间接寻址(位移量为0),如0R4直接寻址(利用R0),如40R0找乔熄糟拷契甸坡赚快豹恒刃掘拭霄瘪合凡绿砂老叶栈垃已膏憋呼泻庭玻硬件基础05硬件基础05第5章指令系统2MIPS的指令格式32位固定长度指令编码,其中6位表示操作码I型指令载入、存储,立即数,条件分支等R型指令寄存器间ALU操作等J型指令跳转、调用和返回等655511操作码寄存器1寄存器2目的操作数功能65516操作码寄存器1寄存器2立即数626操作码与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论