微机实验二 数字处理程序(一)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数据处理程序(一)

实验目的:

1、进一步学习、掌握汇编程序调试方法

2、弄清子程序调用和返回过程

3、通过实验调试乘法、除法程序,弄清多字节乘除法程序的基本算法和

程序设计方法

实验内容:

1、源程序的编辑

2、源程序的剪辑、编译、链接

3、汇编程序调试,完成相关数据的记录和分析

实验步骤:

一、程序剪辑和编辑

1、下面是一段主程序模板,请将L8086软件包中的乘法和除法程序

的主体部分拷贝粘贴在指定的位置,以MAIN.ASM文件名保存;-------------------------------------------------------------------------

STACK SEGMENT STACK 'STACK'

DB 1024 DUP (0)

STACK ENDS

;----------------------------------------------------------------------------

;define data segment

DATA SEGMENT

;------------------------------------------- ;地址分配

R0 DW (?) ;0000H

R1 DW (?) ;0002H

R2 DW (?) ;0004H

R3 DW (?) ;0006H

R4 DW (?) ;0008H

R5 DW (?) ;000AH

R6 DW (?) ;000CH

R7 DW (?) ;000EH

;----------------------------------------------------------------------------------

X DD 12345678H ;0010H~003H

Y DD 87654321H ;0014H~0017H

Z DD 55555555H ;0018H~001BH

;------------------------------------------------------------------------------------

buffer0 DB (?) ;001CH

buffer1 DB (?)

buffer2 DB (?)

buffer3 DB (?)

buffer4 DB (?)

buffer5 DB (?)

buffer6 DB (?)

buffer7 DB (?)

;----------------------------------------------------

DATA ENDS

;---------------------------------------------------------

;define code segment

PROGRAM SEGMENT

ASSUME CS:PROGRAM, DS:DATA, SS:STACK

;******************************************************* MAIN PROC FAR

START: PUSH DS ;return DOS standard program MOV AX,0

PUSH AX

MOV AX,DATA ;set DS

MOV DS,AX

;--------------主循环程序-------------------------------------------

DO_WAIT:

CALL BMUL

CALL BDIV

; CALL KEY_SCAN

; CALL BCTD

; CALL DELAY

JMP DO_WAIT

RET

MAIN ENDP

;----------------以下为过程子程序------------------------------------

;===============R2R3*R6R7=R4R5R6R7================== BMUL PROC NEAR

;……

BMUL ENDP

;------------R4R5R6R7/R2R3=R6R7--------------------

BDIV PROC NEAR

;……

BDIV ENDP

;---------------二翻十程序--------------------------------

BCTD PROC NEAR

RET

BCTD ENDP

;-----------------软件延时----------------------------------

DELAY PROC NEAR

RET

DELAY ENDP

;-------------------键盘扫描--------------------------------

KEY_SCAN PROC NEAR

RET

KEY_SCAN ENDP

;------------------------------------------------------------

PROGRAM ENDS

END START

;---------------------------------------------------------------------------------------

2、将程序编译连接成可执行文件。

二、程序载入

1、用DEBUG命令将程序载入到内存

2、用反汇编U命令观察和记录以下信息:

主程序起始地址:[ : ]

主程序结尾地址:[ : ]

乘法程序起始地址:[ : ]

乘法程序结尾地址:[ : ]

除法程序起始地址:[ : ]

除法程序结尾地址:[ : ]

代码段段地址:CS=

用户数据段段地址:DATA=

当前系统数据地段段地址:DS=

乘法子程序入口地址:BMUL=

除法子程序入口地址:BDIV=

3、用R命令观察记录一下信息

DS=

ES=

SS=

SP=

4、执行程序G0A回车,用D0命令观察并记录以下信息

相关文档
最新文档