汇编复习资料.doc

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

汇编复习资料 第一章 汇编语言基础(基础) 1.十进制,二进制,八进制,十六进制之间的转化; 2.位(b),字节(B),字(W),双字(DW)之间的关系; 3.无符号数和有符号数的表示;有符号数原码,反码,补码之间的转换;补码的扩展(符号扩展);补码的运算(溢出的判断); 4.存储器:数据组织(小端对齐),地址书写格式,读写操作(注意地址格式,字节地址,字地址,双字地址),存储器的分段(段基址,偏移地址,逻辑地址,物理地址之间的关系); 逻辑地址的表示:段基址:偏移地址; 物理地址=段基址*16+偏移地址; 5.指令和程序:指令(机器指令,符号指令),机器指令(操作码,操作数); 6.80x86寄存器: (1)数据寄存器: a.AX累加器: b.BX基址寄存器:存放数据,存放基址; c.CX计数寄存器:存放数据,存放重复操作的次数; d.DX数据寄存器:存放数据,存放32位数据的高16位,有时存放端口地址; (2)地址寄存器: a.SP堆栈指针:存放堆栈顶的偏移地址; b.BP基址指针:存放堆栈中数据的偏移地址; c.SI源变址寄存器:存放源数据区的偏移地址; d.DI目的变址寄存器:存放目的数据区的偏移地址; (3)段寄存器: a.CS代码段寄存器:存放当前正在执行的程序段的段基址; b.SS堆栈段寄存器:存放堆栈段的段基址; c.DS数据段寄存器:存放当前正在使用的数据段段基址; d.ES附加段寄存器:存放另一个数据段的段基址; (4)专用寄存器: a.IP指令指针:存放即将执行指令的偏移地址; b.FLAGS标志寄存器:存放CPU的两类标志(状态标志,控制标志); ☆a.状态标志: OF(溢出标志,1表示溢出,0表示没有溢出); CF(进位/借位标志,1表示有进位或借位,0表示没有); SF(符号标志,1表示最高位为“1”,0表示最高位为“0”)”,0表示有奇数个); b.控制标志:IF(中断允许标志),TF(单步标志),DF(方向标志);(了解) 第二章 数据定义与传送 1.数据:变量,常数,缓冲区 2.数据段(保留字,汇编语句,注释的使用); 3.数据段定义: DB:定义字节数据,每个数据占用1B的存储器; (1)有符号数用补码存储; (2)可以用单或双引号括起来的单个或多个字符,每个字符占1B,按他们出现的顺序用ASCII代码存储; (3)可以出现简单的可以求出值的表达式; (4)“?”表示一个尚未确定的值,在程序运行时写入,一般先用“0”来填充这个单元; (5)数据在一行写不下时,可以另起一行,但不能写相同的变量名; (6)DUP为重复定义符,表示定义若干个相同的数据; (7)汇编程序根据段定义分配存储空间,按序安排数据存放; DW:定义字数据,每个数据占用2B的存储器,数据的高位存放在地址较大的单元里; 数据部分的变量名代表该变量偏移地址; DD:定义双字数据,每个数据占用4B的存储器,数据的高位存放在地址较大的单元里; DQ,DT分别用来定义8B,16B的数据(了解); 4.指令格式:[标号:] 操作码 [操作数] [;注释] 操作数:目的操作数,源操作数; 源操作数参与指令操作,但是不保存结果,内容不改变;目的操作数参与指令操作,保存指令操作结果,指令执行后,内容改变; 5.操作数类型:寄存器操作数,立即数操作数,存储器操作数; (1)寄存器操作数:包括段寄存器和通用数据,地址寄存器; *寄存器IP/EIP和FLAGS/EFLAGS不能作为操作数出现在指令中,但可间接对其操作; (2)立即数操作数:二进制,十进制,十六进制常数,可求职的表达式,字符,标号等都可以用作操作数; 例:MOV BX,300或者MOV BX,150*2 正确 但:X DW 150 MOV BX,X*2 错误 原因:变量的值在程序运行期间可以随时改变,汇编程序无法对一个变化的值事先进行计算,变量的计算应该在用户程序执行时进行; *立即数不能用作目的操作数; (3)存储器操作数(后续理解) 6.存储器操作数(段基址,偏移地址) 大多数情况下指令使用DS寄存器的内容作为操作数的段基址,指令中不需要再指出段基址; 有效地址:存储器操作数的偏移地址可以由几个部分组合而成,合成后得到的偏移地址; (1)直接地址:指令中直接写出存储单元的偏移地址; *源操作数和目的操作数的类型要匹配,至少有一个操作数为明确类型; 例: a.假设DATA段基址已装入DS,若要把变量(数组)A的前两个字节数据送BL,BH寄存器: MOV BL, A ; MOV BL, [A] MOV BH, A+1 ; MOV BH, [A+1] ,MOV BH, A[1] 可否这样写:MOV

文档评论(0)

rewfdgd + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档