电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

汇编语言程序设计(1)汇编语言的语句伪指令运算符dos功能调用课件

  • 资源ID:88292758       资源大小:328.50KB        全文页数:28页
  • 资源格式: PPT        下载积分:25金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要25金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

汇编语言程序设计(1)汇编语言的语句伪指令运算符dos功能调用课件

第4章 8086汇编语言程序设计,4-1 8086汇编语言的语句 4-2 8086汇编语言中的伪指令 4-3 8086汇编语言中的运算符 4-4 DOS功能调用,汇编语言程序上机调试过程概述,汇编语言程序:用汇编语言编写的、完成特定功能的指令序列。,汇编程序:把汇编语言编写的源程序翻译成机器码表示的目标程序的程序。,汇编语言程序到机器语言程序的转换过程称为汇编。 手工汇编:人工查指令表汇编。 机器汇编:用汇编程序进行汇编。,汇编语言程序上机调试过程:,在编辑程序(EDIT)的支持下,从键盘输入。,用汇编程序(MASM或ASM)进行汇编,完成语法检查和翻译。若语法无错,生成目的码文件(.OBJ),用连接程序(LINK)连接,若无错,生成可执行文件(.EXE),用调试程序(DEBUG)调试源程序,直至得到正确结果,注意:上机调试程序,必须具备四个工具: EDIT、MASM、LINK、DEBUG。,一个汇编语言程序通常包含两种语句:,指令性语句是计算机可执行的; 指示性语句不能执行,用来定义变量,分配存储单元,指示程序开始和结束等。,两种语句的差别: 形式上:带不带冒号,是否可转向它。 本质上:汇编时能否形成对应的机器码。,指令性语句 格式: 标号: 指令助记符 操作数 ;注释 指示性语句(伪指令) 格式: 名字 指示助记符 操作数 ;注释,4-1 8086汇编语言的语句,注释为便于阅读程序而引入,不产生任何机器动作,往往可有可无,但注释前必须加分号(;)。,标号与一条指令的符号地址名相联系,可作为JMP和 CALL指令的目标操作数。,名字与指令的地址毫无关系,决不能转向它。,指令助记符规定了语句的操作功能,对应着8086指令系 统中的各种指令。,指示助记符规定语句的伪操作功能,即MASM86的各种伪指令。,操作数规定的是操作对象,由寄存器、存储单元、数据项或其表达式构成。,4-2 8086汇编语言中的伪指令,一、符号定义语句,例:CONSTANT EQU 100 NEW_PORT EQU PORT_VAL+1,等值语句EQU 格式:符号名 EQU 表达式 或:新符号名 EQU 老符号名,等号语句= 与EQU类似,但允许重新定义,例:EMP=7 ;值为7 EMP=EMP+1 ;值为8,注意:在同一源程序中,一个符号名用EQU只允许定义一次。,二、变量定义语句,变量是内存中数据区的名字,故这类伪指令又可叫数据定义伪指令。格式: 符号名 DB/DW/DD 表达式 其中被定义符号名就称为一个变量。 注意:符号名后面不能跟冒号(:)。,伪指令助记符: DB 用来定义字节 DW 用来定义字 DD 用来定义双字,例1:DATA_BYTE DB 10,5,10H DATA_WORD DW 100H,100,-4 DATA_DW DD 2*30,0FFFBH,例2:表达式可以是字符串 MASTERLI DB HELLO 汇编后如下:,操作数?号用来保留存储空间,但不存入数据。 例3:ABC DB 0,1,?,?,? LPI DW ?,54,? 汇编后如下图示:,操作数字段还可以用复制操作符DUP来缩写。 如上面ABC亦可写成: ABC DB 0,1,3 DUP(?),又如: DO-2 DB 2 DUP(0,1,2,?) 与 DO-2 DB 0,1,2,?,0,1,2,?等价,三、段定义语句,段定义语句格式: 段名 SEGMENT 段名 ENDS,注意: 这两个语句总是成对出现,二者前面的段名一致。 二者之间的删节部分: 对数据段、附加段及堆栈段,一般是符号、变量定义等伪指令。 对于代码段则是指令及伪指令。,因8086存储器是分段的,这就需要有段定义语句。与段有关的语句有:SEGMENT、ENDS、ASSUME、ORG,此外,还必须明确段和段寄存器的关系,这可由段假设语句ASSUME来实现。 格式:ASSUME 段寄存器名:段名, 其中:段寄存器名必须是CS、DS、ES或SS中的一个, 段名则是由SEGMENT及ENDS定义的段名。,注意:ASSUME只是告知汇编程序有关段寄存器与段的关系,并没有给段寄存器赋予实际的初值。,ORG规定了段内的起始地址或偏移地址。 格式: ORG 表达式的值即为段内的起始地址或偏移地址,从此地址起连续存放程序或数据。,四、过程定义语句,在MASM中,过程含义和子程序一样,一个过程可被其它程序调用,过程返回用RET指令。,格式:过程名 PROC NEAR或FAR RET 过程名 ENDP,属性:NEAR(不标为默认)在段内被调用; FAR可以被段外调用。,过程调用语句格式:CALL 过程名,五、源程序结束伪指令END,当汇编程序对源程序进行汇编过程中,如遇到END,得知源程序到此结束。,格式: END 表达式通常就是程序第一条指令的标号。,伪指令介绍到此结束。 说明:如下内容不作要求 SEGMENT伪指令中的有关定位类型、组合类型、类别 PUBLIC和EXTRN伪指令,一个源程序通常由若干个段组成,每个段均以SEGMENT开始,以ENDS结束。 每个段包含若干语句,分指令语句与伪指令语句两种。 每条语句可由标识符、保留字、表达式等元素组成。,例:下为实现B2-4AC,并将结果送内存单元D的一个源程序实例。,DATA SEGMENT A DB 9 B DB 5 C DB 4 D DB ? DATA ENDS STACK SEGMENT DB 20H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA START: MOV AX,DATA MOV DS,AX,MOV AL,A IMUL C MOV CL,2 SAL AX,CL MOV BX,AX MOV AL,B IMUL AL SUB AX,BX MOV D,AX MOV AH,4CH INT 21H CODE ENDS END START,汇编语言子程序设计的一个实例:,4-3 8086汇编语言中的运算符,一、表达式,表达式是常量、寄存器、标号、变量与运算符构成的,分数字表达式和地址表达式两种。 汇编时对表达式进行计算后,可得到一个数值或一个地址。,二、常量、变量、标号, 字符串常量 用引号引起来的字符。 例:A,BCDE,汇编时被翻译成对应的ASCII码41H、42H、43H、44H、45H。,常量, 数字常量 二进制常量,以B结尾 十进制常量,以D结尾(或省略,汇编语言中默认) 十六进制常量,以H结尾,变量是指存放在存储单元中的数据,可被程序改变。对变量的访问是通过变量名来实现的。因此,变量名被认为是变量的符号地址。,变量,变量有三种属性: 段 值变量定义所在段的段地址。 偏移量变量单元地址与段起始地址之间的位移量。 类 型有字节、字和双字三种。,标号,标号是指令存放单元的符号地址,可作为转移指令或CALL指令的转移地址。,标号也有三种属性: 段值总是在CS段寄存器中, 偏移量概念与变量同, 类型分NEAR和FAR两种。 NEAR:标号所在语句与转移指令或调用指令在同一码段内, 只需改变IP即可。 FAR: 标号所在语句与转移指令或调用指令不在同一码段内。 若没有对类型进行说明,默认为NEAR。,三、运算符,例1:19/7的商是2,19 MOD 7则为5(余数),算术运算符 +、-、*、/、MOD,其中MOD表示除法运算后得到的余数。,例3:算术运算符也可以用于地址表达式。 LEA SI,SUM+3 表示变量SUM的地址加上3得到的和作为新存储器地址。,例2:算术运算符可以用于数字表达式。 MOV AL,2*7 汇编后为B0,0E,逻辑运算符(不作要求) AND、OR、XOR、NOT,只能用于数字表达式中。,关系运算符(不作要求) EQ(相等)、NE(不等)、LT(小于)、GT(大于)、 LE(小于或等于)、GE(大于或等于),例1: MOV AX,SEG STRI1 MOV DS,AX 将变量STRI1所在段值取到DS中,例2: MOV SI,OFFSET STRI1 代表将变量STRI1处的地址偏移量取到SI中. 注意:它与 LEA SI,STRI1类似。,分析操作符 SEG,OFFSET,TYPE,SIZE、LENGTH。可以把存储器一些特征作为数值送回。,TYPE,SIZE、LENGTH (不作要求).,#3,类型操作符PTR 用来对存储单元规定类型,通常与伪指令BYTE,WORD等连起来使用。,例5: MOV BYTE PTR DI,0 MOV WORD PTRDI,0 而 MOV DI,0 ;类型不定,THIS操作符(不作要求),4-4 DOS功能调用(见P123),PCDOS是IBM PC机的磁盘操作系统。 PCDOS不仅提供了许多命令让用户直接使用,而且还提供了一批子程序供用户直接调用。其中主要包括一些基本输入输出子程序(简称BIOS,被固化在ROM芯片中)。,DOS系统功能调用方法: 在AH中放功能调用号; 视调用功能的规定设置入口参数; 用INT 21H转入子程序入口; 按规定取得出口参数。,关于数据输入和输出,在此只讨论键盘输入和显示输出,调用系统功能需要提供入口参数及所调用的功能号,调用结束返回结果。,一、DOS键盘功能调用,功能调用号:AH=01H 返回参数: AL=输入字符(ASC码),单字符输入,例:在交互式程序中需用户对一个提示做出应答。 GET_KEY:MOV AH,01H ;等待键入字符 INT 21H ;结果在AL中 CMP AL,Y ;是Y? JZ YES ;是,转YES CMP AL,N ;是N? JZ NO ;是,转NO JNZ GET_KEY ;其它键返回,继续 ;等待输入 YES: NO: ,此功能调用能从键盘输入一串字符并把它存入用户定义的缓冲区。 功能调用号: AH=0AH 入口参数: DS:DX=输入字符串在内存中的首地址,多字符输入,若用户键入的字符数(包括回车符)大于定义的N1,机器铃响,且光标不再向右移动。N2由中断调用程序自动填入。 例:设在数据段定义: STR1 DB 10,?,10 DUP(?) 调用DOS功能的0AH号功能的程序段: LEA DX,STR1 MOV AH,0AH INT 21H,二、DOS显示功能调用,例: MOV AH,02H MOV DL,41H INT 21H ;屏幕显示A,单字符输出(在屏幕上显示一个字符),功能调用号: AH=02H 入口参数: DL=字符(用ASCII码表示),例:显示输入字符串。 DATA SEGMENT MESS1 DB Input String: 0DH,0AH, $ DATA ENDS 在码段中再输出 MOV AH,09H MOV DX,OFFSET MESS1 INT 21H ;屏幕显示Input String: ,被显示的字符串必须以$结束,且所显示的内容不应出现非可见的ASCII码,否则产生不可预料的结果。,多字符输出(多个字符输出到屏幕上显示),功能调用号: AH=09H 入口参数: DS:DX=字符串地址,回车,换行,说明:DOS功能调用只要求掌握01H、02H、09H、0AH号的调用。其它调用不作要求。,第4章作业:1、2,

注意事项

本文(汇编语言程序设计(1)汇编语言的语句伪指令运算符dos功能调用课件)为本站会员(F****n)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.