微机原理11(4)ppt课件_第1页
微机原理11(4)ppt课件_第2页
微机原理11(4)ppt课件_第3页
微机原理11(4)ppt课件_第4页
微机原理11(4)ppt课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

上节回顾:1.中断指令2.汇编语言语法,本节主要内容:1.汇编语言语法和DOS功能调用2.上机过程,格式1IF条件指令组ENDIF,格式2IF条件指令组1ELSE指令组2ENDIF,功能:条件为真,编译语句组条件为假,不编译语句组,功能:条件为真,编译语句组1条件为假,编译语句组2,IF表达式表达式值非0时,条件为真;IFE表达式表达式得0时,条件为真;IF1如果是第一遍扫描,条件为真;IF2如果是第二遍扫描,条件为真;IFDEF符号如果该符号定义过或用EXTRN说明,条件为真;IFDNEF符号如果该符号未定义过或未用EXTRN说明,条件为真;IFB如果变元是空白符,条件为真;IFNB如果变元不是空白符,条件为真;IFIDN,变元1的字符串和变元2一样,条件为真;IFNIDN,变元1的字符串和变元2不一样,条件为真;,8、条件汇编,条件说明;,4.4汇编语言中的表达式,算术运算符、*、MOD(取余数)、SHL(左移)、SHR(右移)逻辑运算符ANDORXORNOT关系运算符EQ(相等)、NE(不相等)、LT(小于)GT(大于)、LE(小于等于)、GE(大于等于)分析运算符SEG(求段地址)、OFFSET(求偏移量)、TYPE(求变量类型)SIZE(求字节数)、LENGTH(求变量长度)综合运算符PTR、THIS、SHORT、HIGH、LOW、段操作符,运算符有五类,下面集中举例,说明它们的应用和注意问题,表达式-运算对象和运算符组成。汇编语言中有5类运算符,即:,算术运算符可以出现在数字表达式或地址表达式中,但要注意运算的实际意义。,DATASEGMENTVRDB1,3,5,6DATAENDSCODESEGMENTMOVAH,VR+2;将VR+2单元中的5送入AHMOVAL,3*10-20;将表达式值送入ALMOVBH,10MOD3;将10除以3的余数1送BHMOVBL,01010BSHL4;将0101B左移4位后送入BH,1)算术运算符,如:两地址不在同一段内,相减也是没意义的。,如:两地址相乘、相除(虽然语法没出错),但是没有意义。,用法举例:,2)逻辑运算符,逻辑运算按二进制位运算,三点说明:,逻辑运算符与逻辑指令的不同点是:,逻辑运算符是在源程序汇编(翻译)时完成的;逻辑指令是在执行程序时完成的。,逻辑运算符只能出现在数字表达式中。,0010000000001011,1111000000001111,与)0010010100111011,F,F,0,0,举例:,MOVAX,OFOOFHAND253BH;AX=200BHMOVAX,OFOOFHOR253BH;AX=F53FHMOVAX,OFOOFHXOR253BH;AX=D534HMOVAX,NOT253BH;AX=DAC4H,1101010100110100,1111000000001111,异或)0010010100111011,F,F,0,0,规律:和0异或原数不变,和1异或原数变反。,关系式成立时,结果为真,以OFFFFH表示;关系式不成立时,结果为假,以0表示。,3)关系运算符,说明:,参加运算的两个数必须都是数字,或者都是同一段内的两个存储单元地址,即两数性质相同。,关系运算的结果是逻辑值,举例如下:,MOVAL,3EQ2;结果为假,即AL=00HMOVAX,3NE2;结果为真,即AX=FFFFHMOVAL,3LT2;结果为假,即AL=00HMOVBX,3LE2;结果为假,即BX=0000HMOVBH,3GT2;结果为真,即BH=FFHMOVBL,3GE2;结果为真,即BL=FFH,4)分析运算符,存储器地址当操作数(如变量、标号)时,有三种属性,即:,SEG求段地址OFFSET求偏移量TYPE求变量类型,该存储器地址中放的数长度类型是什么?,该存储器地址操作数所属的段是什么?,该存储器地址操作数的段内偏移量是多少?,说明:,类型值,存放内容,字节数据,字数据,双字数据,对于变量,对于标号,NEARFAR,-1-2,124,以例说明:,DATASEGMENTV1DB2AH,3FHV2DW2A3FH,3040HV3DD12345678H,12ABCDEFHV4DW20DUP(1)DATAENDSMOVAX,SEGV1;AX=4000HMOVBX,SEGV2;BX=4000HMOVCX,SEGV3;CX=4000HMOVAX,OFFSETV1;AX=0MOVBX,OFFSETV2;BX=2MOVCX,OFFSETV3;CX=6MOVAX,TYPEV1;AX=1MOVBX,TYPEV2;BX=2MOVCX,TYPEV3;CX=4,假设定义了一个数据段,段地址为4000H,见如下运算及结果:,可见变量的类型是在数据段用伪指令DB、DW、DD定义的,因为V1、V2、V3同属一个段,2AH,3FH,3FH,2AH,40H,30H,78H,56H,34H,12H,V1,V2,V3,高地址存高字节低地址存低字节,0123456789,LENGTH求变量个数SIZE求变量所占字节数,LENGTH和SIZE运算符仅对数组有意义,即由DUP定义的变量名。,说明:,例:,V4DW20DUP(1)BUFDW100DUP(?),表示V4是个数组名,其中有20个元素,每个元素都是一个字,且每个元素初始值都为1。,表示BUF是个存储区,是可以放100个字的空间,内容随机。,MOVAX,LENGTHV4MOVBX,SIZEV4,AX=20,即数组有多少个元素,若是变量名,不是数组名,用LENGTH求值一律为1,BX=40,即数组占有多少个字节,如果变量名不是数组,则DB型的SIZE为1,DW型的SIZE为2,DD型的SIZE为4。,5)综合运算符,如:JMPFARPTRS1这样即使S1原来是NEAR型,也可在段间转移了。,PTR运算符,类型PTR存储器地址表达式,使用格式:,可取:BYTE、WORD、DWORDNEAR、FAR之一。,建立一个符号地址,但它本身并不分配存储单元,只是给已分配的存储器地址再赋予另一种属性。,作用一:,说明V11和V1的段地址、偏移量完全相同,但V1是字节型V11是字型。,如:,V11EQUWORDPTRV1,有时指令要求必须使用PTR操作符。,如有:MOVBX,5,MOVBYTEPTRBX,5MOVWORDPTRBX,5,则汇编程序不知道存的是字节,还是字,应按下面两种形式写明:,作用二:,如:设有SLOTDW25即SLOT存的是字,则MOVAL,BYTEPTRSLOT就把SLOT的第一个字节取入AL中了。,这样就使MOV指令具有一个FAR属性的地址,允许其它段的JMP指令,直接跳转到START来。,THIS运算符,THIS类型,使用格式:,作用:,建立一个地址操作数(即语句标号),它的段地址和偏移量与下一个要分配的存储空间相同,但类型由THIS指定。,如:TAB1EQUTHISBYTETAB2DW100DUP(?),则:TAB1、TAB2的段地址、偏移量完全相同,但TAB1是字节型,TAB2是字型的。,又如:STARTEQUTHISFARMOVCX,100,执行到JMPH1指令时,汇编程序已经知道H1的位置了,但执行到JMPH2指令时,汇编程序还不知道H2的位置,所以汇编产生一个三字节的指令,若在此处加上SHORT后,即对H2做了说明,指出H2在下条指令的127字节范围内,汇编时产生一个两字节的指令,即节省了内存又加快了执行速度。,SHORT运算符,例:H1,JMPH1,JMPH2,H2,()LENGTHWIDTHSIZEMASK记录字段名PTROFFSETSEGTYPETHISCS:DS:ES:SS:HIGHLOW*/MODSHLSHR+-EQNELTLEGTGENOTANDORXORSHORT,HIGH和LOW字节分离操作符,从一个数或地址中取出高位字节或者低位字节,作用:,例:CONSTEQU0ABCDH则:MOVAH,HIGHCONST表示将AH0ABH,运算符优先级,高,低,有了优先顺序,就可以计算表达式的值了,实际上是由汇编程序算出的,我们只要书写正确就行了。,低,4.5指令语句指令语句的格式:标号:前缀指令助记符操作数;(注释)(1)立即寻址和直接寻址的表示形式例4.23立即寻址和直接寻址在表示形式上的区别DATASEGMENTBB1EQU1234HBB2DW0A0B0HDATAENDSCODESEGMENTMOVAX,BB1MOVBX,BB2MOVCX,BB1CODEENDS,;立即;直接,不能简单地以中括号来区分,(2)基址寄存器加变址寄存器寻址的表示形式有两种表示形式:MOVAX,BXSIMOVAX,BX+SI(3)相对寄存器寻址的表示形式,MOVAX,MYDATBXMOVAX,MYDAT+BXMOVCX,MYDATBXSIMOVCX,MYDAT+BX+SI,宏汇编语言的语法小节伪指令格式伪指令:指示性语句.不产生机器目标代码.常数、变量和标号变量的属性:段值、偏移量、类型。标号属性有:段值、偏移量、距离属性。表达式与运算符表达式由操作数和运算符组成,汇编时产生一个值。1.算数运算符:+-*/2.逻辑运算符:ANDORNOTXOR,3.关系运算符:EQNELTGT4.分析运算符:SEGOFFSETTYPELENGTHSIZE5.组合运算符PTRTHIS6.分离运算符LOWHIGH,汇编过程,一.汇编程序的功能将汇编语言源程序翻译成机器语言编写的目标程序.并可输出列表文件检查语法并给出错误信息展开宏指令常用汇编程序:ASM和MASM,二.程序的编辑、汇编与连接,1.建立源文件用编辑软件完成.常见软件:Edit、Pe、Q2.汇编源程序用汇编程序MASM对源程序进行汇编3.连接产生可执行文件用连接程序LINK对.OBJ进行连接,产生可执行文件;4.执行程序,5.调试程序DEBUG程序是专为宏汇编语言设计的一种调试程序.DEBUG程序的命令N,L命令:装入程序D命令:显示内存内容R命令:显示寄存器内容I命令:端口输入命令O命令:端口输出命令U命令:反汇编Q命令:退出DEBUGT命令:单步执行P命令:单步执行命令,只给出指令执行结果G命令:全速执行,datasegmenta1dbhellon!,0dh,0ah,$dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,offseta1movah,09hint21hmovah,4chint21hcodeendsendstart,看一个例子,4.7DOS系统功能调用,主要内容:系统功能调用一.简介MS-DOS设置了几十个内部子程序,可以完成I/O设备管理,存储管理,文件管理,合作业管理.它们被做成中断服务程序,其入口地址已由系统置入中断向量表中,可以用软中断指令调用.类型号:2027H系统功能调用:INT21H,二、DOS系统功能调用,1.DOS系统功能调用格式1)、在AH中设置功能号2)、在指定的寄存器中设置入口参数3)、用INT21H指令执行系统功能调用4)、根据出口参数分析执行情况2.DOS系统功能调用INT21H的部分I/O操作1).键盘输入一个字符并回显功能号AH=01H,出口参数AL=字符;使用格式:MOVAH,01HINT21H,2).键盘输入字符到缓冲区:功能号:AH=0AH,入口参数:DS:DX=缓冲区首址使用格式BUFDB20DB?DB20DUP(?)MOVDX,OFFSETBUFMOVAH,OAHINT21H,3).输出一个字符功能号:AH=2入口参数:DL=字符,光标随字符移动使用格式:MOVDL,AMOVAH,02HINT21H执行上面程序后,将在屏幕上显示字符A.4).输出字符串,功能号:AH=9,入口参数:DS:DX=串地址,字串结束为“$”符号使用格式:BUFDBHELLO!MOVDX,OFFSETBUFMOVAH,09HINT21H.,5)直接控制台输入输出单字符功能号:AH=06H入口参数:DL=0FFH(输入)DL=字符(输出)出口参数:AL=输入字符6)键盘输入一个字符无回显功能号:AH=08H出口参数:AL=字符;7)返回DOS系统功能号:AH=4CH8)清键盘缓冲区,并调用一种键盘功能功能号:AH=0CHAL=键盘功能号(1、6、7、8、0AH),9).从串口输入单字符AH=03H入口参数AL=字符10)向串口输出单字符AH=04H出口参数DL=字符11)设置时间:INT21/2BHyear:mounth:day=CX:CH:CL12)取得时间:INT21H/2AH13)取得日期:INT21H/2CH,4.6宏指令语句及其使用,为了简化汇编语言的书写,把一些频繁出现的程序段定义为“宏指令”.在汇编过程中,将宏指令所代替的程序段汇编成相应的机器代码,并插入到源程序中宏指令要使用前:(1)宏定义(2)宏调用(3)宏扩展,1、宏定义宏定义格式:宏指令名MACRO形式参数1,形式参数2宏体ENDM2、宏调用宏调用格式:宏指令名实际参数1,实际参数23、宏展开,例4.25无形式参数的宏定义、宏调用及宏展开宏定义:PUSHABMACROPUSHAXPUSHBXENDM宏调用:PUSHAB宏展开:+PUSHAX+PUSHBX,例4.26带形式参数的宏定义、宏调用及宏展开宏定义:LDSFMACROPR,VAR,N,REG,CCMOVPR,VARMOVAX,PRMOVCL,NS&CCREG,CLENDM宏调用1:LDSFSI,WVAR1,4,AX,AR宏调用2

温馨提示

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

评论

0/150

提交评论