东华大学微机实验报告答案(软件)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
实验一DEBUG的启动及其基本命令的使用实验二内存操作数及寻址方法
实验三汇编语言程序的调试与运行
实验四查表程序设计
实验五系统功能调用
实验六分支程序设计
实验七循环程序设计
实验八子程序设计
实验九综合程序设计
实验心得体会
参考文献
实验一 DEBUG的启动及其基本命令的使用
源程序:(指导书中给出)
DA TA SEGMENT
STRING1 DB 'Move the cursor backward'
STRING2 DB 'Move the cursor backward'
MESS1 DB 'Match.',13,10,'$'
MESS2 DB 'No Match.',13,10,'$'
DA TA ENDS
STACK SEGMENT STACK
DB 40 DUP (?)
STACK ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DA TA,ES:DA TA,SS:STACK
MAIN PROC FAR
START: PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
LEA SI,STRING1
LEA DI,STRING2
CLD
MOV CX,25
REPZ CMPSB
JZ MA TCH
LEA DX,MESS2
JMP SHORT DISP
MATCH: LEA DX,MESS1
DISP: MOV AH,09h
INT 21H
RET
MAIN ENDP
PROGNAM ENDS
END START
运行结果:
用DEBUG调试将输出字符串改为‘No Match’
用E指令修改“backward”为“forward”
再次用d命令查看修改结果。
用g命令运行程序
实验二内存操作数及寻址方法
1、(1)程序说明:设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序。
(2)调试说明:对SP的地址分配不到2000,计算机自动分配为0000,此时我就人为的把堆栈的首地址定义为2000。
(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,2000H
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中的内容是什么。
源程序:
DA TA SEGMENT
ORG 0300H
A D
B 12H,23H,34H,45H,56H,67H,78H,89H,9AH
DA TA ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DA TA
START: MOV AX,DATA
MOV 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,4CH
INT 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)
DA TA SEGMENT
X DD 0001H
Z DD 0003H
W DD 0005H
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DA TA
START: MOV AX,DA TA
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调试结果: