微原-第3章1.ppt
《微原-第3章1.ppt》由会员分享,可在线阅读,更多相关《微原-第3章1.ppt(60页珍藏版)》请在冰豆网上搜索。
第第33章章8086CPU8086CPU指令系统指令系统内内容容简简介介全面掌握全面掌握8086/80888086/8088指令系统的使用,包括指令指令系统的使用,包括指令的功能、寻址方式及其书写格式、对标志位的影响、的功能、寻址方式及其书写格式、对标志位的影响、使用注意事项。
使用注意事项。
掌握掌握汇编语言程序设计所必须的伪汇编语言程序设计所必须的伪指令,并由此构成汇编语言程序的完整结构。
指令,并由此构成汇编语言程序的完整结构。
掌握掌握变量、常量及伪指令的使用和一些常用的基本程序变量、常量及伪指令的使用和一些常用的基本程序设计方法。
在分支程序设计中,要特别注意每个分设计方法。
在分支程序设计中,要特别注意每个分支的完整性和分支条件的合理使用;在循环程序设支的完整性和分支条件的合理使用;在循环程序设计中,计中,掌握掌握循环程序的基本结构,特别要注意应避循环程序的基本结构,特别要注意应避免出现死循环;在子程序设计中,着重掌握参数的免出现死循环;在子程序设计中,着重掌握参数的内内容容简简介介各种传递方式及其实现,对堆栈这种特殊的存储区各种传递方式及其实现,对堆栈这种特殊的存储区域进行了详细的描述,切实域进行了详细的描述,切实掌握堆栈的使用掌握堆栈的使用。
宏指。
宏指令和字符串操作是汇编语言程序设计中的两个难点,令和字符串操作是汇编语言程序设计中的两个难点,教材中对此也作了详细的介绍,要求教材中对此也作了详细的介绍,要求掌握正确使用掌握正确使用宏指令和字符串操作指令。
宏指令和字符串操作指令。
教材中简要介绍了教材中简要介绍了DOSDOS功能调用的方法和常用功能调用的方法和常用的一些的一些DOSDOS功能,要求能熟练使用功能,要求能熟练使用INT21HINT21H的的0101、0202、0909、0AH0AH和和4CH4CH号等功能。
号等功能。
第三章第三章8086CPU8086CPU指令系统指令系统本教案内容本教案内容第第3章章8086CPU指令系统指令系统1.汇编语言指令汇编语言指令2.8086指令分类指令分类3.数据与转移地址的数据与转移地址的寻址方式寻址方式4.数据传送类指令数据传送类指令5.算术运算类指令算术运算类指令6.逻辑运算类指令逻辑运算类指令7.移位类指令移位类指令8.标志位操作指令标志位操作指令9.转移指令转移指令10.循环控制指令循环控制指令11.子程序调用返回子程序调用返回指令指令12.中断调用返回指中断调用返回指令令13.字符串操作指令字符串操作指令14.I/O输入输出指令输入输出指令15.其它指令其它指令16.宏指令宏指令3.13.1汇编语言指令汇编语言指令一一.汇编语言与机器语言的相关概念汇编语言与机器语言的相关概念汇编语言与机器语言属于低级语言,汇编语言与机器语言属于低级语言,它们与高级语言有较大的区别,它们与高级语言有较大的区别,汇编语汇编语言中的语句与机器的型号密切相关言中的语句与机器的型号密切相关。
如。
如Intel8086Intel8086系列系列CPUCPU、Intel8031Intel8031系列单系列单片片CPUCPU等,若等,若CPUCPU型号不同,其指令系统型号不同,其指令系统就不同,当然语句的书写格式也就不同。
就不同,当然语句的书写格式也就不同。
在高级语言中,完成某个加法功能,我们可采在高级语言中,完成某个加法功能,我们可采用语句用语句X=A+BX=A+B,只要给变量只要给变量AA和和BB赋一确定值,此加赋一确定值,此加法就可以实现了。
在汇编语言中则不同,程序必须法就可以实现了。
在汇编语言中则不同,程序必须指出指出AA、BB存放在何处,相加后的结果又存放在何处,存放在何处,相加后的结果又存放在何处,然后才能实现这一加法运算。
显然,汇编语言在通然后才能实现这一加法运算。
显然,汇编语言在通过程序告诉计算机做什么和如何做时,显得更加具过程序告诉计算机做什么和如何做时,显得更加具体。
正是这种具体,使得该语言与计算机(处理器)体。
正是这种具体,使得该语言与计算机(处理器)紧密相关,从而也要求学习和使用汇编语言的人对紧密相关,从而也要求学习和使用汇编语言的人对处理器的结构有更加深入的了解。
处理器的结构有更加深入的了解。
3.13.1汇编语言指令汇编语言指令1.1.机器语言机器语言机器(机器(CPUCPU)能)能直接认识的一种直接认识的一种二进制代码语言。
二进制代码语言。
CPUCPU能能认识的一组二认识的一组二进制代码就是一条指令。
进制代码就是一条指令。
3.13.1汇编语言指令汇编语言指令如:
如:
B0HB0H12H12H05H05H02H02H00H00H;这这一组二进制代码一组二进制代码,就是告诉,就是告诉CPUCPU将将AL12HAL12H。
就是一条指令代码,或者机器语言代码。
就是一条指令代码,或者机器语言代码。
;这这一组二进制代码一组二进制代码,告诉,告诉CPUCPU将(将(ALAL)+2AX+2AX。
3.13.1汇编语言指令汇编语言指令2.2.机器语言程序机器语言程序采用机器语言编写的程序,即二进制代采用机器语言编写的程序,即二进制代码程序。
码程序。
优点:
优点:
程序送入计算机后,程序送入计算机后,CPUCPU可以直接执行。
可以直接执行。
缺点:
缺点:
不易书写,不易检查,编写程序十分困难。
不易书写,不易检查,编写程序十分困难。
3.13.1汇编语言指令汇编语言指令3.3.汇编语言汇编语言为了克服机器语言不易书写、记忆为了克服机器语言不易书写、记忆复杂等缺点,人们采用一组字母、数字和复杂等缺点,人们采用一组字母、数字和符号来代替一条二进制代码指令,这种表符号来代替一条二进制代码指令,这种表示指令的符号称为助记符,这种用一组符示指令的符号称为助记符,这种用一组符号来代替一条指令编写程序时采用的语言,号来代替一条指令编写程序时采用的语言,称为汇编语言。
称为汇编语言。
3.13.1汇编语言指令汇编语言指令4.4.汇编语言程序汇编语言程序用汇编语言编写的程序称为汇用汇编语言编写的程序称为汇编语言程序,或者称为汇编语言编语言程序,或者称为汇编语言源程源程序序。
这种编程方法称为汇编语言程序。
这种编程方法称为汇编语言程序设计。
设计。
汇编语言源程序名必须为汇编语言源程序名必须为文件文件名名.ASM.ASM。
3.13.1汇编语言指令汇编语言指令如:
如:
B0HB0H12H12H05H05H02H02H00H00H用用MOVAL,12HMOVAL,12H代替代替用用ADDAX,0002HADDAX,0002H代替代替3.13.1汇编语言指令汇编语言指令优点:
优点:
要比一串二进制代码清晰多了,书写要比一串二进制代码清晰多了,书写容易,记忆也方便。
容易,记忆也方便。
缺点:
缺点:
CPUCPU不能直接执行。
用汇编语言编写的不能直接执行。
用汇编语言编写的汇编语言源程序必须经过汇编,将其翻汇编语言源程序必须经过汇编,将其翻译成机器语言格式,译成机器语言格式,CPUCPU才能执行。
才能执行。
3.13.1汇编语言指令汇编语言指令5.5.汇编汇编把汇编语言源程序翻译成机器把汇编语言源程序翻译成机器语言程序的过程称为汇编。
语言程序的过程称为汇编。
3.13.1汇编语言指令汇编语言指令6.6.汇编程序汇编程序能把汇编语言源程序翻译成机能把汇编语言源程序翻译成机器语言程序的系统程序(语言加工程器语言程序的系统程序(语言加工程序)。
序)。
80868086宏汇编程序为宏汇编程序为MASM.EXEMASM.EXE。
3.13.1汇编语言指令汇编语言指令如:
如:
机器语言程序机器语言程序汇编程序为汇编程序为MASM.EXEMASM.EXE源程序源程序MOVAL,12HMOVAL,12HADDAX,0002HADDAX,0002H050200050200B012B012汇编汇编反汇编反汇编在在DEBUG.EXEDEBUG.EXE下进行下进行3.13.1汇编语言指令汇编语言指令7.7.从汇编语言源程序到可执行程序所经过的处理过程从汇编语言源程序到可执行程序所经过的处理过程用全屏幕编辑软件编辑汇用全屏幕编辑软件编辑汇编语言源程序编语言源程序文件名文件名.ASM.ASM用汇编程序用汇编程序MASM.EXEMASM.EXE对源程序对源程序文件名文件名.ASM.ASM进行汇编进行汇编有有语法错误语法错误吗?
吗?
在在磁盘上形成目标程序文件磁盘上形成目标程序文件文件名文件名.OBJ.OBJ用连接程序用连接程序LINK.EXELINK.EXE对对文件名文件名.OBJ.OBJ进行连接进行连接有有错误吗?
错误吗?
在磁盘上形成了可执行文件在磁盘上形成了可执行文件文件名文件名.EXE.EXE有有没没有有没没3.13.1汇编语言指令汇编语言指令二二.汇编语言程序中语句的种类汇编语言程序中语句的种类在汇编语言程序设计中,程序中的语句有在汇编语言程序设计中,程序中的语句有三类:
三类:
指令语句指令语句伪指令语句伪指令语句宏指令语句宏指令语句3.13.1汇编语言指令汇编语言指令1.1.指令语句指令语句汇编后能产生机器语言代码,汇编后能产生机器语言代码,是是CPUCPU能执行的语句。
能执行的语句。
3.13.1汇编语言指令汇编语言指令2.2.伪指令语句伪指令语句汇编后不能产生机器语言代汇编后不能产生机器语言代码,是码,是CPUCPU不能执行的语句。
它不能执行的语句。
它只是告诉汇编程序(只是告诉汇编程序(MASM.EXEMASM.EXE)应如何汇编。
应如何汇编。
3.13.1汇编语言指令汇编语言指令3.3.宏指令语句宏指令语句它是它是80868086指令系统中没有的指指令系统中没有的指令,是用户自己根据宏指令定义的方令,是用户自己根据宏指令定义的方法定义的一条能完成某一特定功能的法定义的一条能完成某一特定功能的新的指令新的指令。
3.13.1汇编语言指令汇编语言指令三三.汇编语言中语句的组成汇编语言中语句的组成汇编语言源程序(文件名汇编语言源程序(文件名.ASM.ASM)是由一条条语句是由一条条语句组成的。
语句则由组成的。
语句则由四部分组成。
四部分组成。
标识符标识符操作助记符操作助记符操作数操作数注释注释其基本格式如下:
其基本格式如下:
3.13.1汇编语言指令汇编语言指令标识符标识符操作助记符操作助记符空格空格操作数操作数;注释;注释其中,操作助记符指出该条语句的基本操其中,操作助记符指出该条语句的基本操作功能,是必须有的部分。
而作功能,是必须有的部分。
而项可有可无,项可有可无,视情况而定。
视情况而定。
若是指令语句,标识符就是一个标号名,若是指令语句,标识符就是一个标号名,以以冒号结尾冒号结尾;若是伪指令语句,标识符就是变量;若是伪指令语句,标识符就是变量名或者段名等,名或者段名等,以空格结尾以空格结尾。
3.13.1汇编语言指令汇编语言指令标识符的第一个字符必须是字母,不能为标识符的第一个字符必须是字母,不能为数字,总字符个数不能超过数字,总字符个数不能超过3131个。
在给标识符个。
在给标识符起名时,不能用起名时,不能用80868086指令系统中的专用符来给指令系统中的专用符来给标识符起名称,如标识符起名称,如ADDADD、MOVMOV等。
起名时,尽量等。
起名时,尽量起的有点意义。
起的有点意义。
3.13.1汇编语言指令汇编语言指令四四.汇编语言中的常数与表达式汇编语言中的常数与表达式在在汇编语言程序中,语句中的操作数项汇编语言程序中,语句中的操作数项既可以是常数或表达式(立即数),也可以既可以是常数或表达式(立即数),也可以是指明操作数是指明操作数所在处所在处的一种说明。
如果操作的一种说明。
如果操作数是常数或表达式,则有以下几种形式。
数是常数或表达式,则有以下几种形式。
3.13.1汇编语言指令汇编语言指令1.1.数值常数数值常数若为数值常数,则按其基数的不同,可