微机原理实验(报告)
题 目 实验二 学 院 信息工程 专 业 信息工程 学 号 姓 名 指导教师 乐金松
(2016年4月17日)
实验二 数据处理程序(一)
实验目的:
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 ;0002H ;0004H ;0006H ;0008H ;000AH
R1 DW (?) R2 DW (?) R3 DW (?) R4 DW (?) R5 DW (?)
R6 DW (?)
R7 DW (?)
;000CH ;000EH
;----------------------------------------------------------------------------------
X DD 12345678H Y DD 87654321H Z DD 55555555H
;0010H~003H ;0014H~0017H ;0018H~001BH
;------------------------------------------------------------------------------------ buffer0 DB (?) 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
;001CH
;******************************************************* 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 ;… … ENDP
BMUL
;------------R4R5R6R7/R2R3=R6R7-------------------- BDIV
PROC NEAR ;… … ENDP
BDIV
;---------------二翻十程序-------------------------------- BCTD
PROC NEAR RET ENDP
BCTD
;-----------------软件延时---------------------------------- DELAY
PROC NEAR RET ENDP
DELAY
;-------------------键盘扫描-------------------------------- KEY_SCAN
PROC NEAR
RET ENDP
KEY_SCAN
;------------------------------------------------------------ PROGRAM ENDS
END START
;---------------------------------------------------------------------------------------2、将程序编译连接成可执行文件。
二、 程序载入
1、用DEBUG命令将程序载入到内存 2、用反汇编U命令观察和记录以下信息: