第03章语言汇总.ppt

第三章  汇编语言 本章重点 3.1 寻址方式 3.2 汇编语言的语句格式 3.3 汇编语言中数据的表示方式 3.4 运算符号 3.5 伪指令 3.6 汇编语言的上机过程 3.7 汇编语言程序的调试过程    3.1 寻址方式 3.1.1 操作数的种类 3.1.2 九大寻址方式 3.1.3 段跨越与段更换 3.1.1 操作数的种类 什么是寻址方式? 指令中提供操作数或操作数地址的方法。 操作数: 源操作数:其值不变化。 目标操作数:其值有可能变化。 (1) 立即操作数:指令要操作的数据在指令代码中直接给出。 MOV AL,10H ;指令码 B010 (2)寄存器操作数:指令要操作的数据存放在CPU的寄存器中。 MOV AL,BL ; 指令码 88D8 (3) 存储器操作数:指令要操作的数据在存储器(内存)中存放。 MOV AL,[1234H] ; (4)I/O端口操作数:指令要操作的数据来自或要送到I/O端口。 IN AL,20H ;指令码E420 3.1.2 九大寻址方式 1. 固定寻址 2. 立即数寻址 3. 寄存器直接寻址 4. 寄存器间接寻址 5. 存储器直接寻址 6. 基址寻址 7. 变址寻址 8. 基址变址寻址 9. 数据串寻址 1. 固定寻址 指令要操作的数据在指令中并没有明确给出,但隐含在指令中。 例: MUL BL ; AL*BL=AX 在该指令中, AL和AX并未给出. 2. 立即数寻址 指令要操作的数据包含在指令码中。 例: MOV AX,1234H 其指令码为B83412 注意:只能用于源操作数,不能用于目标操作数。 3. 寄存器直接寻址 指令要操作的数据在寄存器中存放。 例:MOV AL,3 注意:寄存器直接寻址即可用于源操作数,也可以用于目标操作数,若两个操作数都为寄存器直接寻址,则两个寄存器的类型必须一致。 4. 寄存器间接寻址      在寄存器间接寻址中,操作数位于内存中,操作数的地址位于某个寄存器中,在指令(码)中给出的是该寄存器的名字(编号)。     举例:   MOV AL,[BX] ;指令码:8A07   MOV AX,[SI] ; 指令码:8B04 可以用于寄存器间接寻址的寄存器有: BX SI DI BX SI DI的默认数据段DS 注意:汇编语言的两个操作数不能同时来源于存储器。 5. 存储器直接寻址 在存储器直接寻址中,指令直接给出的是操作数在内存中存放的地址。 例如: MOV AL,[1000H] MOV BX,[1000H] 注意:隐含段为数据段。此方式即可用于源操作数,也可用于目标操作数,但两个操作数不能同时为存储器直接寻址方式。 在基址寻址中,操作数位于内存中,操作数的地址由基址寄存器BX或BP与一个位移量相加给出,在指令(码)中给出的是该基址寄存器的名字(编号)及位移量。 举例: MOV AL,[BX+1234H] 注意:若为BX,则隐含段为数据段。 若为BP,则隐含段为堆栈段。 3.1.3 段更换与段跨越 当要操作的数据不在隐含段中时, 就需要段更换或段跨越。 MOV BX,0100H MOV AL,CS:[BX] (1)MOV AX,[1024] (2)MOV [-100],BL (3)MOV [BX],[SI-10] (4)MOV [AX+10],BL (5)MOV [BX+BP-50],DX (6)MOV [SI+DI],CL (7)MOV [SI+BX-100],100 (8)MOV BX,[BX+SI-5] (9)MOV [BX],AX 3.2 汇编语言的语句格式 注意: 1、机器指令的标号以冒号结束,伪指令的标号后不能加冒号。 2、标号不能重复定义,但是可以多次使用。 3、标号/变量的三大属性 标号是可执行语句的地址符号。 变量是一个可以存放数据的存储单元的名字,变量名表示该数据区或存储区的第一个数据单元的首地址。 标号和变量都具有以下

文档评论(0)

1亿VIP精品文档

相关文档