汇编入门学习笔记 (七)—— dp,div,dup

发布者:NexusDream最新更新时间:2016-06-24 来源: eefocus关键字:汇编入门  div  dup 手机看文章 扫描二维码
随时随地手机看文章
疯狂的暑假学习之  汇编入门学习笔记 (七)——  dp,div,dup

 

参考: 《汇编语言》 王爽 第8章

 

1. bx、si、di、和 bp

 

8086CPU只有4个寄存器可以用 “[...]” 中进行单元寻址。

 

bp:除了默认的段地址是ss,其他与bx一样。

 

它们所有正确的组合

 
  1. mov ax,[bx]  
  2. mov ax,[si]  
  3. mov ax,[di]  
  4. mov ax,[dp]  
  5. mov ax,[bx+si]  
  6. mov ax,[bx+di]  
  7. mov ax,[bp+si]  
  8. mov ax,[bp+di]  
  9. mov ax,[bx+si+idata]  
  10. mov ax,[bx+di+idata]  
  11. mov ax,[bp+si+idata]  
  12. mov ax,[bp+di+idata]  

注意:bx与bp不可以同时使用,如[bx+bp]是错误的。

 

2. 指明要处理的数据长度

 

word ptr 表示字

byte ptr 表示字节

 

像这样,寄存器就直接指定了数据的长度:

 

  1. mov ax,1  
  2. mov ax,ds:[0]  

但是,看下面的例子:

 

  1. assume cs:code,ds:data  
  2.   
  3. data segment  
  4.     dw 1111H,1111H,1111H,1111H,1111H,1111H,1111H,1111H  
  5. data ends   
  6.   
  7. code segment  
  8.     start:  mov ax,data  
  9.         mov ds,ax  
  10.         mov ds:[0],1  ;Error  
  11.               
  12.         mov ax,4c00H  
  13.         int 21H  
  14. code ends  
  15.   
  16. end start  

 

这样编译会报错,因为编译器不知道1是8位还是16位。

 

改进:

 

  1. assume cs:code,ds:data  
  2.   
  3. data segment  
  4.     dw 1111H,1111H,1111H,1111H,1111H,1111H,1111H,1111H  
  5. data ends   
  6.   
  7. code segment  
  8.     start:  mov ax,data  
  9.         mov ds,ax  
  10.         mov byte ptr ds:[0],1  ;Error  
  11.               
  12.         mov ax,4c00H  
  13.         int 21H  
  14. code ends  
  15.   
  16. end start  

 

加上byte ptr 或者 word ptr才对。

加上byte ptr时,运行后,ds段中的值为: 0B56:0000  01 11 11 11 11 11 11 11-11 11 11 11 11 11 11 11

加上word ptr时,运行后,ds段中的值为:0B56:0000  01 00 11 11 11 11 11 11-11 11 11 11 11 11 11 11

 

例子:

 

  1. assume cs:code,ds:data  
  2.   
  3. data segment  
  4.     dw 00FFH  
  5. data ends   
  6.   
  7. code segment  
  8.     start:  mov ax,data  
  9.         mov ds,ax  
  10.         inc byte ptr ds:[0]  
  11.               
  12.         mov ax,4c00H  
  13.         int 21H  
  14. code ends  
  15.   
  16. end start  

 

inc byte ptr ds:[0] 后,ds:[0] ds:[1] 为 00 00

 

如果改为inc word ptr ds:[0],运行后 ds:[0] ds:[1] 位 00 01

 

 

3. 伪指令dd,div指令

 

 

伪指令dd 表示32位,dw表示16位,db表示8位。例子见下面。

 

div 是除法指令,格式:div 除数

 

除数有两种,如果是8位的,被除数就是16位的,且存放在ax中。运算结果:商存放在 al 中,余数存放在 ah 中

如果除数是16位的,被除数就是32位的,且低16位放在 ax 中,高16位就存放在 dx 中。运算结果:商存放在 ax 中,余数存放在 dx 中

 

