- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)