热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

汇编语言第5-8章

第五章[BX]和loop1、[BX]表示的是内存单元,它的偏移地址在bx中,间接给出内存单元的偏移地址,则段地址默认在ds中2、内存单元间接表示:[bx](1)movdl,[bx]

第五章 [BX]和loop

1、[BX]表示的是内存单元,它的偏移地址在bx中,间接给出内存单元的偏移地址,则段地址默认在ds中

2、内存单元间接表示:[bx]

(1)mov dl,[bx]

间接寻址,可以使用bx间接访问内存单元,间接给出内存单元的偏移地址,默认段地址在ds中

(2)mov ax,[bx]

bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。即:(ax)=((ds)*  16  +(bx))

(3)mov [bx],ax

bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。即:((ds)*  16  +(bx))=(ax)

3、loop指令是否执行取决于cx的值,若cx=0,则执行loop后面的其他指令,若cx≠0,则跳转到标号处执行

4、遇到loop指令时,使用p命令来执行,Debug就会自动重复执行循环中的命令,直到(cx)=  0为止

5、如果段地址不在ds中,则需要使用cs,ss,es等段前缀,显式地指明内存单元的段地址

6、系统中某些地址处存放着重要的数据,dos方式下,一般情况,可以把数据写在0:200~0:2ff空间中

 

六、包含多个段的程序

1、dw:字型数据;db:字节型数据

2、如果代码和数据放在一个段中,反汇编时,如果从0开始,会把数据当成指令机器码反汇编,所以反汇编时注意sp的值

3、8086CPU不允许将一个数值直接送入段寄存器中

4、调试时,可以通过r命令修改ip的值或在t/g命令中指定执行的起始地址

5、end 标号:表示程序到标号处开始,到此结束,后面的标号有时候可以省略

6、使用assume仅仅表示将某个逻辑段和某个段寄存器关联起来;真正当做特定的段使用,需要在代码段中设置相应的段寄存器值

7、使用伪指令segment和ends定义逻辑段后,究竟使用作伪代码、数据段还是栈由程序员指定

8、段名代表的是段地址,是常数。不能使用mov直接送入段寄存器

 

七、更灵活的定位内存地址的方法

1、and指令

(1)and指令语法格式及对操作数要求与add指令相同

(2)可以实现将操作数指定位设置为0

2、or指令

(1)or指令语法格式及对操作数要求与add指令相同

(2)可以实现将操作数指定位设置为1

3、在debug环境中,默认十六进制;在完整汇编源程序中,默认十进制,支持二/十六进制

4、数据段中的数据可以逐个定义,也可以连续定义,支持字符形式和ASCΙΙ码书写形式,支持十/二/十六进制

5、字母的大小写转换

(1)大写->小写:

mov dl,'A'            mov dl,'A'

add dl,32            or dl,20H(or dl,00100000B)

(2)小写->大写

mov dl,'a'            mov dl,'a'

sub dl,32            and dl,0dfh(and dl,11011111B)

6、内存单元地址表示小结

 

八、数据处理的两个基本问题

1、汇编指令中操作数类型

2、在8086中,可用于表示内存偏移地址的寄存器只有:bx,si,di,bp

(1)这些寄存器可以单个出现在[ ]中,也可以以特定组合方式出现

(2)使用bx,si,di表示偏移地址时,默认段地址在ds中,可以加前缀es,cs,ss

(3)使用bp表示偏移地址时,默认段地址在ss中,可以加前缀ds,es,cs

3、把内存单元ds:[0]作为字节单元还是字单元,依赖于另一个操作数是8位还是16位

(1)mov byte ptr [0],5:5作为字节数据送到ds:[0]对应的字节单元

(2)mov word ptr [0],5:5作为字数据送到ds:[0]对应的字单元

4、无符号除法指令div

5、无符号乘法指令mul

6、db 8 dup(0)预留8个字节单元,每个单元值为0

 

总结:

感觉自己基础不扎实,刚开始学的时候花的时间不够,导致学后面的东西觉得很困难

不管是对于汇编还是其他任何一门课,课前预习,课后预习其实都是必不可少的


推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
author-avatar
宝宝717917
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有