微机原理与接口技术教学课件电子教案.ppt
《微机原理与接口技术教学课件电子教案.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术教学课件电子教案.ppt(70页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第4章微机原理与接口技术概述概述 操作得到的文件 操作使用的工具 说明:编辑编辑程序程序连接连接程序程序汇编汇编程序程序文件文件 XXX.ASM XXX.ASMLINKASMMASMTASM记事本WPSWORDEDIT文件文件 XXX.OBJXXX.OBJ XXX.LST XXX.CRF文件文件 XXX.EXEXXX.EXE XXX.MAP XXX.LIBDEBUG出错出错出错出错.OBJ:目标文件,.LST:列表文件,.CRF:交叉引用文件.MAP:映像文件,LIB:库文件DATASEGMENTSTRING DBHELLO WORLD!, 0DH, 0AH, $DATAENDSCODESEG
2、MENTASSUMECS:CODE, DS:DATABEGIN:MOVAX, DATAMOVDS, AX;初始化数据段的段地址MOVAH, 09HLEADX, STRING;输出字符串INT21HMOVAH, 4CHINT21H;调用4CH号系统功能返回DOSCODEENDSENDBEGIN 1、汇编语言程序是由若干个段组成,段由若干条语句组成。、汇编语言程序是由若干个段组成,段由若干条语句组成。3、程序以、程序以END结束。结束。语句是汇编语言程序的基本组成单位。汇编语言有语句是汇编语言程序的基本组成单位。汇编语言有3种基本种基本语句类型:语句类型:指令语句、伪指令语句和宏指令语句指令语句、
3、伪指令语句和宏指令语句。指令语句指令语句由由CPU执行执行,可产生机器代码可产生机器代码,CPU根据这些代码才能执行相根据这些代码才能执行相应的操作。应的操作。伪指令语句伪指令语句由编译器处理由编译器处理,为编译和连接提供控制信息为编译和连接提供控制信息,不产生机器代码。不产生机器代码。宏指令语句宏指令语句以一个宏名定义的一段指令序列以一个宏名定义的一段指令序列,在汇编中凡是出现宏指令在汇编中凡是出现宏指令语句的地方语句的地方,都会有相应的指令语句序列的目标代码插入。都会有相应的指令语句序列的目标代码插入。指令语句指令语句 标号标号: 指令助记符指令助记符 操作数操作数,操作数操作数 ;注释注
4、释例如: mov cx,8 ;2操作数指令 s: nop ;0操作数指令(nop空操作) loop s ;1操作数指令伪指令语句伪指令语句 名字名字 伪指令助记符伪指令助记符 参数参数,参数参数 ;注释注释例如: data1 db 0,1,2 ;数据定义伪指令DB,在内存中定义 ;3个连续的字节单元,初值是0,1,2 ;data1表示第一个数据0的偏移地址汇编语言程序的语句中包含的元素汇编语言程序的语句中包含的元素 :l字符集字符集l保留字与标识符保留字与标识符l常量、变量与标号常量、变量与标号l表达式及运算符表达式及运算符允许使用的字符:允许使用的字符:l字母,包括大写字母字母,包括大写字母
5、AZAZ和小写字母和小写字母azaz;l数字,包括数字,包括0909;l特殊字符,包括:特殊字符,包括:+ - + - * * / = / =()() ; , , “ “ . . :? $ & ? $ & 及空格、制表符、回车、换行等。及空格、制表符、回车、换行等。注意:注意:l除了字符串,字母都是不区分大小写除了字符串,字母都是不区分大小写l一系列相连的空格、制表符效果相当于一个空格一系列相连的空格、制表符效果相当于一个空格l一系列相连的回车换行相当于一次回车换行一系列相连的回车换行相当于一次回车换行l分号分号“;”后一直到行尾的内容都是注释后一直到行尾的内容都是注释l字符字符“&”&”若用
6、于某行的开头,则表示该行是上一行的续行若用于某行的开头,则表示该行是上一行的续行1 1、保留字、保留字在汇编语言中有特定意义的词,可分为:在汇编语言中有特定意义的词,可分为:指令助记符及指令前缀指令助记符及指令前缀如:如:MOVMOV、ADDADD、REPREP等等寄存器名寄存器名如:如:AXAX、EBXEBX、CLCL等等伪指令助记符伪指令助记符如:如: DB DB、SEGMENTSEGMENT等等其他保留字,包括运算符、操作符等其他保留字,包括运算符、操作符等如:如: EQEQ、LTLT、OFFSETOFFSET、SEGSEG等等标识符是程序员自己起的名字,如变量名、标号、段名、过程标识符
7、是程序员自己起的名字,如变量名、标号、段名、过程名等名等 标识符的命名规则:标识符的命名规则:l标识符必须由字母、数字和几个特殊字符(包括标识符必须由字母、数字和几个特殊字符(包括 _ $ ? :_ $ ? :)组成,而且第一个字符不能是数字(否则可能与组成,而且第一个字符不能是数字(否则可能与1616进制的数字进制的数字混淆)混淆)l标识符不能与某个保留字相同,以免混淆。标识符不能与某个保留字相同,以免混淆。l尽量用有意义的英文单词或缩写来命名,以增加程序的可读性尽量用有意义的英文单词或缩写来命名,以增加程序的可读性1 1、常量、常量数字常量数字常量l二进制:以二进制:以B B结尾,如结尾,
8、如10101010B10101010Bl八进制:以八进制:以Q Q结尾,如结尾,如123Q123Q,67Q67Ql十进制:以十进制:以D D结尾,结尾,“D”D”可省略,如可省略,如1234D1234D,56785678l十六进制:以十六进制:以H H结尾,结尾,AFAF开头的数须在前面加开头的数须在前面加“0”0” 如:如:1234H1234H,0FFFFH0FFFFH字符串常量字符串常量l用单引号或双引号引起来的一个或多个用单引号或双引号引起来的一个或多个ASCIIASCII字符字符l每个字符的值等于其每个字符的值等于其ASCIIASCII码值码值l例:例:A=41HA=41H一个字节,一
9、个字节,12=31H12=31H、32H32H两个字节两个字节变量是存放在存储器中的操作数变量是存放在存储器中的操作数 可通过变量的名字来访问变量可通过变量的名字来访问变量变量具有三个属性:变量具有三个属性:l段属性段属性,即变量所在的段的基地址;,即变量所在的段的基地址;l偏移量属性偏移量属性,即变量相对于段的起始地址的偏移量;,即变量相对于段的起始地址的偏移量;l类型属性类型属性,包括,包括BYTEBYTE(字节)、(字节)、WORDWORD(字)、(字)、DWORDDWORD(双字)(双字)FWORDFWORD(6 6字节)、字节)、QWORDQWORD(四字)、(四字)、TBYTETB
10、YTE(1010字节)等。字节)等。标号是一条指令性语句的起始地址标号是一条指令性语句的起始地址变量具有三个属性:变量具有三个属性:l段属性段属性,即变量所在的段的基地址;,即变量所在的段的基地址;l偏移量属性偏移量属性,即变量相对于段的起始地址的偏移量;,即变量相对于段的起始地址的偏移量;l类型属性类型属性,包括,包括NEARNEAR(近程,即段内)、(近程,即段内)、FARFAR(远程,(远程,即段间)即段间)由常量、变量、标号和一些运算符、操作符构成的式子由常量、变量、标号和一些运算符、操作符构成的式子表达式的值在汇编的过程中就已经被汇编程序计算出来表达式的值在汇编的过程中就已经被汇编程
11、序计算出来运算符的分类:运算符的分类:l算术运算符算术运算符l逻辑运算符逻辑运算符l关系运算符关系运算符l属性运算符属性运算符l数值返回操作符数值返回操作符五种算术运算:五种算术运算:加:加:+ +、 减:减:- -、 乘:乘:* *、 除:除:/ /、 模:模:MODMODl合法地址表达式:地址合法地址表达式:地址- -地址(处在同个段中);地址地址(处在同个段中);地址常数常数ADDR1-ADDR2ADDR1-ADDR2(假设两个地址处在同个段中)(假设两个地址处在同个段中)ADDR1+1ADDR1+1ADDR2-2ADDR2-2l非法地址表达式:地址非法地址表达式:地址+ +地址;地址地
12、址;地址* *地址;地址地址;地址/ /地址;常量地址;常量- -地址;地址地址;地址- -地址(处在不同段中)地址(处在不同段中)ADDR1+ADDR2ADDR1+ADDR2ADDR1ADDR1* *ADDR2ADDR2ADDR1/2ADDR1/2100-ADDR1100-ADDR1SEG1_A-SEG2_B SEG1_A-SEG2_B (假设两个地址处在不同段中)(假设两个地址处在不同段中)五种算术运算:五种算术运算:与与ANDAND、或、或OROR、异或、异或XORXOR、非、非NOTNOT、逻辑左移、逻辑左移SHLSHL、逻辑右移、逻辑右移SHRSHR 只用于数字表达式中只用于数字表达
13、式中例:例:MOV ALMOV AL,10101010B AND 11001100B 10101010B AND 11001100B ;AL10001000BAL10001000BMOV ALMOV AL,10001000B OR 01000100B 10001000B OR 01000100B ;AL11001100BAL11001100BMOV AXMOV AX,1000100010001000B XOR 1100110011001100B1000100010001000B XOR 1100110011001100B;AX0100010001000100BAX010001000100010
14、0BMOV AXMOV AX,NOT 1010101010101010BNOT 1010101010101010B;AX0101010101010101BAX0101010101010101B六种关系运算符:六种关系运算符:lEQEQ(EqualEqual,相等),相等)lNENE(Not EqualNot Equal,不等),不等)lLTLT(Less ThanLess Than,小于),小于)lLELE(Less than or EqualLess than or Equal,小于或等于),小于或等于)lGTGT(Great ThanGreat Than,大于),大于)lGEGE(Grea
15、t than or EqualGreat than or Equal,大于或等于),大于或等于)运算结果:运算结果:l关系为真,则运算结果为关系为真,则运算结果为0FFFFH0FFFFHl关系为假,则运算结果为关系为假,则运算结果为0 0 (1)型重新指定操作符PTR功能:临时指定或修改存储器操作数的数据类型属性或地址类型属性格式:类型 PTR 表达式例:VAR_W DW1234HMOV AX,VAR_W ;AX1234HMOV AL,BYTE PTR VAR_W ;AL34H功能:功能:指定或说明变量或标号的类型指定或说明变量或标号的类型例例1 1:DATA_W EQU THIS WORDD
16、ATA_W EQU THIS WORDDATA_B DBDATA_B DB1 1,2 2,3 3,4 4MOVMOVALAL,DATA_B DATA_B ;AL1AL1MOVMOVAXAX,WORD PTR DATA_B WORD PTR DATA_B ;AL0201HAL0201HMOVMOVAXAX,DATA_W DATA_W ;AL0201HAL0201H例例2 2:ADDR_F EQU ADDR_F EQU THIS FARTHIS FARADDR_N: MOV AXADDR_N: MOV AX,1 1 JMP ADDR_F JMP ADDR_F ;等价于:;等价于:JMP JMP F
17、AR PTR FAR PTR ADDR_N ADDR_N (1 1)SEGSEG、OFFSETOFFSET功能:功能:lSEGSEG操作符用于求一个标号或变量所在段的基地址操作符用于求一个标号或变量所在段的基地址lOFFSETOFFSET操作符则用于求标号或变量在段中的地址偏移量操作符则用于求标号或变量在段中的地址偏移量例如,对于代码段中的一条指令:例如,对于代码段中的一条指令:2000H:1234H ADDR: INC CX 2000H:1234H ADDR: INC CX ;段地址;段地址=2000H=2000H 偏移量偏移量=1234H=1234H则有:则有:MOV AXMOV AX,S
18、EG ADDR SEG ADDR ;AX2000HAX2000HMOV AXMOV AX,OFFSET ADDR OFFSET ADDR ;AX1234HAX1234H;与指令;与指令 “ “LEA LEA AX AX,ADDR” ADDR” 等价等价功能:功能:lTYPETYPE:求变量的数值类型属性,即变量具有的字节数:求变量的数值类型属性,即变量具有的字节数BYTEBYTE:返回:返回1 1;WORDWORD:返回:返回2 2;DWORD DWORD :返回:返回4 4;FWORD FWORD :返回:返回6 6;QWORD QWORD :返回:返回8 8,TBYTE TBYTE :返回
19、:返回1010;NEARNEAR:返回:返回0FFH0FFH;FARFAR:返回:返回0FEH0FEHlLENGTHLENGTH:求变量所占用的内存单元数:求变量所占用的内存单元数用于由重复操作符用于由重复操作符DUPDUP()定义的存储器变量()定义的存储器变量对于其他变量,对于其他变量,LENGTHLENGTH的返回值都是的返回值都是1 1lSIZESIZE:计算变量所占存储器的总字节数:计算变量所占存储器的总字节数 l关系:关系:SIZE = LENGTH SIZE = LENGTH TYPE TYPE例:DATA1 DW 1234HDATA2 DB HELLODATA3 DD 100
20、DUP(0);表示定义100个值为0的双字MOV AL,TYPEDATA1;AL2MOV AL,TYPEDATA2;AL1MOV AL,TYPEDATA3;AL4MOV BL,LENGTH DATA1;BL1MOV BL,LENGTH DATA2;BL1MOV BL,LENGTH DATA3;BL100MOV CL,SIZEDATA1;CL21=2MOV CL,SIZEDATA2;CL11=1MOV CL,SIZEDATA3;CL4100=400功能:lHIGH:分离一个字常量或一个地址表达式的高字节 lLOW:分离一个字常量或一个地址表达式的低字节例:l只能用于常量或结果为常量的表达式只能用
21、于常量或结果为常量的表达式ADDR1:MOV AL,HIGH 1234H;AL12HMOV AL,LOW ADDR1;AL上一指令 ;地址偏移量的低8位l不能用于变量或寄存器MOV BL,HIGH AX表达式计算顺序:表达式计算顺序:l先处理优先级别高的运算符先处理优先级别高的运算符l对于优先级相等的运算符,则按从左至右的顺序进行处理对于优先级相等的运算符,则按从左至右的顺序进行处理优先级顺序:优先级顺序:l()、()、(优先级最高)(优先级最高)lLENGTHLENGTH、SIZESIZElPTRPTR、THISTHIS、SEGSEG、OFFSETOFFSET、TYPETYPElHIGHHI
22、GH、LOWLOWl* *、/ /、MODMOD、SHLSHL、SHRSHRl+ +、- -lEQEQ、NENE、LTLT、LELE、GTGT、GEGElNOTNOTlANDANDlOROR、XORXORlSHORTSHORT(优先级最低)(优先级最低)一、伪指令(指示性语句)一、伪指令(指示性语句)格式(格式( 里的内容可选):里的内容可选): 名字名字 伪指令符伪指令符 操作数,操作数,操作数,操作数, ;注释;注释 l名字:变量名、段名等,与指令地址无关,后面不能加冒号名字:变量名、段名等,与指令地址无关,后面不能加冒号l伪指令符:指定汇编程序要完成的具体操作伪指令符:指定汇编程序要完成
23、的具体操作l操作数:常量、变量或表达式等操作数:常量、变量或表达式等l注释:说明、解释当前语句的作用注释:说明、解释当前语句的作用常用伪指令:常用伪指令:l处理器选择伪指令处理器选择伪指令l数据定义伪指令,包括数据定义伪指令,包括DBDB、DWDW、DDDD、DFDF、DQDQ、DTDTl符号定义伪指令,包括符号定义伪指令,包括EQUEQU、“=”=”l段定义伪指令段定义伪指令SEGMENTSEGMENT、ENDSENDSl假定伪指令假定伪指令ASSUMEASSUMEl地址对准伪指令地址对准伪指令ORGORGl过程定义伪指令过程定义伪指令PROCPROC、ENDPENDPl源程序结束伪指令源程
24、序结束伪指令ENDEND功能:功能:为变量分配存储空间为变量分配存储空间格式:格式: 变量名变量名 伪指令符伪指令符 操作数,操作数,操作数,操作数, ;注释;注释 六种数据定义伪指令:六种数据定义伪指令:lDBDB(字节定义):每个操作数占(字节定义):每个操作数占1 1个字节个字节lDWDW(字定义):每个操作数占(字定义):每个操作数占1 1个字,即个字,即2 2个字节个字节lDDDD(双字定义):每个操作数的长度为双字,即(双字定义):每个操作数的长度为双字,即4 4个字节个字节lDFDF(6 6字节定义):每个操作数的长度为字节定义):每个操作数的长度为6 6个字节个字节lDQDQ(
25、四字定义):每个操作数的长度为四字,即(四字定义):每个操作数的长度为四字,即8 8个字节个字节lDTDT(1010字节定义):每个操作数的长度为字节定义):每个操作数的长度为1010个字节个字节例:例:l可同时定义多个数据:可同时定义多个数据:NUM DW 12HNUM DW 12H,-1 -1 ;定义;定义2 2个字个字STRING DB HELLOSTRING DB HELLO,0DH0DH,0AH0AH;定义字符串;定义字符串l省略变量名:省略变量名:BUF DB 1BUF DB 1,1010,100100 DB 1 DB 1 ;省略变量名;省略变量名 ;但该数据仍可通过;但该数据仍可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 教学 课件 电子 教案
限制150内