资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
汇编语言重点知识总结 汇编速查手册 汇编语言总结 概要寄存器与存储器 1. 寄存器功能 . 寄存器的一般用途和专用用途 . CS:IP 控制程序执行流程 . SS:SP 提供堆栈栈顶单元地址 . DS:BX(SI,DI) 提供数据段内单元地址 . SS:BP 提供堆栈内单元地址 . ES:BX(SI,DI) 提供附加段内单元地址 . AX,CX,BX 和 CX 寄存器多用于运算和暂存中间计算结果,但又专用于某些指令(查阅 指令 表)。 . PSW 程序状态字寄存器只能通过专用指令(LAHF, SAHF)和堆栈(PUSHF,POPF)进行存取。2. 存储器分段管理 . 解决了 16 位寄存器构成 20 位地址的问题 . 便于程序重定位 . 20 位物理地址=段地址 * 16 + 偏移地址 . 程序分段组织: 一般由代码段,堆栈段,数据段和附加段组成,不设置堆栈段时 则使用系统 内部的堆栈。3. 堆栈 . 堆栈是一种先进后出的数据结构 , 数据的存取在栈顶进行 , 数据入栈使堆栈向地址减小 的方向扩展。 . 堆栈常用于保存子程序调用和中断响应时的断点以及暂存数据或中间计算结果 。 . 堆栈总是以字为单位存取指令系统与寻址方式1. 指令系统 . 计算机提供给用户使用的机器指令集称为指令系统,大多数指令为双操作数指令。执行指 令后,一般源操作数不变,目的操作数被计算结果替代。 . 机器指令由 CPU 执行,完成某种运算或操作,8086/8088 指令系统中的指令分为 6 类: 数据 传送,算术运算,逻辑运算,串操作,控制转移和处理机控制。2. 寻址方式 . 寻址方式确定执行指令时获得操作数地址的方法 . 分为与数据有关的寻址方式(7 种)和与转移地址有关的寻址方式(4)种。. 与数据有关的寻址方式的一般用途: (1) 立即数寻址方式-将常量赋给寄存器或存储单元 (2) 直接寻址方式-存取单个变量(3) 寄存器寻址方式-访问寄存器的速度快于访问存储单元的速度 (4) 寄存器间接寻址方式-访问数组元素 (5) 变址寻址方式 (6) 基址变址寻址方式 (7) 相对基址变址寻址方式 (5),(6),(7)都便于处理数组元素 . 与数据有关的寻址方式中,提供地址的寄存器只能是 BX,SI,DI 或 BP. 与转移地址有关的寻址方式的一般用途: (1) 段内直接寻址-段内直接转移或子程序调用 (2) 段内间接寻址-段内间接转移或子程序调用 (3) 段间直接寻址-段间直接转移或子程序调用 (4) 段间间接寻址-段间间接转移或子程序调用汇编程序和汇编语言1. 汇编程序 . 汇编程序是将汇编语言源程序翻译成二进制代码程序的语言处理程序,翻译的过程称为汇 编。2. 汇编语言 . 汇编语言是用指令助记符,各种标识变量,地址,过程等的标识符书写程序的语言, 汇编语言 指令与机器指令一 一对应。 . 伪指令,宏指令不是由 CPU 执行的指令,而是由汇编程序在汇编期间处理的指令。 . 伪指令指示汇编程序如何完成数据定义,存储空间分配,组织段等工作。 . 宏指令可简化程序并减少程序书写量。 . 条件汇编伪指令的功能是确定是否汇编某段源程序,而不是实现程序分支,对未汇编的程序 将不产生相应的目标代码。 . 结构作为一种数据结构可将一组类型不同但有逻辑关联的数据组织在一起,便于 整体处理 数据。 . 记录可用于提高存储单元的利用率,将若干不足一个字节或字且有逻辑关联的信 息压缩存 放在一个字节或字中。 . 指令中的表达式在汇编期间计算,并且只能对常量或地址进行计算。程序设计基础1. 分支程序设计 . 程序分支由条件转移指令或无条件转移指令实现 . 存放若干目的转移地址或跳转指令的跳转表常用于实现多路分支 . 条件转移指令只能实现偏移量为-128 至+127 字节范围的转移 . 无条件转移指令根据寻址方式可实现短转移(偏移量为-128 至+127 字节),段内转 移,段间 转移。2. 循环程序设计 . 可由循环控制指令或条件转移指令组织循环结构 . 内层循环结构必须完全包含在外层循环结构内,并不能发生从循环结构外向循环 结构内的 转移。3. 子程序设计 . 子程序中应保护寄存器内容,并正确使用堆栈, 成对执行 PUSH 和 POP 指令,保证执行 RET 指令时堆栈栈顶为返回地址。 . 主程序可通过寄存器,参数表,或堆栈传递参数给子程序 4. EXE 文件和 COM 文件 . 二者都是可执行文件 . COM 文件源程序的特点是: 第一条可执行指令的起始存放地址必须是 100H,不能分段,不 用定义堆栈,所有过程为 NEAR 类型,直接用 INT 20H 指令返回 DOS。5. DOS 功能调用与 BIOS 中断调用 . 二者都是完成 DOS 系统提供给用户的输入/输出等常用功能,通过执行软中断指令 完成一 次软中断服务。 . DOS 功能调用的中断服务程序是操作系统的一部分,存于 RAM 中; 而 BIOS 中断调用的中 断服务程序存放在 ROM 中。输入/输出与中断系统1. 输入/输出的方式 . 程序直接 I/O 方式: 用 IN 和 OUT 指令直接在端口级上进行 I/O 操作,数据传送方式 分为 无条件传送方式和查询传送方式。 . 中断传送方式: 由 CPU 响应中断请求完成中断服务。 . DMA 传送方式: 直接在存储器与外设之间传送数据。2. 有关中断的概念 . 中断、中断源、中断请求、中断服务、中断向量、中断向量表、中断响应过程、中断指 令、开中断、关中断、内部中断、外部中断、可屏蔽中断、非屏蔽中断。3. 键盘 I/O、显示器 I/O 操作 . 键盘的输入操作用 BIOS 的 16H 中断调用控制,也可直接访问 60H 端口(数据端口), 61H 端 口(状态端口)检测键盘的按键操作。 . 对于特殊键(如 Shift , Ctrl , Alt , NumLock , ScrollLock 等键)的按动情况,可以直接从来 40:17H 单元取得有关信息。 . 显示器的图形显示可以用 BIOS 的 10H 中断调用实现,另一种速度更快的方法是直 接读写 视频缓冲区。4. 打印机 I/O 操作由 INT 17H 中断调用实现, 串行通讯口操作由 INT 14H 中断调用实现。CLD Clear the direction flag (set to forward direction)将方向标志置 0,使 si 和 di 增量,串处理从低地址向高地址处理8088 汇编速查手册 一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把 AX,CX,DX,BX,SP,BP,SI,DI 依次压入堆栈.POPA 把 DI,SI,BP,SP,BX,DX,CX,AX 依次弹出堆栈.PUSHAD 把 EAX,ECX,EDX, EBX,ESP,EBP,ESI,EDI 依次压入堆栈.POPAD 把 EDI,ESI,EBP,ESP,EBX,EDX, ECX,EAX 依次弹出堆栈.BSWAP 交换 32 位寄存器里字节的顺序XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器 AL/AX/EAX )XADD 先交换再累加.( 结果在第一个操作数里 )XLAT 字节查表转换. BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0- FFH); 返回 AL 为查表结果. ( BX+AL-AL )2. 输入输出端口传送指令.IN I/O 端口输入. ( 语法: IN 累加器, 端口号DX )OUT I/O 端口输出. ( 语法: OUT 端口号DX,累加器 )输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范 围是 0-65535.3. 目的地址传送指令.LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到 DX.LDS 传送目标指针,把指针内容装入 DS.例: LDS SI,string ;把段地址:偏移地址存到 DS:SI.LES 传送目标指针,把指针内容装入 ES.例: LES DI,string ;把段地址:偏移地址存到 ES:DI.LFS 传送目标指针,把指针内容装入 FS.例: LFS DI,string ;把段地址:偏移地址存到 FS:DI.LGS 传送目标指针,把指针内容装入 GS.例: LGS DI,string ;把段地址:偏移地址存到 GS:DI.LSS 传送目标指针,把指针内容装入 SS.例: LSS DI,string ;把段地址:偏移地址存到 SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装入 AH.SAHF 标志寄存器传送,把 AH 内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32 位标志入栈.POPD 32 位标志出栈. 二、算术运算指令 ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的 ASCII 码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的 ASCII 码调整.DAS 减法的十进制调整.MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送 AH 和 AL(字节运算),或 DX 和 AX(字运算),AAM 乘法的 ASCII 码调整.DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送 AL,余数回送 AH, (字节运算);或 商回送 AX,余数回送 DX, (字运算).AAD 除法的 ASCII 码调整.CBW 字节转换为字. (把 AL 中字节的符号扩展到 AH 中去)CWD 字转换为双字. (把 AX 中的字的符号扩展到 DX 中去)CWDE 字转换为双字. (把 AX 中的字符号扩展到 EAX 中去)CDQ 双字扩展. (把 EAX 中的字的符号扩展到 EDX 中去) 三、逻辑运算指令 AND 与运算.OR 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上八种移位指令,其移位次数可达 255 次.移位一次时, 可直接用操作码. 如 SHL AX,1.移位1 次时, 则由寄存器 CL 给出移位次数.如 MOV CL,04SHL AX,CL 四、串指令 DS:SI 源串段寄存器 :源串变址.ES:DI 目标串段寄存器:目标串变址.CX 重复次数计数器.AL/AX 扫描值.D 标志 0 表示重复操作中 SI 和 DI 应自动增量; 1 表示应自动减量.Z 标志 用来控制扫描或比较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS 串比较.( CMPSB 比较字符. CMPSW 比较字. )SCAS 串扫描.把 AL 或 AX 的内容与目标串作比较,比较结果反映在标志位.LODS 装入串.把源串中的元素(字或字节)逐一装入 AL 或 AX 中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )STOS 保存串. 是 LODS 的逆过程.REP
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号