西南交大微机接口实验一实验报告.docVIP

  • 409
  • 0
  • 约2.92千字
  • 约 8页
  • 2016-09-12 发布于重庆
  • 举报
西南交大微机接口实验一实验报告

微机原理与接口实验报告(一) 班级:09级计通1班 学 姓名:黄静 实验目的 掌握汇编语言程序的上机过程与debug调试方法 掌握汇编语言运算指令ADD、ADC、SUB、SBB、MUL、IMUL 实验内容 一、比较两个字符串string1和string2所含的字符是否相同。若相同则显示’Match’ ,否则,显示‘No match!’。 1、源程序 datarea segment string1 db Move the cursor backward. string2 db Move the cursor backward. ; mess1 db Match.,13, 10,$ mess2 db No Match!,13, 10,$ datarea ends prognam segment main proc far assume cs:prognam,ds:datarea,es:datarea start: push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov ax,datarea mov es,ax ; lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match: lea dx,mess1 disp: mov ah,09 int 21h ; ret main endp prognam ends end start 2、按照上课所讲的操作步骤对以上所给源程序进行调试,熟悉上机操作过程。 3、用debug逐条观察各条指令执行前后的相关寄存器及标志位的变化。 标志位的符号表示。 标志名 标志为1 标志为0 OF 溢出(是/否) OV NV DF 方向(减量/增量) DN UP IF 中断(允许/关闭) EI DI SF 符号(负/正) NG PL ZF 零(是/否) ZR NZ AF 辅助进位(是/否) AC NA PF 奇偶(偶/奇) PE PO CF 进位(是/否) CY NC 用debug跟踪,调试上述程序 用u命令列出反汇编程序,与源程序清单比较 跟踪到语句mov es , ax,检查语句执行后ds寄存器的变化 通过跟踪到语句mov es , ax,然后执行后,发现ds寄存器中ES的值发生了变化。 语句mov ds , ax执行前,发命令d ds:0,检查显示的内容是否与程序数据段定义的单元内容一致。 在执行语句mov ds , ax前,发命令d ds:0,检查显示的内容与程序数据段定义的单元内容是一致的。其中“.”代表某些字符的ASC‖码无法显示。 语句mov ds , ax执行后,发命令d ds:0,检查显示的内容是否与程序数据段定义的单元内容一致。 在执行语句mov ds , ax后,发命令d ds:0,检查显示的内容是否与程序数据段定义的单元内容“Move the cursor backward.”是一致 根据你所运行的程序,指明DS和ES的值。数据段偏移地址为000AH至0015H单元的内容。 红色矩形框代表的是执行“数据段偏移地址为000AH至0015H单元的内容。”的命令,而蓝色矩形框代表是“数据段偏移地址为000AH至0015H单元的内容。” 继续跟踪程序,检查程序执行过程中ax,dx等寄存器的变化 通过逐条执行“ax,dx”周围的命令,观察寄存器的变化,得到如上结果。 4、实验数据及结果 实验数据及结果如上图和注释。 二、完成下面的双字乘法程序 MULTCND DW 3206H ;被乘数低位字 DW 2521H ;被乘数高位字 MULTPLR DW 6400H ;乘数 PRODUCT DW 0 ;乘积 DW 0 DW 0 编写源程序并用DEBUG显示结果。是否结果中出现4字,为什么,请说明。 data segment multcnd dw 3206h,2521h multplr dw 6400h,0 dw 4 dup(?) data ends stack segment para stack stack db 100 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack,es:data start proc far begin:

文档评论(0)

1亿VIP精品文档

相关文档