汇编语言程序设计入门.pptVIP

  • 9
  • 0
  • 约9.74千字
  • 约 140页
  • 2017-04-22 发布于湖北
  • 举报
汇编语言程序设计入门

3.1 汇编语言概述 3.2 汇编语言程序结构与语句格式 3.3 伪指令语句 3.4 汇编语言程序设计基础 3.5 模块化程序设计技术;3.1 汇编语言概述;3.2 汇编语言程序结构与语句格式;;3.2.1 源程序结构;3.2.1 源程序结构; [.486] DATA SEGMENT [USE16/USE32] ;定义数据段 …… (数据定义伪指令序列) DATA ENDS STACK SEGMENT [USE16/USE32]STACK ;定义堆栈段 …… (数据定义伪指令序列) STACK ENDS CODE SEGMENT [USE16/USE32] ;定义代码段 ASSUME CS:CODE,SS:STACK,DS:DATA,ES:DATA ;段寄存器说明 START: MOV AX,DATA ;建立数据段和附加数据段的可寻址性 MOV DS,AX ;置DS和ES初值 MOV ES,AX …… (核心程序段) MOV AH,4CH ;返回操作系统 INT 21H CODE ENDS END START ;程序结束;由该标准源程序框架可看出:; 2.必须用段寄存器说明伪指令ASSUME说明各段寄存器与逻辑段的关系; 3.定义的数据段寄存器均要在程序代码段的起始处赋初值,以建立这些逻辑段的可寻址性; 4.每个源程序在其代码段中都必须含有返回到DOS操作系统的指令语句。 ;采用DOS 4CH号功能调用 将主程序定义为远过程 利用20号软中断调用 利用DOS的0号功能调用 ;1)采用DOS 4CH号功能调用;;CODE SEGMENT… ASSUME… 主过程名 PROC FAR PUSH DS MOV AX,0 PUSH AX RET …… 主过程名 ENDP …… END 主过程名;3)利用20号软中断调用 ;4)利用DOS的0号功能调用;3.2.2 语句格式;3.2.2 语句格式;字母A~Z或a~z(汇编程序不区分大、小写);;2.助记符和定义符;1)常量操作数:二、八、十或十六进制的整型常数、十六进制实数、字符串(必须用单引号括起来,其值为字符的ASCII码值)、已赋值的常数标识符、寄存器名和I/O端口地址等。; 段值--段基址,可用SEG运算符求得。 偏移值--段内偏移地址,可用OFFSET运算符求得。 类型--对变量有字节、字、双字、四字、十字节等五种类 型;对标号有NEAR和FAR两种类型。可用TYPE运算 符求得。; 它由各种操作数、界限符和运算符组成;汇编时,每个表达式都能产生一个确定的值。 MASM汇编程序支持的运算符表见教材。;1 LENGTH,SIZE,WIDTH,MASK,( ),[ ], 2 PTR,OFFSET,SEG,TYPE,THIS 3 HIGH,LOW 4 +,-(单目) 5 *,/,MOD,SHL,SHR 6 +,-(双目) 7 EQ,NE,LT,LE,GT,GE 8 NOT 9 AND 10 OR,XOR 11 SHORT; 注释部分以分号“;”开始,其作用与注 释语句相同,用于对语句的功能加以说明, 增加程序的可读性,本身不被汇编程序汇编 也不被执行。;3.3 伪指令语句;3.3.1 程序结构伪指令语句; 3.3.1 程序结构伪指令语句 ;方式选择伪指令(续表);2.逻辑段定义伪指令;说明:;组合类型:告诉LINK程序本段与其它模块中同名段的组 合连接关系。此属性缺省,表示段是独立的。; 3.3.1 程序结构伪指令语句 ;字长选择:用于定义段中使用的偏移地址和寄 存器的字长。只用于设置含有.386 和.486语句的段。;②段寄存器说明语句(ASSUME);③组定义语句(GROUP);2)简化段定义伪指令(适用于MASM5.0以上版本);②内存模式语句(.MODEL);内存模式类型;段语句名; 3.3.1 程序结构伪指令语句 ;3.指定地址伪指令(ORG); 3.3.1

文档评论(0)

1亿VIP精品文档

相关文档