- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言指令汇总
汇编语言程序设计资料简汇
通用寄存器
8位通用寄存器8个:AL、AH、BL、BH、CL、CH、DL、DH。
16位通用寄存器8个:AX、BX、CX、DX、SI、DI、BP、SP。
AL与AH、BL与BH、CL与CH、DL与DH分别对应于AX、BX、CX和DX的低8位与高8位。
专用寄存器
指令指针: IP(16位)。
标志寄存器: 没有助记符(FLAGS 16位)。
段寄存器
段寄存器:CS、DS、ES、SS。
内存分段:80x86采用分段内存管理机制,主要包括下列几种类型的段:
代码段:用来存放程序的指令序列。
数据段:用来存放程序的数据。
堆栈段:作为堆栈使用的内存区域,用来存放过程返回地址、过程参数等。
物理地址与逻辑地址
物理地址:内存单元的实际地址,也就是出现在地址总线上的地址。
逻辑地址:或称分段地址。
段地址与偏移地址都是16位。
系统采用下列方法将逻辑地址自动转换为20位的物理地址:
物理地址 = 段地址 × 16 + 偏移地址
每个内存单元具有唯一的物理地址,但可由不同的逻辑地址描述。
与数据有关的寻址方式
立即寻址方式
立即寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在指令代码段中。立即数可以是8位数或16位数。如果是16位数,则低位字节存放在低地址中,高位字节存放在高地址中。
例:MOV AL,18
指令执行后,(AL)= 12H
寄存器寻址方式
在寄存器寻址方式中,操作数包含于CPU的内部寄存器之中。这种寻址方式大都用于寄存器之间的数据传输。
例3:MOV AX,BX
如指令执行前(AX)= 6789H,(BX)= 0000H;则指令执行后,(AX)= 0000H,(BX)保持不变。
直接寻址方式
直接寻址方式是操作数地址的16位偏移量直接包含在指令中,和指令操作码一起放在代码段,而操作数则在数据段中。操作数的地址是数据段寄存器DS中的内容左移4位后,加上指令给定的16位地址偏移量。直接寻址方式适合于处理单个数据变量。
寄存器间接寻址方式
在寄存器间接寻址方式中,操作数在存储器中。操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供。
如果指令中指定的寄存器是BX、SI、DI,则用DS寄存器的内容作为段地址。
如指令中用BP寄存器,则操作数的段地址在SS中,即堆栈段。
寄存器相对寻址
该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。
基址加变址寻址方式
在基址加变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器,可把两种方式组合起来形成一种新的寻址方式。基址加变址的寻址方式是把一个基址寄存器BX或BP的内容,加上变址寄存器SI或DI的内容,并以一个段寄存器作为地址基准,作为操作数的地址。
当基址寄存器为BX时,段寄存器使用DS,当基址寄存器为BP时,段寄存器用SS。
相对基址变址寻址方式
在相对基址变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器。它是把一个基址寄存器BX或BP的内容,加上变址寄存器SI或DI的内容,再加上指令中给定的8位或16位位移量,并以一个段寄存器作为地址基准,作为操作数的地址。
当基址寄存器为BX时,段寄存器使用DS。
当基址寄存器为BP时,段寄存器则用SS。
字符编码
ASCII编码表
BCD编码表
BCD码 十进制数 BCD码 十进制数 0000 0 1000 8 0001 1 1001 9 0010 2 1010 这6种情况在BCD码中不允许出现 0011 3 1011 0100 4 1100 0101 5 1101 0110 6 1110 0111 7 1111 简单I/O功能调用
键盘输入
MOV AH, 01H
INT 21H
输入的ASCII码在AL中。
伪指令与指令系统
内存分配伪指令
伪指令 内存单元类型 单元所占字节数 表示范围 DB BYTE 1 -128~255 DW WORD 2 -32768~65535 DD DWORD 4 -2147483648~4294967295
传送指令类
MOV 传送 LEA 取偏移 LDS/ LES 取偏移及DS/ES LAHF 取标志
SAHF 存标志 PUSH 压入栈 POP 弹出栈 PUSHF/POPF 标志进栈/出栈
IN 端口输入 OUT 端口输出 XCHG 交换 XLAT 查表
算术指令类
ADD 加法 ADC 进位加 I
文档评论(0)