汇编实验报告Word格式文档下载.docx
- 文档编号:17092517
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:31
- 大小:1.02MB
汇编实验报告Word格式文档下载.docx
《汇编实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编实验报告Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
PROGRAMTITLEGOESHERE--Comparestring
******************************************************
datareasegment;
definedatasegment
string1db'
Movethecursorbackward.'
string2db'
mess1db'
Match.'
13,10,'
$'
mess2db'
Nomatch!
'
datareaends
prognamsegment;
definecodesegment
------------------------------------------------------
mainprocfar
assumecs:
prognam,ds:
datarea,es:
datarea
start:
;
startingexecutionaddress
setupstackforreturn
pushds;
saveolddatasegment
subax,ax;
putzeroinAX
pushax;
saveitonstack
setDSregistertocurrentdatasegment
movax,datarea;
datareasegmentaddr
movds,ax;
intoDSregister
moves,ax;
intoESregister
MAINPARTOFPROGARMGOESHERE
leasi,string1
leadi,string2
cld
movcx,25
repzcmpsb
jzmatch
leadx,mess2
jmpshortdisp
match:
leadx,mess1
disp:
movah,09
int21h
ret;
returntoDOS
mainendp;
endofmainpartofprogram
-------------------------------------------------------
prognamends;
endodcodesegment
********************************************************
endstart;
endassembly
实验二用DEBUG编程:
使用堆栈段将
AX和BX的内容进行交换等
1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。
3、掌握简单指令的执行过程。
1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;
请编一程序段将AX和BX的内容进行交换。
请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300H,SI=0002H;
请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。
程序代码如下:
MOVAX,BX
MOVAX,0304H
MOVAX,[0304H]
MOVAX,[BX]
MOVAX,0001[BX]
MOVAX,[BX][SI]
MOVAX,0001[BX][SI]
HLT
实验1:
1、从DOS进入DEBUG界面。
2、使用R命令修改寄存器堆栈指针地址。
3、使用A命令,并开始输入代码。
4、使用T命令分步查看结果。
编程后用t单步执行:
显示交换后结果:
实验2:
3、使用D命令查看0300H处的存放情况。
4、使用E命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
5、使用A命令,并开始输入代码。
6、使用T命令分步查看结果。
当数据传送完毕时,AX=0E0D
单步执行查看结果:
实验三储存器块清零和内存块移动
1、了解存储器的读写方法。
2、了解存储器的块操作方法。
1、完成程序用来存储块清零,首先设置块起始地址,然后设置块长度,再将当前地址内容清零,地址加一,然后判断是否清完,若清完则结束,否则返回到上一步。
2、完成程序用来移动内存块,首先设置块的源地址,再设置块的目标地址,然后设置移动长度,安长度重复传送数据直到结束。
1、对程序进行分析,画出流程图。
2、进行MASM汇编和LINK连接生成执行文件。
3、利用DEBUG调试执行文件。
单步执行:
执行到repmovsb之前查看ds段和es段内容:
移动后查看ds段和es段内容:
DATASEGMENT
BLOCKDB256DUP(55H)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
STARTPROCNEAR
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETBLOCK
MOVCX,256
AGAIN:
MOV[BX],BYTEPTR0
INCBX
LOOPAGAIN
JMP$
CODEENDS
ENDSTART
实验2
SOURCEDB256DUP(055H)
TARGETDB256DUP(0AAH)
DATA,ES:
MOVES,AX
MOVSI,OFFSETSOURCE
MOVDI,OFFSETTARGET
REPMOVSB
实验四将键盘输入的小写字母用大写字母显示出来
1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。
2、掌握DOS功能调用的编程方法。
试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。
1、设计程序流程图。
3、执行文件。
CODE
START:
MOVAL,01H
INT21H
MOVBL,AL
MOVDL,'
-'
MOVAH,02H
MOVAL,BL
CMPAL,'
a'
JBEXIT
z'
JAEXIT
SUBAL,20H
MOVDL,AL
MOVDL,0AH
MOVDL,0DH
JMPSTART
EXIT:
MOVAH,4CH
实验五循环程序实验
1、掌握循环程序的设计方法。
2、进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。
3、学会针对不同的问题,选用不同的组织循环的方法。
1、编写一个程序,显示AL寄存器中的两位十六进制数。
2、编写一个程序,判别键盘上输入的字符;
若是1-9字符,则显示之;
若为A-Z或a-z字符,均显示“c”;
若是回车字符<
CR>
(其ASCII码为0DH),则结束程序;
若为其他字符则不显示。
1、设计程序流程图。
MOVAL,3EH
PUSHAX
MOVCL,4
SHRDL,CL
CMPDL,9
JBENEXT1
ADDDL,7
NEXT1:
ADDDL,30H
MOVAH,2
POPAX
ANDDL,0FH
JBENEXT2
NEXT2:
MOVAH,1
CMPAL,0DH
JZDONE
0'
JBNEXT
9'
JACHARUP
CHARUP:
CMPAL,41H
CMPAL,5AH
JACHRDN
DISPC:
c'
NEXT:
CHRDN:
CMPAL,61H
CMPAL,7AH
JANEXT
JMPDISPC
DONE:
MOVAH,4CH
ENDSTART
实验六分支程序实验
1、掌握分支程序的设计方法。
2、利用DEBUG程序修改参数、检查结果。
3、掌握汇编语言源程序的编辑、汇编、链接及调试过程。
实验七统计不同成绩段学生的人数
1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。
2、掌握综合程序的编制及调试方法。
设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。
试编制一个子程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。
SSEGSEGMENTPARASTACK'
stack'
DW100HDUP(0)
SSEGENDS
DSEGSEGMENT
BUFDW76,69,84,90,73,88,99,63,100,80
COUNTEQU$-BUF
STR1DB'
0-59:
'
STR2DB'
60-69:
STR3DB'
70-79:
STR4DB'
80-89:
STR5DB'
90-99:
STR6DB'
100:
RESDW20DUP(?
)
DSEGENDS
CSEGSEGMENT
CSEG,DS:
DSEG
MAINPROCFAR
MOVAX,DSEG
MOVDS,AX
MOVCX,COUNT/2+1
MOVDI,OFFSETRES
MOVSI,OFFSETBUF-2
BEGIN:
INCSI
INCSI
DECCX
JZOUTPUT
MOVAX,[SI]
CMPAX,60
JBLOP1
CMPAX,70
JBLOP2
CMPAX,80
JBLOP3
CMPAX,90
JBLOP4
CMPAX,100
JBLOP5
JZLOP6
LOP1:
MOVBX,[DI]
INCBX
MOV[DI],BX
JMP
LOP2:
MOVBX,[DI+2]
MOV[DI+2],BX
JMPBEGIN
LOP3:
MOVBX,[DI+4]
INCBX
MOV[DI+4],BX
LOP4:
MOVBX,[DI+6]
MOV[DI+6],BX
LOP5:
MOVBX,[DI+8]
MOV[DI+8],BX
LOP6:
MOVBX,[DI+10]
MOV[DI+10],BX
JMPBEGIN
OUTPUT:
LEADX,STR1
MOVAH,9
INT21H
CALLDATCH
LEADX,STR2
MOVAH,9
ADDDI,2
LEADX,STR3
ADDDI,2
LEADX,STR4
CALLDATCH
LEADX,STR5
LEADX,STR6
INT21H
MOVAH,1
INT21H
MOVAH,4CH
DATCHPROC
PUSHDX
PUSHCX
PUSHBX
PUSHAX
XORDX,DX
MOVAX,[DI]
MOVCX,10
DIVCX
MOVBX,DX
MOVDL,AL
ADDDL,30H
MOVAH,2
MOVDL,BL
ADDDL,30H
MOVDL,0AH
MOVDL,0DH
MOVAH,2
POPAX
POPBX
POPCX
POPDX
RET
DATCHENDP
MAINENDP
CSEGENDS
ENDMAIN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 报告