微机电子教程 第四章汇编程序设计.pptVIP

  • 2
  • 0
  • 约1.86万字
  • 约 78页
  • 2023-06-25 发布于广东
  • 举报
微机电子教程 第四章汇编程序设计; ②这样的程序占用内存空间少、执行速度快。;上机环境; 汇编语言上机过程 D:EDIT ABC.asm D:MASM ABC; 有语法错,回EDIT下改该程序 D:LINK ABC; 有错,回在EDIT下改程序 D:ABC 运行结果错,回EDIT下改程序 或在DEBUG下调试,找原因。 D:DEBUG ABC.exe ;4.2 汇编语言的程序结构与语句格式; 8086/8088/80286只允许同时使用4种类型的段:代码段(CS)、堆栈段(SS)、数据段(DS)和附加段(ES)。 80386/80486和Pentium系列允许同时使用6种段,除以上4种段外,还可有FS和GS两个附加数据段。 在8086/8088和实地址方式下,每个段的最大长度均为64KB;而在保护方式下,80286允许每个段的最大长度为16MB,80386/80486和Pentium系列允许4GB。 在一个源程序中每种类型的段又可存在若干个,如几个数据段 ;二、源程序与PC DOS的接口 汇编语言源程序经过汇编转变为目标程序,当用链接程序对 其作进行链接和定位时,操作系统完成: ;保证用户程序执行完后返回DOS: 第一种方法:标准序法: ①将用户程序中的主程序定义为FAR过程,其最后一条指令为RET; 当程序执行到RET时,会将栈顶的两个字分别送IP、CS。 ②在主程序的开始处将PSP所在段的段地址DS(或ES)保存进栈, 然后再将一个全0的字(PSP的段内偏移地址)压入堆栈。这就是 程序结构中的以下三条指令: PUSH DS ;保护PSP段地址 MOV AX,0 ;保护偏移0地址 PUSH AX 当用户程序返回时,会返回到DOS,执行INT 21H 注:由于DS、ES由DOS已设置,所以在用户程序的开始处应重新设置 DS、ES。;4、2、2 汇编语言的语句;⑶ 宏指令语句: 是以某个宏名字定义的一段指令序列。汇编时,凡有宏指令语句的地方都将用相应的指令序列的目标代码插入。宏指令语句是一般性指令语句的扩展。; 以字母开头,由字母(A~Z或a~z,汇编程序不区分大小写)、数字(0~9)及部分特殊字符(?、@、$和下划线_等)组成的字符串表示,字符串长度不能超过31个。 标识符不能是汇编语言中有特定意义的保留字,如:CPU的内部寄存器名AH、AL、AX等。;二、语句中的操作数;在数???段或堆栈段中,是存放数据的存放单元的符号地址, 与各种寻址方式有关(存贮器操作数寻址方式);4、表达式操作数 表达式由各种操作数、运算符和操作符组成。 (1)汇编语言中表达式有两类 数值表达式:由数值常量、字符串常量或符号常量等与算术、逻 辑或关系运算符连接而成。在汇编时产生一个数值。 地址表达式:由常量、变量、标号、寄存器(如BX、BP、SI、DI) 的内容以及一些运算符组成。其值表示存储器地址, 一般都是段内的偏移地址,因此它也具有段属性、 偏移量属性和类型属性。如ES:[SI+4];①算术运算符 算术运算符有+、-、×、/和MOD等。它们都可用于数值表达式,运算结果是一个数值。 在地址表达式中,对标号或变量只可以使用加、减运算符。经常使用的是“标号或变量±常量”这种形式。且运算后仍为标号或变量,其类型及段基址属性不变,仅修改了偏移量属性。如,PLACE+2×3是指PLACE字节单元后的第6个存储单元的地址。若PLACE与某存贮单元地址相关,则PLACE+2×3仍与某存贮单元相关。 ;作为指令助记符时,则是在程序运行中执行的,操作对象还可以是寄存器或存储器操作数。 例:AND DX ,PORT AND 0FEH ; ; 4.3 汇编语言的伪指令语句; 2. 符号语句= 格式:符号名 = 表达式 功能与EQU类似, 但可重新定义。 例:EMP=60 EMP=EMP+1 EMP=123X4 ; 经过定义的变量有3个属性:TYPE,SEGMENT,OFFSET 若某个变量表示的是一个数组,则其类型属性为变量的单个元素 所占用的字节数。;;(2)预留内存单元,但不赋值,以存放运算结果 例: A DB ?

文档评论(0)

1亿VIP精品文档

相关文档