【参考文档】东华大学微机实验报告答案(软件) (3000字)-精选word文档 (28页)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
== 本文为word格式,下载后可方便编辑和修改! == 东华大学微机实验报告答案(软件) (3000字)
目录
实验一 DEBUG的启动及其基本命令的使用实验二内存操作数及寻址方法实
验三汇编语言程序的调试与运行实验四查表程序设计实验五系统功能调用实验六分支程序设计实验七循环程序设计实验八子程序设计实验九综合程序设计实验心得体会参考文献
实验一 DEBUG的启动及其基本命令的使用
源程序:(指导书中给出)
DATA SEGMENT
STRING1 DB 'Move the cursor backward'STRING2 DB 'Move the cursor backward'MESS1 DB 'Match.',13,10,'$'MESS2 DB 'No Match.',13,10,'$' DATA ENDS
STACK SEGMENT STACKDB 40 DUP (?) STACK ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DATA,ES:DATA,SS:STACK
MAIN PROC FAR START: PUSH DSXOR AX,AX PUSH AX
MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AX
LEA SI,STRING1LEA DI,STRING2CLD
MOV CX,25REPZ CMPSBJZ MATCH
LEA DX,MESS2JMP SHORT DISP MATCH: LEA DX,MESS1 DISP:MOV AH,09hINT 21H RET
MAIN ENDP PROGNAM ENDS END START
运行结果:
用DEBUG调试将输出字符串改为‘No Match’
用E指令修改“backward”为“forward”
再次用d命令查看修改结果。
用g命令运行程序
实验二内存操作数及寻址方法
1、(1)程序说明:设堆栈指针SP=201XH,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序。
(2)调试说明:对SP的地址分配不到201X,计算机自动分配为0000,此时我就人为的把堆栈的首地址定义为201X。(3)写出源程序清单和执行结果:
源程序:
STACK SEGMENT STACK DW 100 DUP(0) STACK ENDS CODE SEGMENT
ASSUME SS:STACK,CS:CODE START:MOV AX,3000H MOV BX,5000H MOV SP,201XH
PUSH AX ;将AX中的内容压栈 MOV AX,BX ;BX中的内容给AX POP BX
MOV AH,4CH INT 21H CODE ENDS
END START
用debug调试结果:
2、程序说明:用masm和link 对以下程序进行汇编和连接,调试程序在DEBUG 调试程序状态下进行。用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。
源程序:
DATA SEGMENTORG 0300H
A D
B 12H,23H,34H,45H,56H,67H,78H,89H,9AH DATA ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DATA START: MOV AX,DATAMOV DS,AX
MOV BX,0300H
MOV AX,0300H ;立即数寻址
MOV AX,[0300H] ;存储器寻址方式中的直接寻址方式MOV AX,[BX] ;寄存器间
接寻址MOV SI,2
MOV AX,0001[BX];基址寻址MOV AX,[BX][SI] ;基址加变址
MOV AX,0001[BX][SI] ;带偏移量的基址加变址MOV AH,4CHINT 21H PROGNAM ENDS END START
用debug调试结果:
实验三算术运算指令
1、程序说明:编写三个完整的汇编语言源程序,完成以下计算。其中X、Y、Z、R、W均为存放16位带符号数单元的地址。
(1)Z←W+(Z-X)
(2)Z←W-(X+6)-(R+9)
(3)Z←(W*X)/(Y+6),R←余数
2、调试说明:当编译完成后,计算机未能生成.OBJ的文件,经检查错误发生
在ADD使用上,我把两个寄存器操作数同时用在ADD语句里,结果出错了。把ADD语句稍作写该后,程序运行正确。
3、写出源程序清单和执行结果
本实验我们只做前两个,即:(1)Z←W+(Z-X);(2)Z←W-(X+6)-(R+9)
源程序:
(1) Z←W+(Z-X)
DATA SEGMENT
X DD 0001H
Z DD 0003H
W DD 0005H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV AX,X
MOV BX,Z
SUB BX,AX
MOV AX,W
ADD BX,AX
MOV Z,BX
MOV AH,4CH
INT 21H
CODE ENDS
END START
用debug调试结果:
源程序:
(2)Z←W-(X+6)-(R+9)DATA SEGMENT
X DW 0006H
R DW 003AH
W DW 0110H
Z DW ?
DATA ENDS