文档详情

汇编程序设计--内存操作数及寻址方法 实验报告.pdf

发布:2017-05-29约2.89千字共8页下载文档
文本预览下载声明
《汇编语言程序设计》 实验报告 实验二 内存操作数及寻址方法 实验目的 通过实验掌握下列知识: 1、DEBUG命令:A,T,D,F,G; 2、数据在内存中的存放方式和内存操作数的几种寻址方式; 3、汇编指令:INC,DEC,LOOP,INT 3的应用; 4、汇编语言伪指令:BYTE PTR和WORD PTR的应用。 实验内容和步骤 一、内存操作数及各种寻址方式使用 程序内容: 寻址方式: MOV AX,2000 MOV [200],AX ;直接寻址 MOV BX,210 MOV BYTE PTR[BX],50 ;寄存器间接寻址 MOV CL,40 INC BX MOV [BX],CL ;寄存器间接寻址 DEC CL MOV SI,5 MOV [BX+SI],CL ;基址加变址寻址 MOV [BX+SI+1],CL ;基址变址相对寻址 MOV WORD PTR[BX+SI+2],1234 ;基址变址相对寻址 操作步骤 1)用A命令键入上述程序,并用T命令逐条运行。 2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注 意是什么寻址方式。 注:D命令显示结果时,双字节数在内存的存放是高地址对应高数据位; 指令中出现的BYTE PTR及WORD PTR是因为操作数的宽度必须一致。 图 2-1 键入程序 图2-2 U命令查看程序 图2-3 T命令逐条运行,用D命令检查有关内存单元的内容 相对应的寻址方式见程序处标注。 二、求累加和程序 程序内容: MOV BX,200 MOV CX,9 XOR AX,AX ADD AL,[BX] ;按字节相加 ADC AH,0 ;若有进位则到AH中 INC BX LOOP 108 INT3 操作步骤: 1)进入DEBUG环境。 2)用命令F 200 L10 40 在内存200H-20FH地址处填入一系列值40H。 图 2-4 用命令F 200 L10 40 在内存200H-20FH地址处填入40H并查看 3)用命令A 100 将上述程序键入到100H开始的内存中。 图2-5 键入程序 图2-6 U命令查看键入的程序 注:LOOP指令用到108H号地址,即为ADD指令的当前地址,构成一个循环。 4)用命令G =100 执行该程序段,程序运行后停在INT 3 指令上,此时观察AX寄存器 的值为240H,即为9个40H的和。 运行命令 G (Go)从指定地址处开始运行程序,直到遇到断点或者程序正常结束。 G [=地址] [ 断点地址1,断点地址2,..., 断点地址10] G 命令等号后的地址指定程序段运行的起始地址,如不指定则从当前的CS : IP 开始运 行。断点地址如果只有偏移地址,则默认是代码段CS;断点可以没有,但最多只能有10个。 图2-7 GO命令运行 注:INT 3指令是一条断点中断指令,程序遇到该指令则停止。 5)用T =100命令单步执行,观察IP、CX及AX寄存器的值,分析程序执行过程。 图 2-8 BX置为0200 图 2-9 CX置为0009 图 2-10 AX清零 图 2-11 寄存器间接寻址,(AL)=00H与[BX]=40相加 图 2-12 AH进位加 图 2-13 BX增加一 图
显示全部
相似文档