程序设计(12-13).ppt_第1页
程序设计(12-13).ppt_第2页
程序设计(12-13).ppt_第3页
程序设计(12-13).ppt_第4页
程序设计(12-13).ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.3.2.4进程定义了伪指令proc和ENDP,这个进程是一个子程序。一个进程可以被其他程序调用(用call指令),并且进程的最后一条指令通常是返回指令(RET)。程序定义指令的格式是PROC类型RET ENDP。注意:proc和ENDP必须成对出现。有两种类型的过程:NEAR(默认类型)表示段内调用FAR表示段间调用CALL格式的过程,3,示例1:子程序,其中二进制数(0-F)被转换为ASCII(0-F)。Bin2asc在CMP al附近进行,9jaa2f add al,30h jmpdone a2f : add al,37hdone 3360 ret bin2asc endp调用方法:(

2、在主程序中)MOV al,0CHcall bin2asc(在AL中有0ch ASCII码43h,c),4,3.2.5宏定义伪指令。如果您需要多次使用同一个程序段,您可以将该程序段定义为“宏指令”,然后在必要时用宏指令名替换该程序段。指令的格式是:宏定义和宏调用两个数之和:宏参数表ENDM,5,示例:宏被定义为DADD MACRO X,Y,Z MOV AX,X ADD AX,Y MOV Z,axendm,其中X,Y和Z是形式参数。宏DADD可以写成:DADD DATA1、DATA2、SUM DATA1、DATA2,SUM是实际参数,它取代了定义中的x、y和z。宏调用和过程(子程序)调用被定义一次

3、并被多次调用。两者的区别在于:执行形式:宏命令伪指令由宏汇编程序在汇编过程中处理,而调用和可执行指令由中央处理器执行。汇编结果:宏命令的伪指令被汇编和扩展。执行速度:宏命令执行速度更快(因为没有调用转移)并且占用内存:宏命令简化了源程序,但不能简化目标程序,并且不节省内存单元。使用该过程可以节省代码占用的内存空间。7。宏扩展:汇编程序将根据宏定义扩展宏调用。例如,宏定义为:显示宏字符串LEA DX,字符串MOV AH,9 INT 21H ENDM程序中的宏调用:displayERROR _ MESSAGE Display Exit _ MESSAGE汇编结果:(带有数字的指令是宏扩展结果)LE

4、A DX,ERROR_MESSAGE MOV AH,9 INT 21H LEA DX,Exit _ messagemoah,9 INT 21H,8,3.2.6汇编结束伪指令结束,汇编结束伪指令结束应添加在汇编语言源程序的末尾,使汇编程序结束汇编。格式:END表达式后跟END的表达式通常是程序第一条指令的标签,表示程序的起始地址(要执行的第一条指令的地址)。9,3.3 DOS系统函数调用简介,系统函数调用是由操作系统提供的一组实现特殊功能的子程序,供程序员在程序中调用,以减少编程工作量。系统函数调用有两种,一种叫做DOS函数调用,另一种叫做BIOS函数调用。当调用这些系统服务程序时,用户程序使用

5、软中断指令INT n代替call命令。在DOS系统中,所有的函数调用都是由软中断指令INT 21H实现的。10、INT 2lH功能大致可以分为四个方面:设备管理、目录管理、文件管理等。D0S系统函数调用的一般使用方法如下:AH函数号;设置该功能所需的其他入口参数;执行INT 21H指令;以下描述了INT 21H最常用的一些函数。11,1。DOS键盘功能调用,(1)从键盘输入一个字符(功能号=1) MOV AH,1 INT 21H。注意:入口参数是不需要的,出口参数在al中。12岁前男友。有时,用户需要响应程序中的提示。MOV AH,1;等待输入字符INT 21H结果化学机械抛光铝,钇铝;是y吗

