微机实验二 数字处理程序(一)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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命令观察并记录以下信息