1、汇编语言程序设计 复习提纲、 基础知识1二十六十进制之间的转换。2B H D:各区分符号。3补码表示法: 正数:原码 8 位补码取值范围 -128-+127负数:取反加 1。4补码特性:X 补 求补 -X补 求补 X补所以减法运算可转为两数求补后相加:X-Y 补 =X补 +-Y补5常见的 ASCII 码:数字(0-9 ),大、小写字母( A-Z)、ODH、OAH、0CH(30H-39H) (41H-5AH、61H-7AH)6.存储信息的基本单位是:位(二进制位)8 位为一字节,16 位为一字。每一个存储器的地址 X 存放一个八位的数据 (X)7.物理地址=段地址*10H+ 偏移地址。 (五位十
2、六进制数)逻辑地址=段地址:偏移地址。8.寄存器组:AX、BX、CX、 DX、DS、CS、SS、ES、SP、BP、SI、DI、IP、PSW标志位:SF、ZF、CF、OF、AF、 PF、DF、IF、TF、 寻址方式和指令系统1、 寻址方式立即数 不加括号立即寻址加括号直接寻址 与数据有关的 不加括号寄存器寻址 (七类) 加括号 一个寄存器间接寻址寄存器 (BX、BP、一个十位移量 寄存器相对寻址 SI、DI) 两个寄存器 基址变 址寻址(- 基址+-变址) 两个寄存器十位移量相对基址变址寻址。SHORT 段内直接转移NEAR PTR与转移地址有关 不加括号的寄存器 段内间接转移(四类) WORD
3、 PTRFAR PTR段间直接转移DWORD PTR段间间接转移2、 指令系统MOV DST,SRC 注意:1) 立即数、CS 不能作目的操作数2)立即数不能直接送段寄存器3)不同数据 类型不能传送(8 位 16 位)4)不能在存 储单元之间或段寄存器之间直接传送。5)不影响 标志位。非法指令:MOV 10H,AXMOV CS,AXMOV DS,1000HMOV AL,BXMOV BX,1000HMOV DS,CSPUSH SRC (SP)(SP)-2(SP+1)、(SP)SRC 互逆操作、成对使用POP DST (DST)(SP+1)、(SP)(SP)(SP)+2 XCHG OPR1,OPR
4、2 注意:1)不能用立即数、段寄存器 2)存储器之间不能交换。非法指令:XCHG AX,DSXCHG AL,100XCHG BX,SIIN AL/AX,PORT/DX (PORT=0-FFH)OUT PORT/DX,AL/AXXLAT (AL)(BX)+(AL)表首地址 位移量LEA REG,SRC(存储器) 区别 LEA SI,SOURCE =MOV SI,OFFSET SOURCE MOV SI,SOURCELDS REG,SRCLES REG,SRCLAHF (AH)(PSW)0-7SAHF (AH)(PSW)0-7PUSHFPOPFADD DST,SRCADC DST,SRC 带进位加
5、法INC OPR 加 1,不影响 CF 标志SUB DST,SRCSBB DST,SRC 带借位减法DEC OPR 减 1,不影响 CF 标志NEG OPR 求补 CMP OPR1,OPR2 相减以设置标志位MUL SRC (AX)(AL)*(SRC) SRC 不能为立即数(DX,AX)(AX)*(SRC)IMUL SRC 同上,带 符号数乘DIV SRC (AX)/(SRC) 商(AL)、余 (AH) SRC 不为立即数(DX,AX)/(SRC)商(AX)、余 (DX) IDIV SRC 同上,带符号数除CBW 字节(B)扩展为字(W)CWD 字(W)扩展为双字(DW)位操作:AND DST
6、,SRC 特定位清零(0)OR DST,SRC 特定位置 1(1)NOT OPRXOR DST,SRC 特定位取反(1)TEST OPR1,OPR2 检测某位为 0?1?移位指令:SHL、SAL、SHR、SAR、ROL、ROR、 RCL/RCR OPR,CNT(1/CL)左移乘 2;右移除 2;循环移四次,高低四位交换。串操作(略)转移指令:JMP、JZ/JE、无符号数 A:大于 有符号数 G:大于B:小于 L:小于E:等于 E:等于N:不 N:不LOOP、CALL、RETINT 、IRET控制指令:STI、CLI;STD、CLD、 汇编语言程序格式1、 上机过程:1)建立.ASM 源文件2)
7、用 MASM 将 .ASM.OBJ 文件3)用 LINK 将.OBJ.EXE 文件4)直接运行.EXE 文件2、 伪指令:DB、DW、DD、DQ、DT 定义变量1)不同类型在存储器中存放不同2)类型决定字长,指令中应类型匹配EQU 赋值 (不许重复定 义)段名 SEGMENT 堆栈 段加“STACK” 。:段名 ENDS ASSUME CS:代码段名,DS :数据段名,END 标号 程序结 束EVEN (定偶数地址 );ORG 常数表达式(定位);$ (当前偏移地址值)3、 程序格式:1)名字 操作 项 操作数,操作数 ;注释2)几种定界符: 变量后用空格()标号后用冒号(:)操作数间用逗号(
8、, )注释前用分号(;)3)名字注意:数字不能作首字符, “。”只能作首字符不用指令助记符、寄存器名、运算符等保留字。4)操作符:逻辑操作符与逻辑 指令的区别OFFSET 变量/标 号SEG 变量/标 号BYTE/WORD/DWORD/NEAR/FAR PTR 变量/标号5)ASM 文件格式: 定义段开始、ASSUME、初始化 DS、ES。程序结束、 汇编语言程序设计的基本技术1、 了解顺序、分支、循环程序的结构形式及流程图第五章 子程序1、 过程名 PROC 属性:过程名 ENDPCALL 过程名;RET;寄存器保护2、 参数传送的三种方法:寄存器、 变量、堆 栈第六章 输入/输出与中断1、
9、 三类信息:数据、状态、控制2、 计算中断向量首地址 N*4、找中断向量中断过程与调子程序的不同:PSW 压栈;IF=0、 TF=0;IRET3、BIOS 中断号: 键盘 INT 16H 、显示器 INT 10H打印机 INT 17H 、串行器 INT 14H 、鼠标 INT 33H4、DOS 键盘中断:AH=1 、7、8、A 功能5、显示中断:INT 10H 中 AH=1、2、9INT 21H 中 AH=2、9考题题型:、 填空(10 分) 10、 判断(10 分) 10、 选择题(10 分) 10、 计算(16 分/8 分) 4/2、 找错、改正(20 分) 5、 分析程序运行结果、功能( 14 分) 2/3、 编程(20 分) 2