现代微型计算机原理与接口技术 配套课件 杨文显 第03章 汇编基础新.ppt

现代微型计算机原理与接口技术 配套课件 杨文显 第03章 汇编基础新.ppt

  1. 1、本文档共214页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机原理 与接口技术 21世纪高等学校计算机规划教材 第3章 汇编语言基础 3. 八进制和十六进制计数法 八进制: 八进制使用的数字符号:0,1,2,3,4,5,6,7。 一位8进制数可以方便地转换成3位二进制数 十六进制 十六进制使用的数字符号:0~9,A~F。 书写十六进制数时,在它各位数字的后面加上“H”。 如果十六进制数以字母A~F开始,还要在前面添加0。 例:3AFH, 0FF3DH 一位十六进制数可以方便地转换成4位二进制数 3.1 数据定义与传送 数据组织 计算机内的信息按一定的规则组织存放。 (1) 位(bit)-- 最小信息表示单位 (2)字节(Byte)--最小信息存储单位 (3)字(Word)和双字(Double Word) (2)补码 用最高有效位(MSB)表示一个有符号数的符号: “1”表示负,“0”表示正。 其他二进制位用来存储这个数的有效数字: 正数的有效数字不变,负数的有效数字取反后最低位加1。 用字节存储一个有符号数时, 对于正数 X = dn-2dn-3……d2d1d0, [X]补 = X = 0 dn-2dn-3……d2d1d0。 对于负数 Y =-dn-2…d1d0, [Y]补 = 1(dn-2…d1d0 ) #+1 = 1111…111-|Y|+1 =2n-|Y| = 2n + Y。 3.1.4 简化段格式 其中,带有方括号的内容不是必需的,可以根据需要选择使用,也可以改变出现的次序。 数据段定义格式是: 省略堆栈段大小时,堆栈段自动设置为1024B(1KB)。 程序装入执行时,根据所定义的堆栈段自动装载SS、SP寄存器。 只有一个代码段时可以省略代码段段名。 使用简化段定义格式重写[例3-1]如下: 如果将上面的程序写成如下的情形: L1: MOV CX, 10 ……. ; 重复执行的若干条指令 …… LOOP L1 这个程序将无限制地运行下去,称为“死循环”。 MOV CX, 10 L1: ……. ; 需要重复执行的若干条指令 …… LOOP L1 上面的程序将L1到LOOP指令之间的一段程序重复执行10次。指令“MOV CX, 10”称为“装载循环计数器”, 在循环之前完成。 [例3-4] 用循环的方法,将字节数组ARRAY的20个元素清零。 DATA SEGMENT ARRAY DB 20 DUP(?) ;定义数组ARRAY DATA ENDS CODE SEGMENT ASSUME DS: DATA, CS: CODE START: MOV AX, DATA MOV DS, AX LEA BX, ARRAY ;把数组ARRAY首地址装入BX MOV CX, 20 ;装载循环计数器的初始值 程序的循环 ONE: MOV BYTE PTR[BX], 0 ;数组ARRAY的一个元素清零 INC BX ;修改BX的值,为下一次操作做准备 LOOP ONE ;计数循环 MOV AX, 4C00H INT 21H CODE ENDS END START 上面程序里,BX存放数组元素的地址,称为“指针”,每次使用后,要及时修改它的值(地址),以便下一次使用。同样原因,装载BX初值(ARRAY数组首地址)的指令也要安放在循环开始之前。 MOV CX, 10 ;装载循环计数器的初始值 ONE: MOV WORD PTR[BX], 0;把两个元素清零 INC BX ;修改BX的值,为下一次操作做准备 INC BX LOOP ONE ;计数循环 经过这样修改,程序变长了,但是重复执行的次数减少了,总的执行时间缩短了。 MOV CX, 10 ;装载循环计数器的初始值 MOV AX, 0 ;累加器AX清零 ONE: MOV [BX], AX ;把数组ARRAY的两个元素清零 INC BX ;修改BX的值,为下一次操作做准备 INC BX LOOP ONE ;计数循环 程序又一次变长了,但使用8086 CPU时执行时间会进一步缩短。 把数据不断加入同一个容器的过程称为“累加”,这个容器称为“累加器(Accumulator)”。 数据的累加 编制程序时,经常会遇到“求若干个数据的和”

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档