- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第03章 汇编基础
第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]如下: [例3-4] P、Q、R、W均为16位有符号字数, 计算:W=P/(Q-3)+R 假设各变量均定义在数据段,段基址已装入DS。 确定计算顺序如下: P扩展为32b → 暂存DX,AX; Q-3 →暂存BX; P/(Q-3) →(DX,AX)/(BX)→暂存DX,AX P/(Q-3)+R →暂存AX (AX) → 保存最终结果W 。 MOV AX, P ;变量P的值装入AX CWD ;符号扩展为32b,装入DX,AX MOV BX, Q ;变量P的值装入BX SUB BX, 3 ;计算Q-3,结果存入BX IDIV BX ;计算P/ (Q-3),商在AX,余数在DX(被舍弃) ADD AX, R ;计算P/ (Q-3)+R,结果存入AX MOV W, AX ;最后结果存入变量W 上面的程序不包含输出部分,因此直接运行无法观察到运行结果,需要通过TD来运行该程序: 用TD命令调出可执行程序; 对照源程序,找出变量W的存储地址; 单步或连续运行程序,直到指令“MOV W, AX”被执行; 在数据窗口中观察运行结果。 3.3.2 循环 基本循环指令 程序的循环 数据的累加 多项式计算 格式:LOOP 标号 功能:CX←(CX)-1 如果(CX)≠ 0,转向“标号”处执行,否则执行下一条指令。 说明: LOOP可以改变指令的执行次序,称为“控制指令”; LOOP指令使一段程序重复地执行,称为“循环”。 重复执行的次数由CX寄存器中的值决定。CX寄存器因此称为 “计数器”。 基本循环指令 如果将上面的程序写成如下的情形: L1: MOV CX, 10 ……. ; 重复执行的若干条指令 …… LOOP L1 这个程序将无限制地运行下去,称为“死循环”。 MOV CX, 10 L1: ……. ; 需要重复执行的若干条指令 …… LOOP L1 上面的程序将L1到LOOP指令之间的一段程序重复执行10次。指令“MOV CX, 10”称为“装载循环计数器”, 在循环之前完成。 [例3-5] 用循环的方法,将字节数组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的一个
您可能关注的文档
最近下载
- (高清版)-B-T 34590.2-2022 道路车辆 功能安全 第2部分:功能安全管理.pdf VIP
- 水果超市水果产期及收货标准.xls VIP
- 环境中抗生素抗性基因传播途径.docx VIP
- 2025年监理员考试题库及答案.docx VIP
- Hopewind禾望HV510系列高性能变频器用户手册.pdf
- 2025年度中秋国庆节前安全教育培训.pptx
- 多肉拼盘.pptx VIP
- 养生保健品商业计划书.pptx
- 第六章 智能网联汽车_3 课件(共33张PPT)- 《汽车文化》同步教学(上海交大版).pptx VIP
- 2025-2026学年小学劳动苏科版2023二年级上册-苏科版(2023)教学设计合集.docx
文档评论(0)