电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

28页
  • 卖家[上传人]:F****n
  • 文档编号:88292758
  • 上传时间:2019-04-23
  • 文档格式:PPT
  • 文档大小:328.50KB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第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。,一个汇编语言程序通常包含两种语句:,指令性语句是计算机可执行的; 指示性语句不能执行,用来定义变量,分配存储单元,指示程序开始和结束等。,两种语句的差别: 形式上:带不带冒号,是否可转向它。 本质

      2、上:汇编时能否形成对应的机器码。,指令性语句 格式: 标号: 指令助记符 操作数 ;注释 指示性语句(伪指令) 格式: 名字 指示助记符 操作数 ;注释,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只允许定义一次。,二、变量定义语句,变量是内存中

      3、数据区的名字,故这类伪指令又可叫数据定义伪指令。格式: 符号名 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,注意: 这两个语句总是成对出现,二者前面的段名一致。 二者之间的删节部分: 对数据段、附加段及堆栈段,一般是符号、变量定义等

      4、伪指令。 对于代码段则是指令及伪指令。,因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 表达式通常就是程序

      5、第一条指令的标号。,伪指令介绍到此结束。 说明:如下内容不作要求 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

      6、 8086汇编语言中的运算符,一、表达式,表达式是常量、寄存器、标号、变量与运算符构成的,分数字表达式和地址表达式两种。 汇编时对表达式进行计算后,可得到一个数值或一个地址。,二、常量、变量、标号, 字符串常量 用引号引起来的字符。 例:A,BCDE,汇编时被翻译成对应的ASCII码41H、42H、43H、44H、45H。,常量, 数字常量 二进制常量,以B结尾 十进制常量,以D结尾(或省略,汇编语言中默认) 十六进制常量,以H结尾,变量是指存放在存储单元中的数据,可被程序改变。对变量的访问是通过变量名来实现的。因此,变量名被认为是变量的符号地址。,变量,变量有三种属性: 段 值变量定义所在段的段地址。 偏移量变量单元地址与段起始地址之间的位移量。 类 型有字节、字和双字三种。,标号,标号是指令存放单元的符号地址,可作为转移指令或CALL指令的转移地址。,标号也有三种属性: 段值总是在CS段寄存器中, 偏移量概念与变量同, 类型分NEAR和FAR两种。 NEAR:标号所在语句与转移指令或调用指令在同一码段内, 只需改变IP即可。 FAR: 标号所在语句与转移指令或调用指令不在同一码段内

      7、。 若没有对类型进行说明,默认为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

      8、 用来对存储单元规定类型,通常与伪指令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 C

      9、MP 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分享,可在线阅读,更多相关《汇编语言程序设计(1)汇编语言的语句伪指令运算符dos功能调用课件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.