被除数就是32位的例子:

 

  1. assume cs:code,ds:data  
  2.   
  3. data segment  
  4.     dd 100001  
  5.     dw 100  
  6.     dw 0  
  7. data ends  
  8.   
  9. code segment  
  10.     start:  mov ax,data  
  11.         mov ds,ax  
  12.         mov ax,ds:[0]  
  13.         mov dx,ds:[2]  
  14.         div word ptr ds:[4]  
  15.         mov ds:[6],ax  
  16.               
  17.         mov ax,4c00H  
  18.         int 21H  
  19. code ends  
  20.   
  21. end start  

 

运行后ax为03E8H ,dx 为0001H

 

4. dup

 

dup 要与dd,dw,db配合使用,用来重复定义数据

 

例子:

 

db 3 dup (0)

定义了3个字节,它们都是0,相当于 db 0,0,0

 

db 3 dup (0,1,2)

定义了9个字节,它们是0、1、2、0、1、2、0、1、2

相当于 db 0,1,2,0,1,2,0,1,2

 

db 3 dup('abc','ABC')

定义了18个字符,它们是 ‘abcABCabcABCabcABC’ 

相当于 db ‘abcABCabcABCabcABC’ 

关键字:汇编入门  div  dup 引用地址:汇编入门学习笔记 (七)—— dp,div,dup

上一篇:汇编入门学习笔记 (八)—— 转移指令
下一篇:汇编入门学习笔记 (六)—— si、di,双重循环

推荐阅读最新更新时间:2024-03-16 14:58

汇编入门学习笔记 (十一)—— 内中断
疯狂的暑假学习之 汇编入门学习笔记 (十一) 内中段 参考: 《汇编语言》 王爽 第12章 中断是指CPU在执行完当前指令后收到某种信息(中断信息),就不在接向下执行,而去对接收到的信息进行处理。中断信息可以来自CPU内部和外部,分内中断,外中断。 1. 内中断的产生 下面4中情况会产生内中断: (1)除法错误。如:div除法溢出 (2)单步执行。如debug中的单步调试 (3)执行into指令。 (4)执行int指令 2. 处理中断信息 中断信息中包含8位的中断类型吗,用来表示要执行的中断程序。但是,一个程序入口要cs和ip,8位不够。这样,系统中就有一
[单片机]
Averna DP-360 DOCSIS 协议分析仪现在可支持16x4 通道绑定
DP-360装备了强大的支持DOCSIS3.1版本的新软件并且有新产品过渡计划 Averna DP-360 DOCSIS 协议分析仪现在可支持16x4 通道绑定 加拿大蒙特利尔, 2013年12月20日 - (亚太商讯) - Averna,在全球通信及电子产品制造业内领先的测试解决方案和服务供应商,宣布已经开发出DP-360 DOCSIS协议程序分析仪的新软件版本,可以支持16x4信道绑定。 Averna的DP-360是DOCSIS和EuroDOCSIS功能性网络分析的行业标准,提供了网络所有层的最佳可视性。运营商(MSO)、芯片制造商、产品开发商以及认证机构利用DP-360能够快速发现并修复故障点。 新 DP-360 软
[测试测量]
基于Profibus-DP和西门子触摸屏、PLC器件在斗轮堆取料机中应用
  1. 前言   斗轮堆取料机,是大型散装物料装卸机械,广泛用于港口、矿山、钢厂、电厂等大宗散料如矿石、煤、砂石等在存储料场的堆放、提取作业,其工作连续性强,操作频繁。斗轮堆取料机传统的开关量顺序控制, 是采用继电器和接触器构成的逻辑控制装置, 这种传统的控制装置能在一定的范围内满足自动控制的需要,但因需要大量的触点装置和电缆使其控制线路过于繁复、可靠性差和维修难度大。PLC 以其稳定的性能、低廉的成本、强大的功能及方便的编程等特点广泛应用于工业控制领域。   本文采用西门子触摸屏TP270 ,西门子 S7-300 可编程控制器, Profibus-DP ( 分布式I/O) 控制机上的各执行机构。控制网络简单, 系统优化,