6、?JZ:是的;是的,转到是化学机械抛光铝,氮;n是吗?JZ:不;是的,去JMP拿钥匙;否则,继续等待输入字符串(功能号=0AH)。这个函数调用从键盘输入字符串,并将其存储在用户指定的缓冲区中。MOV AH,0AH LEA DX,INT 21H注意:在使用输入字符串调用系统函数之前(函数号=0AH),字符串存储缓冲区必须以下列格式定义。缓冲数据库?DUP北部(?),14,示例:数据段中定义的键盘缓冲区如下:10 DUP(?调用DOS函数0AH函数的程序段有:LEA DX,STR1 MOV AH,0AH INT 21H。该程序段从键盘接收多达10个键(包括enter)。15,2。DOS显示函数调用

7、,(1)在显示器上显示一个字符(函数号=2) MOV AH,2 MOV DL,int 21h。例如:在显示器上显示一个字符MOV AH,2movdl,int 21h,16,movah,9leadx,INT 21H。注意:使用显示字符串(功能号=9)缓冲数据库字符串,$,(2)显示字符串(功能号=9),17,例如屏幕上显示的:你好,世界!定义数据段中的字符串:数据段STR1数据库你好,世界!$ DATA ENDS在代码段中显示并输出MOV AH,9 LEA DX,STR1 INT 21H。完整的程序:18,汇编语言:你好的一个例子。ASM数据段你好数据库你好,世界!$ data ENDS pro

8、g SEGMENT假定CS:prog,DS:data start: MOV AX,data MOV DS,AX LEA DX,您好;取字符串MOV的第一个地址,9 INT 21H显示字符串MOV AH,4CH INT 21H返回操作系统程序结束结束开始,19,3返回操作系统函数调用,调用方法:MOV AH,4CH INT 21H,20,3.4汇编语言编程基础,3.4.1概述1。汇编语言编程步骤:1-根据实际问题抽象数学模型,确定算法2-绘制程序框图(流程图)3-分配内存工作单元和寄存器4-根据框图编写源程序并保存为。汇编源程序并生成。OBJ对象文件6-连接。obj文件到。执行文件7-运行和调试

9、2。源程序的基本结构:顺序、分支、循环、进程、21、参考号、处理、3.4.2顺序程序3.4.3分支程序、N、Y、IFTHEN结构、程序结构:TEST/CMP条件转移指令(Jx标签)处理器标签:其他指令、22、程序结构:TEST/CMP指令Jx、处理P1、处理P2、1:23360、条件1、条件2、IFTHENELSE结构、23、1:P1,N,Y,案例结构,程序结构:测试/化学机械抛光指令(测试条件1) Jx标签1;处理器P1 JMP标签n 1标签1:测试/化学机械抛光指令(测试条件2) Jx标签2不符合索引1;处理P2 JMP标签n 1标签2:不符合指标2的测试/化学机械抛光说明(测试条件3)

10、Jx标签3;不符合索引3处理器P3 JMP索引n 1索引3:测试/化学机械抛光指令(测试条件4)索引n 1:(通用退出),条件2成立?条件n成立?Pn 1,2:n:N 1:P2,Pn,N,N,Y,Y,示例:统计结果。24,3.4.4循环程序,首先执行1计数结构,然后判断条件。工作部分应至少执行一次。初始化,循环体,循环控制,继续循环?Y,N,25,2。结构在执行前判断条件。工作部分可能不会执行一次。初始化,循环体,循环控制,继续循环?练习1。是非问题1汇编语言编程语言必须由四部分组成。汇编语言源程序中使用的变量必须先定义,然后在代码段中引用。在汇编语言中,一般的伪指令语句放在代码段中。逻辑运算

11、符“与”、“或”、“异或”或“非”只能用于数字表达式。27,5赋值伪指令定义符号不占用存储单元,而数据定义伪指令定义变量占用存储单元。汇编语言源程序中至少有一个代码段。第二,计算机系统软件中的单项选择题1汇编程序是一种()。a)汇编语言程序b)编辑程序c)翻译程序d)将高级语言转换成汇编程序的程序,28.2如果汇编源程序中的数据段被命名为DATA,则数据段寄存器DS的初始化操作应为()。(甲)MOV斧头,数据(乙)MOV斧头,数据移动,MOV斧头,斧头(丙)推DS(丁)MOV DS,数据3。EXE文件是在()之后生成的。(a)汇编,(b)编辑,(c)用软件转换,以及(d)连接4以将双字变量的定

12、义定义为()。(甲)DW(乙)DQ(丙)DD(丁)DT,29,5执行以下指令:)cont qu $-strmov CX、contmovax和str1hlt之后的寄存器CL的值为()。(甲)0FH(乙)0EH(丙)12H(丁)10H,30,三个程序段VA1DB?VAR2 DW 20 DUP(58H,2 DUP(?)VAR3 DB ABCD MOV AX型,VAR1 MOV BX型,VAR2 MOV CX型,VAR2 MOV DX型,VAR2 MOV SI型,VAR3 AX=()、BX=()、CX=()、DX=()、SI=().31,4。填空1。定义伪指令语句,以()语句开始,以()语句结束。过程定义伪指令语句以()语句开始,以()语句结束。宏定义伪指令语句以()语句开始,以()语句结束。2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论