微机原理与接口技术课件第四章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机原理与接口技术1第四章汇编语言程序设计微机原理与接口技术2主要内容几个易混淆的概念汇编语言程序的组成元素MASM中的表达式常用伪指令功能调用汇编语言程序设计微机原理与接口技术3几个概念汇编语言汇编语言源程序汇编汇编程序微机原理与接口技术44.1汇编语言源程序的组成要素1、汇编语言语句类型指令性语句指示性语句CPU执行的语句,能够生成目标代码,核心是指令系统中的指令。CPU不执行,而由汇编程序执行的语句,不生成目标代码,核心是伪指令。微机原理与接口技术5指令性语句:[标号:][前缀]助记符[操作数],[操作数][;注释]指令的符号地址,标号后要有冒号操作码注释前加分号微机原理与接口技术6指示性语句[名字]伪指令助记符操作数[,操作数,…][;注释]变量的符号地址,其后不加冒号指示性语句中至少有一个操作数微机原理与接口技术7标号、名字标号后有冒号,在指令性语句前;名字后不加冒号,在指示性语句前。英文字母、数字及专用字符组成,最大长度不能超过31个,且不能由数字打头,不能用保留字(如寄存器名,指令助记符,伪指令)。微机原理与接口技术82、汇编语言中的数据项※常数--确定的数据,无属性;※变量--存放在存储单元中的值。有段值、偏移地址和类型三个属性;※标号--可执行指令语句的地址的符号表示。有段值、偏移地址和类型(近、远)三个属性。微机原理与接口技术94.2MASM中的表达式汇编程序可以识别的能够在指令和为指令中出现的运算对象及运算符。微机原理与接口技术101、算术运算和逻辑运算符算术运算符+,-,*,/,MOD逻辑运算符AND,OR,NOT,XOR例:MOVAL,8AND4MOVAL,8+4-1微机原理与接口技术112、关系运算符参与关系运算的必须是两个数值;关系不成立,结果为0;关系成立,结果为FFFFH。EQNELTGTLEGE微机原理与接口技术123、数值返回运算符取值运算符用于分析存储器操作数的属性OFFSET取得其后变量或标号的偏移地址SEG取得其后变量或标号的段地址TYPE取变量的类型LENGTH取所定义的变量的长度SIZE取所定义存储区的字节数微机原理与接口技术13取值运算符例MOVAX,SEGDATAMOVDS,AXMOVBX,OFFSETDATALEABX,DATA等价于微机原理与接口技术14取值运算符例若BUFFER存储区是用如下伪指令定义:BUFFERDW200DUP(0)则:TYPEBUFFER等于2LENGTHBUFFER等于200SIZEBUFFER等于400微机原理与接口技术154、属性运算符属性运算符PTR用于指定其后存储器操作数的类型例:MOVBYTEPTR[BX],12H微机原理与接口技术165、其它运算符(),[]等6、运算符的优先级次序微机原理与接口技术174.3常用伪指令由汇编程序执行的“指令系统”用于定义变量、分配存储区、定义逻辑段、指示程序开始和结束等。微机原理与接口技术18常用伪指令数据定义伪指令符号定义伪指令段定义伪指令过程定义伪指令结束伪指令微机原理与接口技术191、数据定义伪指令用于定义数据区中变量的类型格式:变量名伪指令助记符操作数,…;注释某些情况下可省略可选微机原理与接口技术20数据定义伪指令助记符DB定义的变量为字节型DW定义的变量为字类型(双字节)DD定义的变量为双字型(4字节)DQ定义的变量为4字型(8字节)DT定义的变量为10字节型微机原理与接口技术21数据定义伪指令例DATA1DB11H,22H,33H,44HDATA2DW11H,22H,3344HDATA3DD11H*2,22H,33445566H以上变量在内存中的存放形式微机原理与接口技术22伪指令的性质决定所定义变量的属性;定义字符串必须用DB伪指令例:DATA1DB‘ABCD’,66H‘A’‘B’‘C’‘D’41H42H43H44H66H微机原理与接口技术23重复操作符为一个数据区的各单元设置相同的初值格式:[变量名]伪指令助记符nDUP(初值,…)例:DW20DUP(0)DB3DUP(22H,11H,?)随机数微机原理与接口技术24用?预留存储空间MEM1DB34H,’A’,?,?,?DW20DUP(?)预留40个字节单元微机原理与接口技术252、符号定义伪指令格式:符号名EQU表达式操作:用符号名取代后边的表达式,不可重新定义例:CONSTANTEQU100VAREQU30H+99HEQU说明的表达式不占用内存空间微机原理与接口技术263、段定义伪指令※段定义语句格式:段名SEGMENT[定位类型][组合类型][‘类别’]……段名ENDS只需要掌握段名SEGMENT……段名ENDS微机原理与接口技术27段定义伪指令例DATASEGMENTMEM1DB11H,22HDATAENDS微机原理与接口技术28※段分配语句:格式:ASSUME段寄存器名:段名[,段寄存器名:段名,…]4、结束伪指令格式:END[标号]微机原理与接口技术295、过程定义伪指令用于定义一个过程体格式:过程名PROC[NEAR/FAR]┇RET过程名ENDP过程入口的符号地址微机原理与接口技术306、其它伪指令ORG-------段内程序代码或变量的起始偏移地址格式:ORG表达式例:ORG2000H计算值为非负常数微机原理与接口技术314.4功能调用DOS功能调用高级调用,操作系统提供BIOS功能调用低级调用微机原理与接口技术32DOS系统功能调用包含多个子功能的功能包,用软中断指令调用,中断类型码固定为21H;各子功能采用功能号来区分。微机原理与接口技术33DOS系统功能调用主要功能设备管理目录管理文件管理其它微机原理与接口技术34DOS系统功能调用步骤(1)MOVAH,功能号(2)置相应参数(3)INT21H微机原理与接口技术351.从键盘输入单字符并显示调用方法:MOVAH,01INT21H输入的字符在AL中微机原理与接口技术36单字符输入例GET_KEY:MOVAH,1INT21HCMPAL,’Y’JZYESCMPAL,’N’JZNOJNZGET_KEYYES:┇NO:┇交互式应答程序微机原理与接口技术372.从键盘输入字符串AH功能号OAHDS:DX字符串在内存中的存放地址INT21H微机原理与接口技术38定义字符缓冲区用户自定义缓冲区格式:0DHN1N2整个缓冲区最大键入字符数实际键入字符数微机原理与接口技术39输入字符串程序段DAT1DB20,?,20DUP(?)LEADX,DAT1MOVAH,0AHINT21H在数据段中定义微机原理与接口技术40输入缓冲区14H?20个字节定义后的输入缓冲区初始状态:微机原理与接口技术413.单字符显示输出AH功能号O2HDL待输出字符INT21H微机原理与接口技术42单字符显示输出例MOVAH,02MOVDL,41HINT21H执行结果:屏幕显示A微机原理与接口技术434.字符串输出显示AH功能号O9HDS:DX待输出字符串的偏移地址INT21H微机原理与接口技术44字符串输出显示被显示的字符串必须以‘$’结束,且所显示的内容不应出现非可见的ASCII码微机原理与接口技术45字符串输出显示例DATASEGMENTMESS1DB‘InputString:’0DH,0AH,’$’DATAENDSCODESEGMENT┇MOVAH,09MOVDX,OFFSETMESS1INT21H┇微机原理与接口技术464.5汇编语言程序设计设计步骤:根据实际问题抽象出数学模型确定算法画程序流程图分配内存工作单元和寄存器程序编码调试微机原理与接口技术47在计算机上进行程序设计过程D:\masmEDIT输入源程序D:\masmMASM汇编D:\masmLINK链接D:\masmTD调试

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功