[嵌入式]
基于Profibus-<font color='red'>DP</font>和西门子触摸屏、PLC器件在斗轮堆取料机中应用
用SPC3协议芯片设计PROFIBUS-DP智能从站
引言   国际电工委员会IEC在2000年1月4日投票通过了现场总线IEC61158国际标准,IEC61158包括了7种现场总线标准,PROFIBUS作为类型3正式加入IEC61158。PROFIRUS协议的结构是以ISO7498国际标准开放式系统互连网络参考模型OSI为基础的。   PRO FIBUS由二三部分组成:PROFIBUS·FMS、PROFIBus-DP和PROFIBUS—PA。FMS主要用于车间级控制网络,是一种令牌结构和实时多主网络,DP是一种高速的低成本通信连接,用于设备级控制系统与分散式通信;PA是专为过程化而设计的,具有本征安全规范。在这里,主要介绍PROFIBUS-DP(Distributed
[应用]
PROFIBUS-DP主站与主站之间如何实现通信?
现在有两个独立的PROFIBUS-DP总线网络,A主站(cpu315-dp)和B主站cpu315+CP342-5)分别是两个独立总线网络中的一个主站。 请问:       1、如果要实现A主站与B主站之间的通讯有哪些方法?       2、能否将B主站改成A主站所在网络的从站?       3、如果用DP/DP耦合器将两个总线网络直接连接会有什么后果? 答:1.既然你是DP总线网络,两个站点之间可以直接采用DP通讯,也可以加以太网模块,TCP/IP通讯,不过成本肯定会上去 2.你说的方法是可以的,B站可以直接挂载到A上作为从站使用 3.DP 耦合器主要用来将两个不同DP网络链接进行通讯,两DP网络可以不同波
[嵌入式]
Profibus—DP现场总线在煤气回收改造中的应用
引言 莱钢集团股份公司所属炼钢厂是该公司支柱单位,应生产要求,对原煤气回收自控系统进行改造,原有的煤气回收自控系统于1998年投运,采用德国siemens公司的s5 plc系统,上位机采用研华ipc—610(p166),mmi系统采用fix dmacs监控软件,并采用以同轴电缆为介质,基于tf协议的sinec h1的以太网通讯网络如图1所示。 原系统逐渐暴露出越来越多的问题,主要突出在以下几个方面: (1) 无法满足硬件和软件扩容的需要; (2) 备品备件陈旧,供货困难; (3) 网络设计为环状结构,维护难度大; (4) 编程环境基于dos,无法与高级监控平台接口。 2 系统介绍 此次系统改造除考
[工业控制]
ARM汇编快速入门
前言: 以前用ARM的IDE工具,使用的是ARM标准的汇编语言。现在要使用GNU的工具,当然要了解一点GNU ARM汇编的不同之处。其实非常的简单,浏览一下文档然后再看看程序就完全可以搞定了,或者你硬着头皮看GNU ARM的汇编程序,用不了多少时间你就就可以无师自通了。个人比较健忘,还是把文档翻译了一下,算是给自己一个避免遗忘的理由吧。 ARM汇编语言源程序语句,一般由指令,伪操作,宏指令和伪指令作成.ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令. 目前常用的ARM编译环境有2种: ARMASM: ARM公司的IDE中使用了CodeWarrior的编译器,绝大多数windows下的开发者都在使用这一环境,完全按照
[单片机]
PROFIBUS-DP现场总线在涤纶短丝后处理联合机中的应用
1 前言   在化纤涤纶短丝的生产工艺流程中,后处理牵伸联合机是整个生产线中的关键设备,各单元机的控制精度直接影响成品丝的质量。采用传统的机械长边轴或同步调节器控制,对各单元机之问的工艺比例倍数调整极不方便,且控制精度难以保证。所以,为了方便对各工艺参数的调节,提高整个系统的控制精度和可靠性,采用“西门子TP170A触摸屏+S7—300PLC+矢量控制型逆变器”的控制模式,并采用PROFIBUS—DP作为主通信方式。 2 PROFIBUS—DP现场总线   PROFIBUS是德国国家标准DIN 19245和欧洲标准EN 50170的现场总线标准。PROFIBUS广泛应用于加工制造、过程和楼宇自动化等行业。PROFIBUS根据应用特
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved