当前位置:文档之家› 学生设计性实验报告

学生设计性实验报告

⑶对实验的自我评价:
指导老师评语及得分:
签名:年月日
divdi
movbx,dx
movdl,al
adddl,30h
movah,2
int 21h
ret
dec_div endp
DISPB PROC
MOVCX,16
REPEAT1:
ROL BX,1
MOVDL,BL
ANDDL,1
adddl,30h
movah,2
int 21h
LOOP REPEAT1
RET
DISPB ENDP
crlf proc near
movdl,0ah
movah,2
int 21h
movdl,0dh
movah,2
int 21h
ret
crlf endp
CSEGENDS
ENDMAIN
进行反汇编成功:
进行了统计结果与数据结果一致:
实验二代码:
DSEGSEGMENT
BLOCKdb2,3,5,1,3,4,5,9,4,3,2,1,9,8,0,0,4,23,29,100,54
实验一代码:
DSEGSEGMENT
BLOCKdb1,2,3,-1,3,-4,-5,9,-4,-3,-2,-1,9,8,5,4,4,66,-100,36;此处的取值范围-128-127
COUNTEQU$-BLOCK
M_DATADW?
P_DATADW?
DSEGENDS
CSEGSEGMENT
assumecs:CSEG, ds:DSEG
OUSH:
incM_DATA
next1:
incsi
loop next
RET
TJ ENDP
DISPD PROC
movdi,10000d
call dec_div
movdi,1000d
call dec_div
movdi,100d
call dec_div
movdi,10d
call dec_div
movdi,1d
COUNTEQU$-BLOCK
M_DATADW?
P_DATADW?
DSEGENDS
CSEGSEGMENT
assumecs:CSEG, ds:DSEG
MAIN PROC FAR;主程序入口
movax, dseg
movds, ax
;此处添加主程序代码
CALL TJ;统计个数
MOVBX,M_DATA
CALL DISPD;以十进制形式显示
call dec_div
RET
DISPD ENDP
dec_div proc near
movax,bx
movdx,0
divdi
movbx,dx
movdl,al
adddl,30h
movah,2
int 21h
ret
dec_div endp
DISPB PROC
MOVCX,16
REPEAT1:
ROL BX,1
int 21h
MAIN ENDP
TJ PROC
movcx,COUNT
leasi,BLOCK
next:
cmpbyte ptr [si],0
jg zhsh
jz next1
incP_DATA
jmp next1
zhsh:
incM_DATA
next1:
incsi
loop next
RET
TJ ENDP
DISPD PROC
movdi,10000d
call dec_div
movdi,1000d
call dec_div
movdi,100d
call dec_div
movdi,10d
call dec_div
movdi,1d
call dec_div
RET
DISPD ENDP
dec_div proc near
movax,bx
movdx,0
DISPH PROC
movch,4
rotate:
movcl,4
rol bx,cl
moval,bl
andal,0fh
addal,30h
cmpal,3ah
jl printit
addal,7h
printit:
movdl,al
movah,2
int 21h
decch
jnz rotate
RET
DISPH ENDP
printit:
movdl,al
movah,2
int 21h
decch
jnz rotate
RET
DISPH ENDP
crlf proc near
movdl,0ah
movah,2
int 21h
movdl,0dh
movah,2
int 21h
ret
crlf endp
CSEGENDS
ENDMAIN
进行反汇编程序单步调试:
本科学生设计性实验报告
项目组长_陈官亮学号_*******_
成员
专业_物联网_班级_141___
实验项目名称__微机原理上机程序操作___
指导教师及职称____朱老师______
开课学期至_学年__学期
上课时间年月日
一、实验设计方案
实验名称:
实验时间:
小组合作:是○否○
小组成员:
1、实验目的:利用测试与转移指令实现分支。
进行分支条件的比较判断,再利用转移指令(如JNZ、JNC、JA、JB等)实现程序的分支。
3、实验思路(实验内容、数据处理方法及实验步骤等):
1.在BLOCK开始的内存单元中有若干以字节为单位的正、负数,自编程序,试统计其中≧0的个数存放于M_DATA单元中,<0的个数存放于P_DATA单元中。
2.在BLOCK开始的内存单元中有若干以字节为单位的奇、偶数,自编程序,试统计其中偶数的个数存放于M_DATA单元中,奇数的个数存放于P_DATA单元中。
指导老师签名:年月日
二、实验结果与分析
1、实验目的、场地及仪器、设备和材料、实验思路等见实验设计方案
2、实验现象、数据及结果
3、对实验现象、数据及观察结果的分析与讨论:
4、结论:
5、实验总结
⑴本次实验成败之处及其原因分析:
⑵本实验的关键环节及改进措施:
做好本实验需要把握的关键环节:
若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善:
结果输出的个数统计
1、如果将比较指令改为测试指令(加下划线处),程序需做哪些改动?
2、将上述程序修改实现单元中数据奇数、偶数个数的统计。
对于程序的需改在源程序中给出了MAIN PROC FAR;主程序入口
movax, dseg
movds, ax
;此处添加主程序代码
CALL TJ;统计个数
MOVBX,M_DATA
CALL CRLF;显示回车换行
movah,1
int 21h
movax, 4c00h;程序结束,返回到操作系统系统
int 21h
MAIN ENDP
TJ PROC
movcx,COUNT
leasi,BLOCK
next:
TEST byte ptr [si],1
jZ OUSH
incP_DATA
jmp next1
2.利用比较与转移指令实现分支。
2、实验内容与要求
1.利用测试与转移指令实现分支。
程序设计方法:在需要分支的地方用逻辑测试指令TEST进行分支条件的测试判断,再利用各种条件转移指令实现程序分支。
2.利用比较与转移指令实现分支。
程序设计方法:在需要分支的地方用两数的比较指令CMP,或串比较指令CMPS等
MAIN PROC FAR;主程序入口
movax, dseg
movds, ax;此处添加主程序代码
CALL TJ;统计个数
MOVBX,M_DATA
CALL DISPD;以十进制形式显示
CALL CRLF;显示回车换行
;按任意键退出
movah,1
int 21h
movax, 4c00h;程序结束,返回到操作系统系统
MOVDL,BL
ANDDL,1
adddl,30h
movah,2
int 21h
LOOP REPEAT1
RET
DISPB ENDP
DISPH PROC
movch,4
rotate:
movcl,4
rol bx,cl
moval,bl
andal,0fh
addal,30h
cmpal,3ah
jl printit
addal,7h
CALL DISPD;以十进制形式二进制与十六进制的输出
如:CALL DISPH;以十六进制形式显示
CALL CRLF;显示回车换行
CALL DISPB;以二进制形式显示
CALL CRLF;显示回车换行
指导老师对实验设计方案的意见:该生完成较好。89分。
相关主题