微机原理课件第讲宏汇编语言程序设计.ppt
- 文档编号:12049095
- 上传时间:2023-06-04
- 格式:PPT
- 页数:22
- 大小:131.50KB
微机原理课件第讲宏汇编语言程序设计.ppt
《微机原理课件第讲宏汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《微机原理课件第讲宏汇编语言程序设计.ppt(22页珍藏版)》请在冰点文库上搜索。
第四章汇编语言程序设计,4.1汇编语言程序格式4.2MASM中的表达式4.3伪指令语句4.4DOS系统功能调用与BIOS中断调用,4.1汇编语言程序格式,例:
内存中TABLE开始存放09的平方值,通过人机对话,当任给定一个X(09),查表得X的平方值,放在AL中。
DATASEGMENTTABLEDB0,1,4,9,16,25,36,49,64,81BUFDBPleaseinputonenumber:
,0DH,0AH,$DATAENDSSTACKSEGMENTPARASTACKSTACKST1DB50DUP(?
)TOPLABELWORDSTACKENDSCODESEGMENTMAINPROCFARASSUMECS:
CODE,DS:
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;汇编结束,指令性语句可以翻译为机器码,基本格式名字伪指令指示符操作数,操作数,;注释,伪指令语句不能翻译为机器码,基本格式标号:
指令助记符操作数,操作数;注释,常数:
10111111B,0BFH,Thisisanexample变量:
三个属性段地址、偏移量、类型(BYTE,WORD,DWORD)标号:
三个属性段地址、偏移量、类型(FAR,NEAR),数据项操作数。
可以是常数、寄存器、存储器、变量、标号或表达式,标识符字母或特殊字符开始字母、数字及特殊字符构成长度31,4.2MASM中的表达式,表达式:
由运算符和操作对象组成运算符算术运算符逻辑运算符关系运算符数值返回运算符修改属性运算符其他运算符,MSAM中的运算符,数值返回运算符OFFSETOPRD返回OPRD的偏移量SEGOPRD返回OPRD的段基址TYPEOPRD返回OPRD的类型LENGTH变量返回变量的单元数SIZE变量返回变量的字节数SIZE=LENGTHTYPEM1DW100DUP(?
)MOVCX,SIZEM1,A1DB20H,ABA2DW1234HL1:
MOVAH,TYPEA1MOVAL,TYPEA2MOVBH,TYPEL1,A1DB100DUP(?
)A2DW1234H,0FHA3DBABCDL2:
MOVAH,LENGTHA1MOVAL,LENGTHA2MOVBH,LENGTHL1,L1:
MOVAH,1MOVAL,2MOVBH,0FFH,L1:
MOVAH,100MOVAL,1MOVBH,1,修改属性运算符,段操作符段前缀:
变量或地址表达式MOVAX,ES:
BXPTR类型/距离PTR变量或标号N1DB12H,34HFIND:
MOVAX,WORDPTRN1JMPFARPTRFINDTHIS变量/标号EQUTHIS类型/距离FIRSTEQUTHISBYTETABLEDW200DUP(?
),SHORTSHORT标号JMPSHORTL2HIGH,LOW-分离运算符HIGH/LOW变量或标号取高位或低位字节K1EQU1234HMOVAH,HIGHK1MOVAL,LOWK1AH=12H,AL=34H,SPEQUTHISFARMOVAX,100,其他运算符,圆括号()改变运算优先级方括号表示地址或多重变量的下标MOVAL,M13例419尖括号及圆点,结构中专用MASK,WIDTH纪录中专用,4.3伪指令语句,数据定义语句DB,DW,DD,DQ,DT符号定义语句EQU,=段定义语句SEGMENTENDS过程定义语句PROCENDP程序开始和结束指示语句NAME,ORG,END结构定义STRUCENDS外部伪指令(PUBLIC,EXTERN)、对准伪指令(EVEN)、标号伪指令(LABEL),数据定义语句,格式变量名助记符操作数,操作数;注释变量名助记符nDUP(操作数,操作数);注释,规则变量名为标识符,可以省略操作数:
常数、变量、标号、表达式,以逗号分隔。
DW定义字符串时,只能包括2个字符n为正整数,例:
PDATADW1,3,5STRINGDBOKDDATADD100DUP(?
),功能:
定义变量分配存储空间、赋值?
用于分配存储空间操作数为变量或标号时,DW保存它的偏移地址,DD保存它的偏移地址和段地址(例425),符号定义语句(表达式赋值语句),格式符号名EQU/=表达式功能定义符号,代表表达式规则表达式:
常数、变量、标号、指令语句、寄存器、表达式表达式中的变量、标号必须预先定义当采用EQU时,要重新定义须先使用PURGE清除PURGE符号名,例:
COUNTEQU10A1EQUBX+SIACEQUADDA2=COUNT+1B2=BX,段定义语句,段定义格式段名SEGMENT定位类型组合类型分类名逻辑段内容段名ENDS例功能定义一个逻辑段规则段名不可省略,SEGMENT与ENDS必须成对出现允许嵌套定义,但不能交叉定位类型组合类型分类名:
按次序排列,段分配格式:
ASSUMECS:
段名,DS:
段名,ES:
段名,SS:
段名规则:
通常CS和DS必需,有串操作时ES必需。
除CS外,其他段寄存器不能自动装入段基址。
过程定义语句,格式过程名PROC属性;过程内容RETN过程名ENDP功能定义一个过程规则至少有一个RETN表示过程返回后,堆栈中应有N个字节的内容作废不是必需的应为正偶数。
过程调用:
允许嵌套与递归调用,例428,程序开始和结束指示语句,END标号每个模块只有一个END,指示汇编程序停止汇编标号为程序中第一个可执行指令的标号。
存在多个模块时,标号为主模块的第一个可执行指令的标号。
CODESEGMENGORG100HASSUMECS:
CODE,DS:
DATASTA:
MOVAX,DATACODEENDSENDSTA,NAME程序名2)ORG表达式,指定下面语句的偏移地址,6.结构定义语句,3个步骤:
结构语句定义,结构付本预置,结构的使用,1、结构定义,结构名STRUC,(用DB,DW,DD等定义变量),结构名ENDS,变量类型:
简单变量,多重变量,字符串变量,多重变量,2、结构付本预置,结构付本名结构名,结构付本名结构名NDUP(),3、结构的使用,例:
MOVTWOT2,AX;把AX内容送到结构付本TWO,的变量T2中,7.外部伪指令及对准伪指令,外部伪指令PUBLIC名称,名称,.EXTRN名称:
类型,名称:
类型,例440,对准伪指令EVEN使下一语句的地址调整为偶地址,LABEL格式:
名称LABEL类型属性功能:
为LABEL语句下一语句的变量或标号取别名,重新定义其类型属性。
例:
443,4.4DOS系统功能调用与BIOS中断调用,DOS功能的调用方法软件中断,设置入口参数,常用的DOS功能退出程序INT20HJMP0系统功能调用INT21HAH=功能号入口、出口参数放在指定寄存器中,LEADX,STRINGMOVAH,9INT21H,常用的DOS系统功能,键盘功能键盘输入键盘状态清除键盘缓冲区,例2:
检测键盘输入,是ENTER则继续,否则就等待,WAIT:
MOVAH,1INT21HCMPAL,ODHJNEWAIT,例1:
根据用户输入的数字键,调用相应的子程序,KEY:
MOVAH,1INT21HCMPAL,1JEONECMPAL,2JETWOJMPKEYONE:
TWO:
显示输出单字符显示AH=2,DL=显示字符AH=6,DL=显示字符字符串显示:
AH=9字符串首地址:
DS:
DX结束符:
$换行:
0DH,0AH,$例451,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
下载 | 加入VIP,免费下载 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课件 第讲宏 汇编语言 程序设计
