微机原理实验报告
—实验二 熟悉汇编程序建立
及其调试方法
姓名: 学号:
一、 实验目的
1、熟悉汇编语言源程序的框架结构,学会编制汇程序。 2、熟悉汇编语言上机操作的过程,学会汇编程序调试方法。 二、 实验内容
1、学习编写汇编语言源程序的方法,了解数据存放格式。 2、阅读给出的程序,找出程序中的错误。
3、通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。 三、 实验预习
1、阅读实验指导第一章的内容,了解汇编语言程序建立、汇编、链接、调试的全过程。
2、下面的汇编语言源程序有错误的,试给程序加注释。通过调试手段找出程序中的错误并修改之。写出程序的功能,画出程序流程图。 (1)程序修改前:
STACKSG: SEGMENT PARA STACK ‘STACK’ ;不能有冒号 DB 256 DUP(?) STACKSG ENDS
DATASG: SEGMENT PARA ‘DATA’ ;不能有冒号 BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 COUNT EQU 20 MAX DW ? DATASG ENDS
CODESG: SEGMENT ;不能有冒号 ASSUME SS:STACKSG , CS:CODESG ASSUME DS:DATASG ORG 100H
BEGIN MOV DS, DATASG ;BEGIN: 应改为 MOV AX , DATASG
MOV DS, AX
LEA SI ,BLOCK
MOV CX, COUNT DEC CX
MOV AX , [SI] CHKMAX ADD SI,2 ;应加冒号CHKMAX: CMP [SI] , AX JLE NEXT MOV AX , [SI]
DEC CX ;删除 NEXT: LOOP CHKMAX MOV MAX ,AX MOV AH, 4CH INT 21H CODESG ENDS
END BEGIN
(2)程序修改后:
STACKSG SEGMENT PARA STACK ‘STACK’ DB 256 DUP(?) STACKSG ENDS
DATASG SEGMENT PARA ‘DATA’ BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 COUNT EQU 20 MAX DW ? DATASG ENDS
CODESG SEGMENT ASSUME SS:STACKSG , CS:CODESG ASSUME DS:DATASG ORG 100H
BEGIN MOV AX , DATASG MOV DS, AX LEA SI ,BLOCK MOV CX, COUNT DEC CX
MOV AX , [SI] CHKMAX: ADD SI,2 CMP [SI] , AX JLE NEXT
MOV AX , [SI] NEXT: LOOP CHKMAX MOV MAX ,AX MOV AH, 4CH