微机原理与接口技术实验报告Word文档格式.docx
- 文档编号:18913548
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:26
- 大小:48.64KB
微机原理与接口技术实验报告Word文档格式.docx
《微机原理与接口技术实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验报告Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
?
)
STACKENDS
CODESEGMENTPARAPUBLIC’CODE’;
代码段定义
ASSUMECS
:
CODE,DS
DATA,ES:
DATA,SS
STACK
MAIN
PROCFAR;
定义过程程序
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVSP,2000h
MOVAX,3000h
MOVBX,5000h
PUSHAX
PUSHBX
POPAX
POPBX
RET
MAINENDP;
结束主要部分程序
CODEENDS;
结束代码段
ENDMAIN;
结束汇编
⑵用MASM程序产生.OBJ文件
操作如下:
E:
MASMM1.ASMM1.OBJ
Microsoft(R)MacroAssemblerVersion5.00
Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.
ObjectFilename[HEXASC.OBJ]:
Sourcelisting[NUL.LST]:
Cross-reference[NUL.CRF]:
51576+385928Bytessymbolspacefree
0WarningErrors
0SevereErrors
以上说明汇编过程已经完成。
⑶用LINK程序产生EXE文件
LINKM1.OBJ
Microsoft(R)OverlayLinkerVersion3.60
Copyright(C)MicrosoftCorp1983-1987.Allrightsreserved.
RunFile[M1.EXE]:
ListFile[NUL.MAP]:
Libraries[.LIB]:
LINK程序输出3个文件:
.EXE文件;
.LIB库文件;
.MAP列表文件。
连接过程全部完成,可以执行程序;
⑷在TD状态下用单步运行F8对M1.EXE文件进行调试,观察、记录结果。
TD
进入TD调试软件后用单步执行F8命令从首地址开始执行指令并观察相应变化。
运行结果如下:
―F8
AX=0000BX=0000CX=000DDX=0000SP=2000BP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=0103NVUPDIPLNZNAPONC
17F7:
0103B80030MOVAX,3000
AX=3000BX=0000CX=000DDX=0000SP=2000BP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=0106NVUPDIPLNZNAPONC
0106BB0050MOVBX,5000
AX=3000BX=5000CX=000DDX=0000SP=2000BP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=0109NVUPDIPLNZNAPONC
010950PUSHAX
AX=3000BX=5000CX=000DDX=0000SP=1FFEBP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=010ANVUPDIPLNZNAPONC
010A53PUSHBX
AX=3000BX=5000CX=000DDX=0000SP=1FFCBP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=010BNVUPDIPLNZNAPONC
010B58POPAX
AX=5000BX=5000CX=000DDX=0000SP=1FFEBP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=010CNVUPDIPLNZNAPONC
010C5BPOPBX
AX=5000BX=3000CX=000DDX=0000SP=2000BP=0000SI=0000DI=0000
DS=17F7ES=17F7SS=17F7CS=17F7IP=010DNVUPDIPLNZNAPONC
17F7:
010DF4HLT
―
2.用以上同样的方法,完成下列程序的调试:
编辑、汇编、连接、运行程序,观察、记录结果。
输入以下汇编程序(分号“;
”后面内容不需输入)用单步运行执行程序,按分号后的要求记录结果。
DATASEGMENTPARAPUBLIC‘DATA’
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB512DUP(?
STACKENDS
CODESEGMENTPARAPUBLIC‘CODE’
ASSUMECS:
CODE,DS:
DATA,SS:
STARTPROCFAR
PUSHDS
MOVAX,0
MOVAX,DATA
MOVAX,2000H;
AH=20H
MOVDS,AX;
AL=00HDS=2000H
MOVSS,AX;
SS=2000HAX=2000H
MOVBX,2030H;
BH=20HBL=30H
MOVSI,BX;
SI=2030H
MOVDI,3040H;
DI=3040H
MOVSI,DI;
SI=3040H
MOVSP,50FFH;
SP=50FFH
MOVDX,SP;
DH=50HDL=0FFH
MOVCL,25;
CL=25(19H)
MOVBL,CL;
CL=19HBL=19H
MOVAH,0F0H;
AH=0F0H
MOVCH,AH;
CH=0F0H
MOVBYTEPTR[DI],64;
(DI)=40H
MOVWORDPTR[SI],256;
(SI)=00H(SI+1)=01H
MOVDL,[SI+1];
DL=01H
MOVDH,1+[SI];
DH=01H
MOVAL,1[SI];
AL=01H
MOVWORDPTR[BX][SI],34;
(BX+SI)=22H(BX+SI+1)=00H
MOV[BX+SI+4],BL;
(BX+SI+4)=19H
MOVBP,2[BX+DI];
BP=0100H
MOV[BP],AL;
(BP)=01H
MOVAX,[BP][DI];
AX=8B00H
MOVBL,AL;
BL=00H
MOVES,BX;
ES=2000H
PUSHBX;
SP=50FDH(SP,SP+1)=2000H
PUSHDI;
SP=50FBH(SP,SP+1)=3040H
POPCX;
SP=50FDHCX=3040H
POPDX;
SP=50FFHDX=2000H
XCHGAX,BP;
AX=0101HBP=8B00H
XCHGDH,BL;
DH=00HBL=20H
LAHF;
FLAG=NVUPDIPLNZNAPONC
;
FLAG=00000000
AH=02H
SAHF;
FLAG=NVUPDIPLNZNAPONC;
FLAG=00000000
PUSHF;
SP=50FDH(SP,SP+1)=3102H
POPF;
SP=50FDH
;
FLAG=NVUPDIPLNZNAPONC
NOP
STARTENDP
CODEENDS
ENDSTART
⑵以文件名“E2”存盘;
⑶单步运行程序,每运行一条指令即检查相应结果并予以记录;
⑷利用断点运行、跟踪运行和全速运行等功能调试程序、运行程序并检查结果。
——运行结果:
各寄存器及内存变化如上。
五.思考题
常用的数据传送指令有几种类型?
试归纳并举例说明。
答:
常用的数据传送指令有四种类型:
1.通用数据传送指令
⑴MOVOPRD1,OPRD2
例:
MOVAX,2000H;
AX=2000H
⑵压栈指令——PUSHOPRD
出栈指令——POPOPRD
PUSHAX;
SP=SP-2,(SP,SP+1)=AX
POPAX;
AX=(SP,SP+1),SP=SP+2
⑶交换指令——XCHGPORD1,OPRD2
MOVAX,02FFH
MOVBP,0001H
XCHGAX,BP;
AX=0001H,BP=02FFH
2.累加器专用传送指令
⑴输入、输出指令——IN、OUT
INAX,DX;
AX=(DX+1,DX)
OUTDX,AX;
(DX+1,DX)=AX
⑵换码指令XLAT
XLAT;
AL=(BX+AL)
3.地址传送指令
⑴有效地址送寄存器——LEAREG,SRC
LEASI,DAT1;
SI=ADDR(DAT1)
⑵指针送DS和寄存器——LDSREG,SRC
LDSDI,[BX];
DI=(DS×
16+BX),DS=(DS×
16+BX+2)
⑶指针送ES和寄存器——LESREG,SRC
LESDI,[BX];
16+BX),ES=(DS×
4.标志寄存器传送指令
⑴标志传送指令
LAHF;
AH←PSW的低字节
SAHF;
PSW的低字节←AH
⑵标志进、出栈
PUSHF;
SP←SP-2,(SP+1,SP)←PSW
POPF;
PSW←(SP+1,SP),SP←SP+2
实验二:
算术运算
设计
1.验证算术运算基本指令;
2.正确使用加、减、乘、除程序,为设计综合算术运算程序打好基础;
3.学习独立编程;
4.深入学习、掌握TD调试软件的使用方法。
三.实验内容及步骤
1.加、减法运算
⑴要求
调试以下程序
DATASEGMENTPARAPUBLIC‘DATA’
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB512DUP(?
CODESEGMENTPARAPUBLIC‘CODE’
STARTPROCFAR
MOVAX,2040H;
AH=20H,AL=40H,CF=0
ADDAL,AH;
AH=20H,AL=60H,CF=0
MOVCX,257;
CX=0101H,CF=0
MOVSI,AX;
SI=2060H,
SUBSI,CX;
SI=1F5FH,CX=010H,CF=0
SUBCH,CL;
CH=00H,CL=01H,CF=0
ADCAX,CX;
AX=2061H,CX=0001H,CF=0
MOVWORDPTR[SI],513;
(SI,SI+1)=0201H
ADC[SI],AL;
(SI,SI+1)=0262H,CF=0
SBBAX,[SI];
AX=1DFFH,CF=0
INCBYTEPTR[SI+1];
(SI,SI+1)=0362H
DECBYTEPTR[SI];
(SI,SI+1)=0361H
DAA;
AH=1DH,AL=65H,AF=1,CF=1
AAA;
AH=1EH,AL=0BH,AF=1,CF=1
各寄存器及内存数据如上。
2.加、减法程序设计
试设计、编写程序,计算(UP1)+(UP2)-(UP3),结果存放在DX中。
如25+48-19=?
其中UP1、UP2、UP3的内容均为二位十进制数,并以非压缩BCD码格式存入存储器:
(UP1)=0205H,(UP2)=0408H,(UP3)=0109H
UP1=2050H,UP2=2150H,UP3=2250H
MOVAX,0000
MOVDX,0000
MOVSI,2050H
MOVDI,2150H
MOVBP,2250H
MOVWORDPTR[SI],0205H
MOVWORDPTR[DI],0408H
MOVWORDPTR[BP],0109H
MOVAL,[SI];
送被加数低8位
ADDAL,[DI];
低8位相加
AAA;
加法ASCII调整
MOVDL,AL;
暂存
MOVAL,[SI+1];
送被加数高8位
ADCAL,[DI+1];
带进位加
XCHGAL,DL;
AL与DL交换
SUBAL,[BP];
和的低8位减减数的低8位
AAS;
减法ASCII调整
AL与DL交换,存低8位结果
SBBAL,[BP+1];
高8位带进位减
MOVDH,AL;
存高8位结果
DX=0504H
3.乘法程序设计
要求:
试设计、编写程序,计算(A)×
(B)。
A、B表示内存单元,分别存放着二个用非压缩BCD码表示的十进制数(如34、56)。
内存单元(A)=04H,(A+1)=03H,内存单元(B)=06H,(B+1)=05H,计算结果应为非压缩的BCD码表示的十进制数,存放在以C为首地址的4个连续内存字节单元中。
设内存单元A=2200H、B=2220H、C=2240H;
MOVBX,0
MOVDI,223AH
MOVSI,2230H
MOVAL,04H;
被乘数低8位送AL
MOVBL,06H;
乘数低8位送BL
MULBL;
相乘,AL=18H,CF=0
AAM;
调整,AH=02H,AL=04H
MOVWORDPTR[DI],AX;
存结果,(DI,DI+1)=04H,02H
MOVAL,03H;
被乘数高8位送AL
被乘数高8位乘以乘数低8位,AL=12H,CF=0
调整,AH=01H,AL=08H
ADDAL,[DI+1];
部分积相加,AL=0AH
调整,AH=02H,AL=00H,AF=1,CF=1
MOVWORDPTR[DI+1],AX;
存结果,(DI+1,DI+2)=00H,02H
MOVAL,04H;
MOVBL,05H;
乘数高8位送BL
相乘,AL=14H
调整,AH=02H,AL=00H
MOVWORDPTR[SI],AX;
存结果,(SI,SI+1)=00H,02H
MOVAL,03H;
被乘数高8位乘以乘数高8位,AL=0FH
调整,AH=01H,AL=05H
ADDAL,[SI+1];
部分积相加,AL=07H
调整,AH=01H,AL=07H,AF=0,CF=0
MOVWORDPTR[SI+1],AX;
存结果,(SI+1,SI+2)=07H,01H
MOVAL,[DI];
AL=04H
MOVBP,2240H;
乘积首址2240H
存积低位,(2240H)=04H
MOVAL,[DI+1]
ADDAL.[SI+1]
调整,AH=01H,AL=00H,AF=0,CF=0
MOV[BP+1],AL;
存积低位加1,(2241H)=00H
MOVAL,[DI+2];
AL=02H
ADCAL,[SI+1];
AL=09H,AF=0,CF=0
调整,AH=01H,AL=09H
MOV[BP+2],AL;
存积低位加2,(2242H)=09H
MOVAL,0
ADCAL,[SI+2];
AL=01H,AF=0,CF=0
调整,AH=01H,AL=01H
MOV[BP+3],AL;
存积高位,(2243H)=01H
(2243H)=01H,(2242H)=09H,(2241H)=00H,(2240H)=04H;
积=1904H
4.除法程序设计(选做)
试设计、编写程序,计算(A)/(B),A、B表示内存单元,数据自定。
其中除数(B)是16位十六进制数,存放在BX中;
被除数(A)是32位十六进制数,高16位存放在DX,低16位存放在AX中;
结果为32位十六进制数的商存放在BX:
AX中;
16位十六进制余数存放在DX中。
设置数据时如果除数等于零或者商大于16位,则应考虑溢出处理。
源程序(避免溢出的除法程序)
STACKSEGMENTPARASTACK'
STACK'
DW32DUP(0)
STACKENDS
DATASEGMENTPARA'
DATA'
CODESEGMENTPARA'
CODE'
ASSUMECS:
DIVUOPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAX,1FCDH;
被除数低16位
MOVDX,3B78H;
被除数高16位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 报告