汇编语言设计.pptx
《汇编语言设计.pptx》由会员分享,可在线阅读,更多相关《汇编语言设计.pptx(74页珍藏版)》请在咨信网上搜索。
1、第四章第四章汇编语言程序设计汇编语言程序设计湖州师范学院2024/8/8周四信息工程学院1v宏汇编使用的语句分三类指令性语句伪指令语句/指示性语句宏指令语句4.1.2 MASM汇编语言2024/8/8 周四信息工程学院2指令性语句指令性语句:与机器指令相对应,可译成目标代码(机器指令代码)。语句格式:语句格式:【标号:标号:标号:标号:】【前缀前缀前缀前缀】指令助记符指令助记符指令助记符指令助记符 【操作数,操作数操作数,操作数操作数,操作数操作数,操作数】【;注释;注释;注释;注释】标号:可有可无,可有可无,指令语句的符号地址,后面必须紧跟冒号必须紧跟冒号“:”。注注意意:标号可使用字母、数
2、字和特殊符号;首字符必须是字母或特殊符号;最大长度31个字符;可以省略,经常作为表示转移的地址。指令助记符:指令名称的代表符号,指出指令的操作类型。可译成机器码;不可省略,是关键字。操作数:参与指令运算的数据。可以有一个、多个操作数或无操作数;多个操作数之间用逗逗号号“,”隔开,操作数与指令助记符之间用“空格空格”隔开。操作数可以是常数、变量、标号、寄存器名或表达式。注释:说明指令或程序的功能,可省略。注释前加分号分号“;”。1、指令性语句、指令性语句2024/8/8 周四信息工程学院3伪伪指指令令语语句句:无对应的机器指令,汇编时对伪指令进行处理,可完成数据定义、存储区分配、段定义、段分配、
3、指示程序结束等功能。语句的格式:语句的格式:【名字】伪指令指示符 【操作数,操作数】【;注释】名字:名字后不允许带冒号不允许带冒号“:”,但可以省略可以省略。通常是变量名、段名、过程名、符号名等。伪指令指示符:汇编程序MASM规定的符号。常用的有变变量量定定义义语语句句(DB、DW),符符号号定定义义语语句句(EQU、),段段定定义义语语句句(SEGMENTEND),段段分分配配语语句句(ASSUME),过过程程定定义义语句(PROCENDP)等。操作数:不同伪指令有不同要求。操作数可以是常数、变量、字符串、表达式常数、变量、字符串、表达式等。注释:功能和使用与指令性语句相同。2、伪指令语句、
4、伪指令语句/指示性语句指示性语句2024/8/8 周四信息工程学院44.2.1 汇编语言描述规范1、标识符、标识符字符数为131个第一个字符必须是字母、“?”、“”、“_”第二个字符以后可以使字母、数字、“?”、“”或“_”不能使用系统专用的助记符、伪指令、寄存器等具有三个属性。(1)段属性:定义标识符所在段。(2)偏移量属性:定义标识符所在段的偏移量。(3)类型属性:标号分为:类型NEAR,表示此标号为近标号,只能实现段内转移或调用;类型FAR,表示此标号为远标号,可以实现段间转移或调用。符号名中:字节变量(BYTE)、字变量(WORD)、双字变量(DWORD)。2024/8/8 周四信息工
5、程学院52、操作数、操作数(1)常数是固定值,没有属性,是确定的数据。二进制:字母“B”结尾,例00110100B;八进制:字母“Q”或“O”结尾,例1037O、2370Q;十进制:字母“D”结尾或省略,或科学表示法,例1234D、5678、2.735E-2;十六进制:字母“H”结尾,“AF”开头时,前面加0,例56H、0A7F2H;字符串:用单引号括起来,机内存放的是各字符的ASCII码。例ABC。2024/8/8 周四信息工程学院6(2)变量变量通常指存放在存储单元中的值,程序运行中可以修改。所有的变量都具有三个属性。段值段值(SEGMENT)(SEGMENT):指变量所在段的段基址。段内
6、偏移地址段内偏移地址(OFFSET)(OFFSET):指变量所在地址与所在段首地址之间的地址偏移字节数。类型类型(TYPE)(TYPE):指变量中每个元素所包含的字节数:字节变量(BYTE)、字变量(WORD)、双字变量(DWORD)等。(3)标号:标号是可执行指令语句的地址的符号表示,可作为程序转向的目标地址。具有三个属性。(1)(1)段值段值(SEGMENT)(SEGMENT):标号所在段的段基址。(2)(2)段内偏移地址段内偏移地址(OFFSET)(OFFSET):标号所在地址与所在段的段首址之间的偏移地址字节数。(3)(3)类型类型(TYPE)(TYPE):2024/8/8 周四信息工
7、程学院7(7)表达式表达式:运算对象+运算符。在汇编时进行运算,运算结果作为语句中的操作数。运算对象:常数、变量、标号。得到的运算结果可以是一个常数字,也可以是一个存储器的地址。MASM中6类运算符:如表4-1所示。算术运算符(ArithmeticOperators)逻辑运算符(LogicalOperators)关系运算符(RelationalOperators)数值返回运算符(Value-ReturningOperators)修改属性运算符(ModifingattributeOperators)其它运算符(otherOperators)2024/8/8 周四信息工程学院8表表41 MASM的
8、表达式中的运算符(的表达式中的运算符(1)类型类型符号符号名称名称运算结果运算结果算术运算符算术运算符*/MODSHLSHR加法加法减法减法乘法乘法除法除法模除模除左移左移右移右移和和差差乘积乘积商商余数余数左移后二进制数左移后二进制数右移后二进制数右移后二进制数逻辑运算符逻辑运算符ANDORXORNOT与运算与运算或运算或运算异或运算异或运算非运算非运算逻辑与结果逻辑与结果逻辑或结果逻辑或结果逻辑异或结果逻辑异或结果逻辑非结果逻辑非结果2024/8/8 周四信息工程学院9表表表表4 41 MASM1 MASM的表达式中的运算符(的表达式中的运算符(的表达式中的运算符(的表达式中的运算符(2
9、2)类型类型符号符号名称名称运算结果运算结果关系运算符关系运算符EQNELTLEGTGE相等相等不等不等小于小于小于等于小于等于大于大于大于等于大于等于结果为真输出全结果为真输出全“1”结果为假输出全结果为假输出全“0”数值返回数值返回OFFSETSEGTYPELENGTHSIZE返回偏移地址返回偏移地址返回段基址返回段基址返回元素字节数返回元素字节数返回变量单元数返回变量单元数返回变量总字节数返回变量总字节数偏移地址偏移地址段基址段基址字节数字节数单元数单元数总字节数总字节数2024/8/8 周四信息工程学院10表表表表4 41 MASM1 MASM的表达式中的运算符(的表达式中的运算符(的
10、表达式中的运算符(的表达式中的运算符(3 3)类型类型符号符号名称名称运算结果运算结果修改属性修改属性段寄存器名段寄存器名PTRTHISHIGHLOWSHORT段前缀段前缀修改类型属性修改类型属性制定类型制定类型/距离属性距离属性分离高字节分离高字节分离低字节分离低字节短转移说明短转移说明修改段修改段修改后类型修改后类型指定后类型指定后类型高字节高字节低字节低字节128127字节字节间转移间转移其他运算符其他运算符()().MASKWIDTH园括号园括号方括号方括号点运算符点运算符尖括号尖括号记录位图记录位图记录宽度记录宽度改变运算符优先级改变运算符优先级下标或间接寻址下标或间接寻址连接结构与
11、变量连接结构与变量修改变量修改变量位图形位图形记录记录/字段位数字段位数2024/8/8 周四信息工程学院11包括包括包括包括7 7种:种:种:种:十、一、*、/(除,只取除法运算结果之商)、MOD(模,只取除法运算结果之余数)、SHL(左移,左移1位相当于乘2)、SHR(右移,右移1位相当于除2)。注意:注意:注意:注意:所有的算术运算符均可以对数据进行运算,运算对象与运算结果都是整数。若对地址运算,通常是在标号上加减某一个数字量。一、算术运算符2024/8/8 周四信息工程学院12例4.3汇编程序指令格式如下:DAEQU300MOVAX,DA80MOVBX,DAMOD100MOVCX,DA
12、/100MOVDH,01100100BSHR2汇编时,计算表达式形成指令为:DAEQU300MOVAX,220MOVBX,0MOVCX,3MOVDH,19H2024/8/8 周四信息工程学院13包括包括4种:种:AND(与)、OR(或)、NOT(非)、XOR(异)或)注意:注意:注意:注意:按位按位按位按位运算的,只能对常数常数进行运算,得到结果也是常数。二、逻辑运算符2024/8/8 周四信息工程学院14例4.4MOVAL,NOT0FFHMOVBL,8CHAND73HMOVAH,8CHOR73HMOVCH,8CHXOR73H汇编时,计算表达式形成指令为:MOVAL,0MOVBL,0MOVAH
13、,0FFHMOVCH,0FFH注意:逻辑运算符不要与逻辑指令助记符混淆。2024/8/8 周四信息工程学院15包括包括6种:种:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)。意:意:意:意:关系运算符的两两个个操操作作数数必必须须是是数数据据,或是同同一一段段内内的的两两个个存储单元的地址;地址;若结果为真,输出全是l,即0FFH或0FFFFH;若结果为假,输出全是0。三、关系运算符例4.5MOVAX,10HGT16ADDBL,6EQ0110B汇编时,计算表达式形成指令为:MOVAX,0ADDBL,0FFH2024/8/8 周四信息工程学院16
14、数值返回运算符也称作分析运算符分析运算符分析运算符分析运算符(Analytic opertors)(Analytic opertors)(Analytic opertors)(Analytic opertors)。包括包括包括包括5 5 5 5种:种:种:种:OFFSETOFFSETOFFSETOFFSET、SEGSEGSEGSEG、TYPETYPETYPETYPE、LENGTHLENGTHLENGTHLENGTH、SIZESIZESIZESIZE 。功能:功能:加在变变量量或或标标号号前前,返返回回运算对象的某某个个参参数数值值。例如偏移地址值、段地址值、类型属性、变量包含的单元数等。1 1
15、 1 1OFFSETOFFSETOFFSETOFFSET:格式:格式:格式:格式:OFFSETOFFSETOFFSETOFFSET 变量或标号变量或标号功能:功能:功能:功能:返回标号或变量的返回标号或变量的偏移地址值偏移地址值偏移地址值偏移地址值。例4.6若DA1为数据段中一个变量名MOVBX,OFFSETDA1;等价于LEABX,DA1四、数值返回运算符2024/8/8 周四信息工程学院172 2SEGSEG:格式:格式:格式:格式:SEG SEG 变量或标号变量或标号功能:功能:功能:功能:取变量或标号的取变量或标号的段基值段基值段基值段基值。例4.7MOVAX,SEGM1MOVDX,A
16、X解:设:M1是段名为DATA的数据段中的一个变量名;如DATA段从0500H开始,上述指令把0500H作为立即数在连接时插入指令;汇编后指令变为:MOVAX,0500HMOVDX,AX2024/8/8 周四信息工程学院183 3TYPETYPE:格式:格式:格式:格式:TYPETYPE 变量或标号变量或标号功能:功能:功能:功能:加在加在变量前变量前变量前变量前,返回变量的,返回变量的类型属性类型属性类型属性类型属性;加在加在标号前标号前标号前标号前,返回标号的,返回标号的距离属性距离属性距离属性距离属性。如下表所示。如下表所示。TYPE 运算符返回值运算符返回值类型返回值 变量DBDWDD
17、DQ1248标号NEARFAR-1 FFH-2 FEH2024/8/8 周四信息工程学院19例4.8A1DB20H,30HA2DW0438HA3DD?L1:MOVAH,TYPEA1MOVBH,TYPEA2ADDAL,TYPEA3MOVBL,TYPEL1汇编时,计算表达式形成指令为:MOVAH,1MOVBH,2ADDAL,4MOVBL,0FFH2024/8/8 周四信息工程学院204 4LENGTHLENGTH:格式:格式:格式:格式:LENGTHLENGTH 变量变量功功功功能能能能:当当变变量量中中使使用用DUPDUP时时时时,LENGTHLENGTH返返回回此此变变量量所所包包含含的的单单
18、单单元数元数元数元数,对,对其它其它其它其它变量则变量则返回返回返回返回1 1。例4.9M1DW100DUP(?)M2DW1,2,3M3DBA,B,C,DMOVCX,LENGTHM1MOVBL,LENGTHM2MOVAL,LENGTHM3汇编时,计算表达式形成指令为:MOVCX,100;返回变量所包含的100个字单元MOVBL,1MOVAL,12024/8/8 周四信息工程学院215 5SIZESIZE:格式:格式:格式:格式:SIZE SIZE 变量变量功能:功能:功能:功能:加在加在变量前变量前变量前变量前,返回该变量包含的,返回该变量包含的总字节数总字节数总字节数总字节数。SIZESIZ
19、ELENGTH*TYPELENGTH*TYPE例4.10 M1DW100DUP(?)M2DW1,2,3M3DBA,B,C,DMOVCX,SIZEM1ADDBL,SIZEM2MOVAL,SIZEM3汇编时,计算表达式形成指令为:MOVCX,200;返回变量所包含的200个字单元MOVBL,2MOVAL,12024/8/8 周四信息工程学院22修改属性运算符也称作修改属性运算符也称作合成运算符合成运算符(Synthetic operators)(Synthetic operators)。包括包括包括包括6 6种:种:种:种:段操作符、PTR、THIS、HIGH、LOW、SHORT功能:功能:功能:
20、功能:在程序运行过程中,修改变变量量或标号的属性,包括段属性、偏移地址属性、类型属性等。1 1段操作符:段操作符:段操作符:段操作符:格式:段前缀:格式:段前缀:格式:段前缀:格式:段前缀:变量或地址表达式变量或地址表达式功能:功能:功能:功能:表示某个变量或地址被修改到表示某个变量或地址被修改到指定的段寄存器指定的段寄存器指定的段寄存器指定的段寄存器提供的段基址中。提供的段基址中。例4-11MOVAX,ES:BX五、修改属性运算符2024/8/8 周四信息工程学院232 2PTRPTR:格式:格式:格式:格式:类型类型/距离距离 PTRPTR 变量或标号变量或标号功能:功能:功能:功能:将将
21、PTRPTR左边的类型属性左边的类型属性赋给赋给右边的变量或标号右边的变量或标号。注意:注意:注意:注意:PTRPTR本身本身不分配不分配存储单元,仅对已分配的存储单元存储单元,仅对已分配的存储单元赋予新的属性赋予新的属性;常与类常与类BYTEBYTE、WORDWORD、DWORDDWORD、NEARNEAR、FARFAR等连用。等连用。2024/8/8 周四信息工程学院24例4.12N1DB15H,36HN2DW1122H,3344HLO:MOVAX,WORDPTRN1;使N1转换成AX类型MOVBL,BYTEPTRN2;使N2转换成BL类型例 MOV BX,10H分析:将立即数送入BX间址
22、指定的存储单元,可以通过PTR指明是存入字节单元还是字单元。MOVBYTEPTRBX,10H;BX10H MOVWORDPTRBX,10H;BX,BX+10010H也可用PTR来改变距离属性,JMPFARPTRLOOP在JMP语句中将标号LOOP改为FAR,使JMP指令在其它代码段中也可以用,实现段间转移。2024/8/8 周四信息工程学院253 3THISTHIS:格式:格式:格式:格式:变量变量/标号标号 EQU THIS EQU THIS 类型类型/距离距离功功功功能能能能:将EQU THIS右边的类型/距离属性,赋赋给给左边的变量/标号,该变量或标号的段地址和偏移地址与下一个存储单元的
23、地址相同。例4.13FIRST EQU THIS BYTETABLE DW 200 DUP(?)FIRST的偏移地址值与TABLE的偏移地址值相同,区别在于FIRST变变量量为字节类型,TABLE为字类型。此功能类似于LABEL伪指令的功能。2024/8/8 周四信息工程学院264 4SHOTSHOT:格式:格式:格式:格式:SHORTSHORT 标号标号功能:功能:功能:功能:说明转移类指令中转向地址的属性为短转移:说明转移类指令中转向地址的属性为短转移:-128-128+127+127之间。之间。例L1:JMPSHORTL2L2:MOVAX,05 5HIGHHIGH和和和和LOWLOW:格
24、式:格式:格式:格式:HIGHHIGHLOWLOW 符号常量符号常量功能:功能:功能:功能:HIGHHIGH和和LOWLOW称为称为字节分离运算符字节分离运算符字节分离运算符字节分离运算符。HIGHHIGH从中分离出高位字节,从中分离出高位字节,LOWLOW分离出低位字节。分离出低位字节。2024/8/8 周四信息工程学院27例4.16 K1EQU0ABCDHK2EQU1234HMOVAH,HIGHK1MOVBL,LOWK2汇编时,计算表达式形成指令为:MOVAH,0ABHMOVBL,34H2024/8/8 周四信息工程学院281 1圆括号圆括号圆括号圆括号()():()中的运算符具有最高优先
25、权最高优先权。2 2方括号方括号方括号方括号 :方括号主要用来表示存储器的偏移地址存储器的偏移地址。六、其它运算符2024/8/8 周四信息工程学院29 表表表表达达达达式式式式的的的的计计计计算算算算原原原原则则则则:同同级级运运算算符符从从左左到到右右的的,圆圆括括号号()可可改改变优先级次序。运算符的优先级别如下表所示。变优先级次序。运算符的优先级别如下表所示。七、优先级优先级运算符12345678910(),LENGTH,WIDTH,SIZE,MASKPTR,OFFSET,SEG,TYPE,THIS,CS:,DS:,ES:,SS:HIGH,LOW*,/,MOD,SHL,SHR+,-EQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。