合工大汇编语言考试复习
一.Debug的使用1. Debug调试坏境 大小写不敏感 只有16进制数(3)以空格或逗号作为各项命令之间的分隔符 个别指令不支持:SAL 跳转指令使用2. 命令行 程序调试命令Debug 绝对路径 PARM1 PARM2 Debug命令参数地址段地址:偏移地址偏移地址地址范围开始地址结束地址 帮助99显示存储单元命令D ADDRESS或RANG 修改存储单元内容命令 -E ADDRESS LIST;E ds : 100"This is the text example" 检查和修改寄存器内容命令-/? REGISTER NAME;汇编命令A ADDRESS 反汇编命令-U ADDRESS或RANGE运行命令G =ADDRESS ADDRESS2 ADDRESS3 跟踪命令-T=ADDRESS VALUE;继续命令-P =ADDRESS VALUE退出命令-Q1. 汇编语言程序设计基本步骤 分析问题 确定算法 绘制流程图,模块图 确定数据结构;进行数据段设计 编写程序 调试2. 程序结构*顺序结构*循坏结构*分支结构:判定条件+事件处理-子程序结构三.汇编语言程序设计1. CPUCPU =算术逻辑部件+控制部件+寄存器组CPU作用:执行算术与逻辑运算、控制指令的执行2. 系统总线数据总线+地址总线+控制总线数据总线:与数据存取位数对应,数据总线越宽,处理能力越强。地址总线:N位地址总线提供2"不同地址:02"-1控制总线:控制CPU与内存和I/O设备之间的数据传输方式3. 内存单元:地址(编号)与值(内容)。eg. (100H) =34H4. 存储设备寄存器与存储器的比较:寄存器存储器在CPU内部 访问速度快 容量小,成本高 用名字表示没有地址在CPU外部访问速度慢容量大,成本低用地址表示地址可用各种方式形成AX累加器BX基址寄存器CX计数器DX数据寄存器IP指令指针寄存器CS代码段段寄存器DS数据段段寄存器SS堆栈段段寄存器ES附加段段寄存器6. 状态标志位(1)进位标志CF(2)零标志ZF(3)符号标志SF(4)溢出标志OF(5)奇偶标志PF :仅反映最低八位中1的个数,奇数为1,否则为0(6)辅助进位标志AF(7)中断允许标志IF: IF = 1,允许中断(8)陷阱标志TF, TF = 0,处理器正常工作;TF=1,处理器单步执行命令7. 80X86 CPU的工作模式(1)实模式(2)保护模式(3)虚拟8086模式运行DOS应用程序,即可运行8086应用程序8. 物理地址=16 x段地址(DS) +偏移地址9. CPU典型操作(1)取地址 指令单元地址=(CS) X 10H + IP(2)段栈操作段栈数据地址=(CS) xlOH+偏移地址(3)内存数据内存数据地址=(DS) X10H+偏移地址四.8086指令系统1. 指令一般格式【标号:】操作码 操作数1操作数2:注释】操作数:操作数据或数据所在地址2. 操作数形式(1)立即操作数:指令操作数是立即数(常量),只能是源操作数(2)寄存器操作数:操作数存放在寄存器中,指令中使用寄存器名(3)内存操作数:操作数放在内存中,指令中给出内存地址,通常为有效地址EA, 段地址在某个段寄存器中3. 寻址方式是指在指令中用以说明操作数所在地址的方法4. 8086寻址方式立即寻址方式:操作数在指令中给出,作为指令机器码的一部分存储只能用于源操作数MOVAL,34H:机器码:B034MOVAX,0034H;机器码:B83400寄存器寻址方式MOVAX ,BXMOVAL ,BHCS (代码段寄存器)/ IP (指令指针寄存器)不能用作目的操作数内存操作数寻址方式直接寻址方式:内存操作数的偏移地址由指令直接给出.MOV AX , 2000H 寄存器间接寻址方式:指定某个地址寄存器(SI、DI、BX、BP)的内容作为内存操 作数的偏移地址.MOV AX, BX MOV BP, AL寄存器相对寻址方式:MOV AX , SI + 2M0VBP-6H, AL基址变址寻址方式:指定基址寄存器(BX,BP)、变址寄存器(SI, DI)内容相加作 为内存操作数的地址相对基址变指方式:MOV AL, SI + BX + 2 MOV AL,2SI + BX M0VBX+DI-16H, DX5. Notice!(1)变量名编译后用偏移地址代替MOV AL, X -> MOV AL , 0001H(2)偏移地址只能是16位,超过16位,则忽略不计.若 BX = OXFFFF, Dl=lz 则BX + DI + 2 = 2(3)两个操作数不能同时为内存6.指令系统(1)8086指令系统分成六人类数据传输指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令CPU控制指令与标志位处理指令(2)两个操作数人小匹配原则隐式匹配:两者中有一个确定,CPU自动匹配显示匹配:两者人小都不确定,显示转换。不确定操作数:irn,Mern(变量确 定)(3)XCHG (交换指令)XCHG reg / mem z reg/mem注释:不能同为mem(4)堆栈指令特点:先进后出(5)符号扩展指令CBW、CWD、CWDE、CDQ格式:无操作数功能:将符号位进行扩展CBW AL->AXCWD AX->(DX,AX)CWDE AX->EAXCDQ EAX->(EDX , EAX)符号扩展指令MOVSX格式:MOVSX DST , SRC功能:将符号位进行扩展,并存放于与DST中MOVSX regl6 zreg8/mem8MOVSX reg32eg8/mem8/regl6/meml6