网站大量收购独家精品文档,联系QQ:2885784924

王爽第3版《汇编语言》讲稿16.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
王爽第3版《汇编语言》讲稿16

《汇编语言》课件             王爽 著-清华大学出版社 制作工具:Microsoft PowerPoint2003 本课件由汇编网()制作提供 第16章 直接定址表 16.1 描述了单元长度的标号 16.2 在其他段中使用数据标号 16.3 直接定址表 16.4 程序入口地址的直接定址表 引言 这一章,我们讨论如何有效合理地组织数据,以及相关的编程技术。 16.1 描述了单元长度的标号 本章中,我们要用到这种标号,先进行如下介绍。 前面的课程中,我们一直在代码段中使用标号来标记指令、数据、段的起始地址。 16.1 描述了单元长度的标号 比如:下面的程序将code 段中的a 标号处的8个数据累加,结果存储到b标号处的字中。 程序代码 16.1 描述了单元长度的标号 assume cs:code code segment a : db 1,2,3,4,5,6,7,8 b : dw 0 start :mov si,offset a mov bx,offset b mov cx,8 s : mov al,cs:[si] mov ah,0 add cs:[bx],ax inc si loop s mov ax,4c00h int 21h code ends end start 16.1 描述了单元长度的标号 程序中,code、a、b、start、s都是标号。这些标号仅仅表示了内存单元的地址。 但是,我们还可以使用一种标号,这种标号不但表示内存单元的地址,还表示了内存单元的长度,即表示在此标号处的单元,是一个字节单元,还是字单元,还是双字单元。 上面的程序我们还可以写成这样:程序 16.1 描述了单元长度的标号 assume cs:code code segment a db 1,2,3,4,5,6,7,8 b dw 0 start : mov si,0 mov cx,8 s : mov al,a[si] mov ah,0 add b,ax inc si loop s mov ax,4c00h int 21h code ends end start 16.1 描述了单元长度的标号 我们在code 段中使用的标号a、b后面没有“:” ,它们是同时描述内存地址和单元长度的标号。 标号a,描述了地址code:0,和从这个地址开始,以后的内存单元都是字节单元; 而标号b描述了地址code:8,和从这个地址开始,以后的内存单元都是字单元。 16.1 描述了单元长度的标号 因为这种标号包含了对单元长度的描述,所以,在指令中,它可以代表一个段中的内存单元。 比如,对于程序中的b dw 0。 指令:mov ax,b 相当于:mov ax,cs:[8] 指令:mov b,2 相当于:mov word ptr cs:[8],2 指令:inc b 相当于:inc word ptr cs:[8] 在这些指令中,标号b 代表了一个内存单元,地址为code:8 ,长度为2 字节。 16.1 描述了单元长度的标号 下面的指令会引起编译错误: mov al,b 因为b代表的内存单元是字单元,而al 是8 位寄存器。 如果我们将程序中的指令:add b,ax ,写为add b,al,将出现同样的编译错误。 16.1 描述了单元长度的标号 对于程序中的a db 1,2,3,4,5,6,7,8 : 指令:mov al,a [si] 相当于:mov al,cs:0[si] 指令:mov al,a[3] 相当于:mov al,cs:0[3] 指令:mov al,a[bx+si+3] 相当于:mov al,cs:0[bx+si+3] 16.1 描述了单元长度的标号 可见,使用这种包含单元长度的标号, 可以使我们以简洁的形式访问内存中 的数据。 以后,我们将这种标号称为数据标号。 它标记了存储数据的单元的地址和长度。 它不同于仅仅表示地址的地址标号。 特别提示 检测点16.1(page289) 没有通过此检测点,请不要向下进行! 16.2 在其他段中使用数据标号 一般来说,我们不在代码段中定义数据,而是将数据定义到其他段中。 在其他段中,我们也可以使用数据标号来描述存储数据的单元的地址和长度。 注意:在后面加有

文档评论(0)

报告论文库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档