汇编语言程序设计 2005

第四章 汇编语言程序设计

回顾:8086 的内部结构、寄存器功能和工作过程,指令格式、寻址方式和功能。

本讲重点:了解汇编的概念及其方法, 掌握汇编程序的基本格式,常用运算符的使用方法,

汇编的步骤。

4.1汇编语言的基本元素

一、汇编语言的语句格式

由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由1~4个

部分组成,其格式是:

[ ] [ ] [ ]

标号 指令助记符 操作数 ;注解

其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,

一行最多可有132个字符。

1. 标识符

给指令或某一存储单元地址所起的名字。可由下列字符组成:

字母:A~ z ; 数字:0~ 9 ; 特殊字符:?、· 、@、一、$ 。

31

数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。标识符最长为 个字

符。当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址;当标识符后不带冒号

时,表示变量;伪指令前的标识符不加冒号。

2. 指令助记符

表示不同操作的指令,可以是8086 的指令助记符,也可以是伪指令。

3. 操作数

指令执行的对象。依指令的要求,可能有一个、两个或者没有,

例如: RET ;无操作数

COUNT: INC CX ;一个操作数

如果是伪指令,则可能有多个操作数,例如:

COST DB 3,4,5,6,7 ;5个操作数

MOV AX,[BP+4] ;第二个操作数为表达式

4. 注解

该项可有可无,是为源程序所加的注解,用于提高程序的可读性。

二、汇编语言的运算符

1. 算术运算符、逻辑运算符和关系运算符

1

- -

汇编语言程序设计 2005

算术运算符可以应用于数字操作数,结果也是数字。而应用于存储器操作数时,只有+、

- 运算符有意义。

2. 取值运算符SEG、OFFSET、TYPE、SIZE 和LENGTH

·SEG和OFFSET 分别给出一个变量或标号的段地址和偏移量。

例如,定义: SLOT DW 25

则: MOV AX,SLOT;从SLOT 地址中取一个字送入AX

MOV AX,SEG SLOT;将SLOT 所在段的段地址送入AX

MOV AX OFFSET SLOT SLOT AX

, ;将 所在段的段内偏移地址送

·TYPE 操作符返回一个表示存储器操作数类型的数值。各种存储器地址操作数类型部分的

值如表4-1所示。

表4-1存储器操作数的类型属性及返回值

字节 1 字 2 双字 4

NEAR -1 FAR -2

·LENGTH 和SIZE 操作符只应用于数据存储器操作数。(用DB/DW/DD 等定义的操作数)

LENGTH 返回一个与存储器地址操作数相联系的单元数,

SIZE 操作数返回一个为存储器操作数分配的字节数。

例如:若 MULT-WORD DW 50DUP (0)

则 LENGTH (MULT-WORD) 50

SIZE MULT-WORD 100

( )

注意:SIZE (X) (LENGTH X)* (TYPE X)

3. 属性运算符

属性运算符用来给指令中的操作数指定一个临时属性,而暂时忽略当前的属性。常用的有:

(1) 合成运算符PTR

它作用于操作数时,则忽略了操作数当前的类型(字节或字)及属性(NEAR 或FAR),而

给出一个临时的类型或属性,

汇编语言典型例子详解_汇编语言及编程实例(电子教案).pdf相关推荐

  1. 汇编语言典型例子详解_汇编语言例子_汇编语言 举例子

    最佳答案 不同的CPU及平台,有不同的汇编语言的(常用的有几十种) 以下是DOS下一个汇编的例子: disp.asm db "hello world!",0dh,0ah,0 D:\ ...

  2. 汇编语言典型例子详解_数据分析常用的7大思维方法详解

    今天老李继续给大家讲解数据分析经典的思维模型,上篇为大家介绍了目标思维.假设思维.溯源思维.逆向思维4个思维:数据分析必备7大经典模型详解!建议收藏!(上) 今天继续给大家介绍结构思维.演绎推理思维. ...

  3. 汇编语言典型例子详解_从架构到 RTOS 详解 DSP 和 MCU 的区别和联系

    ▍一.区别 两则的分流造成的主要原因是数字信号处理的简便性,考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR).用数学语言来说,FIR滤波器是做一系列的点积.取一个输入量和一个序数向量,在系 ...

  4. c51汇编语言典型例子详解,51单片机典型开发实例大全.pdf

    51单片机典型开发实例大全 提供电子技术最新最实用设计方案 --单片机 C51 编程规范 typedef unsigned char INT8U; // 无符号 8 位整型变量 // typedef ...

  5. tracepro应用实例详解_离心铸造工艺(实例)

    离心铸造工艺:是通过高速旋转模具,从而使高温液态材料充分填充模具腔体成型的工艺,适合金属,塑料,复合材料和玻璃,由于模具成本异常低廉,所以既可以应用于单件手办模型的制作,也适合大批量生产. 工艺成本: ...

  6. socket详解(附加C++编程实例讲解)

    前言 最近新换了家实习单位,趁着leader去交通局开会,偷个闲整理一下有关于socket通信方面的知识. socket socket可以将其理解为一种"中间件",即TCP/IP协 ...

  7. 面向接口编程详解(二)——编程实例

    作者: T2噬菌体  来源: 博客园  发布时间: 2012-06-09 12:13  阅读: 19178 次  推荐: 25   原文链接   [收藏]   通过上一篇文章的讨论,我想各位朋友对&q ...

  8. 汇编语言DEBUG命令详解||汇编命令||DEBUG的常用命令:A,U,R,T,D,E,Q 等等

    汇编命令 汇编语言Debug命令详解 DEBUG的常用命令:A,U,R,T,D,E,Q 等等 汇编语言DEBUG命令详解 文章目录 汇编语言DEBUG命令详解 R命令的使用 H命令的使用 D命令的使用 ...

  9. 论vue3.0和vue2.0区别之编程方式及例子详解

    系列文章目录 第一章 论vue3.0和vue2.0区别之编程方式及例子详解 第二章 同一台电脑 实现 vue-cli2和vue-cli3同时并存 及 常见命令 第三章 vue3.0项目实战 - Ele ...

  10. Spring事务管理详解_基本原理_事务管理方式

    Spring事务管理详解_基本原理_事务管理方式 1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象 ...

最新文章

  1. 用看板工具Leangoo思维导图实现影响地图
  2. CNCC技术论坛丨联邦学习冲刺人工智能“最后一公里”!
  3. 源自Google、Facebook、Netflix和Cisco的10款开源安全工具很值得回味
  4. 两个listmap合并去重_我是如何用单机实现亿级规模题库去重的?
  5. PDU (Protocol Data Unit) - 协议数据单元
  6. html5波浪线条,HTML5 svg炫酷波浪线条动画插件
  7. linux 环境变量设置错误导致 command not found
  8. Html5 + fromData + Spring MVC 单文件、多文件上传
  9. 性能监视器 Performance Monitor-对SQLSERVER进行性能监控
  10. 【FFT】HDU4609-3 idiots
  11. Android产品研发(十六)--开发者选项
  12. 低功耗广域网络和ISM频段:物联网的里程碑还是公地悲剧?
  13. OpenGL ES教程VI之纹理贴图(原文对照)
  14. 前端学习从入门到高级全程记录之1 (HTML基础知识)
  15. 在我们身边的交互式设计失败的例子
  16. 【死磕opensips】sip协议解析
  17. 高博课程第三次作业之轨迹的描绘
  18. Telnet、Mstsc、SSH之间的比较和区别
  19. Description: A component required a bean of type ‘com.jia.dao.UserDao‘ that
  20. iOS 企业分发 安装包发布

热门文章

  1. U盘+WINPE 安装UEFI Ubuntu系统教程
  2. 信捷无线触摸屏与plc实现多从站MODBUS通讯
  3. 惠普打印机驱动服务器系统安装步骤,Win8.1安装惠普打印机驱动程序的两种方法...
  4. 内存优化——使用pandas读取千万级数据
  5. ret2text涉及到的堆栈平衡问题
  6. lighttools用透镜旋转手动创建菲尼尔透镜
  7. python利用PyQt5制作QQ空间登入客户端
  8. 《那些年啊,那些事——一个程序员的奋斗史》二
  9. zebradesginer zpl代码_斑马ZebraDesigner免费标签编辑软件
  10. ha rose server安装 sql_ROSE HA V8.9+Win2008+SQL2008双机配置详细指南(图文)