微机原理课件第讲宏汇编语言程序设计优质PPT.ppt
- 文档编号:15562899
- 上传时间:2022-11-05
- 格式:PPT
- 页数:22
- 大小:131.50KB
微机原理课件第讲宏汇编语言程序设计优质PPT.ppt
《微机原理课件第讲宏汇编语言程序设计优质PPT.ppt》由会员分享,可在线阅读,更多相关《微机原理课件第讲宏汇编语言程序设计优质PPT.ppt(22页珍藏版)》请在冰豆网上搜索。
DATA,SS:
STACK段段定义定义过程定义过程定义数据定义数据定义例例4-1续续START:
MOVAX,DATA;
送数据段段地址送数据段段地址MOVDS,AXMOVAX,STACK;
送堆栈段段地址送堆栈段段地址MOVSS,AXMOVSP,OFFSETTOP;
堆栈段偏移量送堆栈段偏移量送SPMOVBX,OFFSETTABLE;
平方表有效地址平方表有效地址送送BXNEXT:
MOVDX,OFFSETBUF;
提示输入一个数提示输入一个数MOVAH,9;
9号功能调用,(显示字符串)号功能调用,(显示字符串)INT21HMOVAH,1;
1号功能调用号功能调用,(输入字符并显示)输入字符并显示)INT21H;
键入数送入键入数送入ALANDAL,0FH;
屏蔽高四位屏蔽高四位XLAT;
查表得平方值送查表得平方值送ALMOVAX,4C00H;
带参数返回带参数返回DOSINT21HRET;
返回返回DOSMAINENDP;
过程过程MAIN结束结束CODEENDS;
代码段结束代码段结束ENDSTART;
汇编结束汇编结束1.指令性语句指令性语句可以翻译为机器码可以翻译为机器码基本格式基本格式名字名字伪指令指示符伪指令指示符操作数,操作数,操作数,操作数,;
注释;
注释2.伪指令语句伪指令语句不能翻译为机器码不能翻译为机器码基本格式基本格式标号:
指令助记符标号:
指令助记符操作数,操作数操作数,操作数;
注释常数:
常数:
10111111B,0BFH,Thisisanexample变量变量:
三个属性三个属性段地址段地址、偏移量、类型偏移量、类型(BYTE,WORD,DWORD)标号标号:
三个属性三个属性段地址、偏移量、类型段地址、偏移量、类型(FAR,NEAR)3.数据项数据项操作数。
可以是常数、寄存器、存储器、变量、操作数。
可以是常数、寄存器、存储器、变量、标号或表达式标号或表达式标识符标识符字母或特殊字符开始字母或特殊字符开始字母、数字及特殊字符构成字母、数字及特殊字符构成长度长度314.2MASM中的表达式中的表达式表达式:
表达式:
由由运算符运算符和操作对和操作对象组成象组成运算符运算符1.算术运算符算术运算符2.逻辑运算符逻辑运算符3.关系关系运算符运算符4.数值返回数值返回运算符运算符5.修改属性修改属性运算符运算符6.其他其他运算符运算符1.算术运算符算术运算符运算符运算符+,-,*,/(取商),(取商),MOD,SHL,SHR操作对象操作对象与结果与结果整数数值或地址,可以整数数值或地址,可以是常数、变量或符号是常数、变量或符号例例MOVAX,3*51MOVAX,1532.逻辑运算符逻辑运算符运算符运算符AND,OR,XOR,NOT操作对象操作对象与结果与结果常数常数例例MOVAL,8CHOR73HMOVAL,0FFHMSAM中的运算符中的运算符3.关系运算符关系运算符运算符运算符EQ,NE,LT,LE,GT,GE操作对象操作对象数值或同一段内的地址数值或同一段内的地址例例MOVAL,10HGT16MOVAL,04.数值返回运算符数值返回运算符运算符运算符OFFSET,SEG,TYPE,LENGTH,SIZE操作对象操作对象变量或标号变量或标号例例MOVAX,OFFSETTABLEMOVAX,H4.数值返回运算符数值返回运算符1)OFFSETOPRD返回返回OPRD的偏移量的偏移量2)SEGOPRD返回返回OPRD的段的段基址基址3)TYPEOPRD返回返回OPRD的的类型类型4)LENGTH变量变量返回变量的单元数返回变量的单元数5)SIZE变量变量返回变量的字节数返回变量的字节数SIZE=LENGTHTYPEM1DW100DUP(?
)MOVCX,SIZEM1S类型类型返回值返回值变变量量DBDWDDDQ1248标标号号NEARFAR-1(0FFH)-2(0FEH)A1DB20H,ABA2DW1234HL1:
MOVAH,TYPEA1MOVAL,TYPEA2MOVBH,TYPEL1A1DB100DUP(?
)A2DW1234H,0FHA3DBABCDL2:
MOVAH,LENGTHA1MOVAL,LENGTHA2MOVBH,LENGTHL1L1:
MOVAH,1MOVAL,2MOVBH,0FFHL1:
MOVAH,100MOVAL,1MOVBH,15.修改属性运算符修改属性运算符1)段段操作符操作符段前缀:
变量或地址表达式段前缀:
变量或地址表达式MOVAX,ES:
BX2)PTR类型类型/距离距离PTR变量或标号变量或标号N1DB12H,34HFIND:
MOVAX,WORDPTRN1JMPFARPTRFIND3)THIS变量变量/标号标号EQUTHIS类型类型/距离距离FIRSTEQUTHISBYTETABLEDW200DUP(?
)4)SHORTSHORT标号标号JMPSHORTL25)HIGH,LOW-分离运算符分离运算符HIGH/LOW变量或标号变量或标号取高位或低位字节取高位或低位字节K1EQU1234HMOVAH,HIGHK1MOVAL,LOWK1AH=12H,AL=34HSPEQUTHISFARMOVAX,1006.其他运算符其他运算符1)圆括号圆括号()()改变运算优先级改变运算优先级2)方括号方括号表示地址或多重变量的下标表示地址或多重变量的下标MOVAL,M13例例4193)尖括号及圆点尖括号及圆点,结构中专用结构中专用4)MASK,WIDTH纪录中专用纪录中专用4.3伪指令语句伪指令语句数据定义数据定义语句语句DB,DW,DD,DQ,DT符号定义符号定义语句语句EQU,=段定义段定义语句语句SEGMENTENDS过程定义过程定义语句语句PROCENDP程序开始和结束指示程序开始和结束指示语句语句NAME,ORG,END结构定义结构定义STRUCENDS外部伪指令外部伪指令(PUBLIC,EXTERN)、)、对准伪指令对准伪指令(EVEN)、)、标号伪指令标号伪指令(LABEL)1.数据定义语句数据定义语句格式格式变量名变量名助记符助记符操作数,操作数操作数,操作数;
注释变量名变量名助记符助记符nDUP(操作数,操作数操作数,操作数);
注释助记符助记符功能功能DB定义字节定义字节DW定义字定义字DD定义双字定义双字DQ定义四字定义四字DT定义十字节定义十字节规则规则变量名为标识符,可以省略变量名为标识符,可以省略操作数:
常数、变量、标号、表达式,操作数:
常数、变量、标号、表达式,以逗号分隔。
以逗号分隔。
DW定义字符串时,只能包括定义字符串时,只能包括2个字符个字符n为正整数为正整数例:
例:
PDATADW1,3,5STRINGDBOKDDATADD100DUP(?
)功能:
功能:
定义变量定义变量分配存储空间、赋值分配存储空间、赋值?
用于分配存储空间用于分配存储空间操作数为变量或标号时,操作数为变量或标号时,DW保存它的保存它的偏移地址,偏移地址,DD保存它的偏移地址和段保存它的偏移地址和段地址地址(例例425)2.符号定义语句(表达式赋值语句)符号定义语句(表达式赋值语句)格式格式符号名符号名EQU/=表达式表达式功能功能定义符号,代表表达式定义符号,代表表达式规则规则表达式:
常数、变量、标号、指令语句、寄存器、表达式:
常数、变量、标号、指令语句、寄存器、表达式表达式表达式中的变量、标号必须预先定义表达式中的变量、标号必须预先定义当采用当采用EQU时,要重新定义须先使用时,要重新定义须先使用PURGE清除清除PURGE符号名符号名例:
COUNTEQU10A1EQUBX+SIACEQUADDA2=COUNT+1B2=BX3.段定义语句段定义语句1)段定义段定义格式格式段名段名SEGMENT定位类型定位类型组合类型组合类型分类名分类名逻辑段内容逻辑段内容段名段名ENDS例例功能功能定义一个逻辑段定义一个逻辑段规则规则段名不可省略,段名不可省略,SEGMENT与与ENDS必须成对出现必须成对出现允许嵌套定义,但不能交叉允许嵌套定义,但不能交叉定位类型定位类型组合类型组合类型分类名分类名:
按次序排列:
按次序排列定位类型定位类型PARA段始于节边界段始于节边界BYTE段始于任何字段始于任何字节地址节地址WORD段始于任何偶段始于任何偶数地址数地址PAGE段始于页边界段始于页边界组合类型组合类型NONE无,缺省无,缺省PUBLIC连接连接COMMON覆盖覆盖AT表达式表达式指定节指定节STACK堆栈,必堆栈,必须须MEMORY覆盖覆盖2)段分配段分配格式:
格式:
ASSUMECS:
段名段名,DS:
段名段名,ES:
段名段名,SS:
段名段名规则:
规则:
通常通常CS和和DS必需,有串操作时必需,有串操作时ES必需。
必需。
除除CS外,其他段寄存器不能自动装入段基址。
外,其他段寄存器不能自动装入段基址。
4.过程定义语句过程定义语句格式格式过程名过程名PROC属性属性;
过程内容;
过程内容RETN过程名过程名ENDP功能功能定义一个过程定义一个过程规则规则至少有一个至少有一个RETN表示过程返回后,堆表示过程返回后,堆栈中应有栈中应有N个字节的内个字节的内容作废容作废不是必需的不是必需的应为正偶数。
应为正偶数。
过程调用:
允许嵌套与过程调用:
允许嵌套与递归调用递归调用例4285.程序开始和结束指示语句程序开始和结束指示语句3)END标号标号每个模块只有一个每个模块只有一个END,指示汇编程序停止汇编指示汇编程序停止汇编标号为程序中第一个可执行指令的标号。
标号为程序中第一个可执行指令的标号。
存在多个模块时,标号为主模块的第一个可执行指存在多个模块时,标号为主模块的第一个可执行指令的标号令的标号。
CODESEGMENGORG100HASSUMECS:
DATASTA:
MOVAX,DATACODEENDSENDSTA1)NAME程序名程序名2)2)ORG表达表达式式指定下面语句的偏移指定下面语句的偏移地址地址6.结构定义语句结构定义语句3个个步骤:
结构语句定义,结构付本预置,结构的使用步骤:
结构语句定义,结构付本预置,结构的使用1、结构定义、结构定义结构名结构名STRUC(用用DB,DW,DD等定义变量)等定义变量)结构名结构名ENDS变量类型:
简单变量,多重变量,字符串变量,多重变量变量类型:
简单变量,多重变量,字符串变量,多重变量2、结构付本预置、结构付本预置结构付本名结构付本名结构名结构名结构付本名结构付本名结构名结构名NDUP()3、结构的使用、结构的使用例:
MOVTWOT2,AX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课件 第讲宏 汇编语言 程序设计