计算机组成原理与汇编吴致远.docx
- 文档编号:2956390
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:20
- 大小:165.40KB
计算机组成原理与汇编吴致远.docx
《计算机组成原理与汇编吴致远.docx》由会员分享,可在线阅读,更多相关《计算机组成原理与汇编吴致远.docx(20页珍藏版)》请在冰豆网上搜索。
计算机组成原理与汇编吴致远
计算机组成原理与汇编
实验报告
学院:
信息科学与工程学院
专业班级:
物联网工程1402班
学号:
0919140208
姓名:
吴致远
实验一
一、实验原理
通过基本的练习,熟悉汇编平台的使用。
以方便后期实验以及程序设计时,对基本操作的熟悉,以及一些基本的调试方法。
二、实验目的
1.8086基本指令及寄存器实验
2.熟悉包括数据和转移地址有关的寻址方式
3.了解程序占有的空间和执行时间
4.熟悉使用数据传输指令、算术指令、逻辑指令、串指令、控制转移指令、处理控制与杂项操作指令等等。
(数据传输指令
通用数据传输指令:
MOV、PUSH、POP、XCHG
累加器专用传输指令:
IN、OUT、XLAT
地址传输指令:
LEA、LDS、LES
标志寄存器传输指令:
LAHF、SAHF、PUSHF、POPF
类型转化:
CBW、CWD
算数指令
加法指令:
ADD、ADC、INC
减法指令:
SUB、SBB、DEC、NEG、CMP
乘法指令:
MUL、IMUL
除法指令:
DIV、IDIV
逻辑指令
逻辑运算指令:
AND、OR、NOT、XOR、TEST
移位指令:
SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR
串处理指令:
MOVS、CMPS、SCAS、LODS、STOS
)
5.熟悉汇编平台的使用和汇编程序的典型结构
6:
熟悉DEBUG的各种命令
7:
了解不同指令对各种条件标志的影响
三、实验内容
程序设计与调试
(1)x,y,z均为双精度数,分别存放于X,X+2,Y,Y+2,Z,Z+2的存储单元中,用指令序列实现w=x+y+24-z,并用W,W+2单元存放w
DATASSEGMENT
;此处输入数据段代码
Xdw0102H
dw0304H
Ydw0506H
dw0708H
Zdw090AH
dw0B0CH
Wdw4dup(?
)
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
movax,X
movdx,X+2
addax,Y
adcdx,Y+2
addax,24
adcdx,0
subax,Z
sbbdx,Z+2
movW,ax
movW+2,dx
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
每执行一步,观看寄存器、内存、以及标志寄存器是否改变?
试着改变x,y,z的值,如x=33441122H,y=77885566H,z=0BBCC99AAH
观察每一步的变化,请问运行结果正确吗?
为啥?
若x=33441122H,y=77885566H,z=0BBCC99AAH
观察每一步的变化,运行结果不正确,因为x,y,z溢出了
(2)x,y,z,v均为16位带符号数,计算(v-(x*y+z-540))/x
编制程序,用不同的x,y,z,v带进去,看过程,与结果,并分析结果正确与否
movax,X
imulY
movcx,ax
movbx,dx
movax,Z
cwd
addcx,ax
adcbx,dx
subcx,540
sbbbx,0
movax,v
cwd
subax,cx
sbbdx,bx
idivX
实验二
一、实验原理
根据要求将BX内容从左到右每4位一组在屏幕上显示出来利用循环结构完成每次循环显示一个十六进制数位因而循环次数是已知的计数值为4.循环体中包括从二进制到所显示字符的ASCII之间的转换以及每个字符的显示后者可以使用DOS功能调用实现。
这里采用了循环移位的方法把所要显示的4为二进制数移到最右面以便做数字到字符的转换工作。
二、实验目的
1.掌握循环程序的设计方法。
2.掌握汇编语言源程序的编辑、汇编、连接及调试过程。
3.进一步熟悉利用DEBUG程序修改参数的方法并检查和验证结果的正确性。
4.学会针对不同的问题选用不同的组织循环的方法。
CODESSEGMENT
mainprocfar
ASSUMECS:
CODES
START:
movbx,6a4ch
pushds
subax,ax
pushax
movch,4
rotate:
movcl,4
rolbx,cl
moval,bl
andal,0fh
addal,30h
cmpal,3ah
jlprintit
addal,7h
printit:
movdl,al
movah,2
int21h
decch
jnzrotate
ret
mainendp
;此处输入代码段代码
CODESENDS
END
Bx中的数位6A4C
实验三
一、实验原理
冒泡排序算法需要从第一个数开始依次对相邻两个数进行比较。
如果是按次序排列则不做任何操作如不是按次序排列则使两个数交换位置。
一层一层往上冒泡。
二、实验目的
1.掌握循环程序的设计方法
2.掌握汇编语言源程序的编辑、汇编、连接及调试过程。
3.进一步熟悉利用DEBUG程序修改参数的方法并检查和验证结果的正确性。
4.学会针对不同的问题选用不同的组织循环的方法。
三、实验内容
冒泡排序算法的程序设计与实现(画出原理图,设计程序,调试程序。
记录调试关键过程和结果,可能遇到的问题以及解决的方法)
DATASSEGMENT
ADW12,17,9,3,28,97,54,20,20,67;此处进行数据的初始化
NEQU10
MDW10D
BUF1DB'SequenceBeforeSort:
','$'
BUF2DB0DH,0AH,'SequenceAfterSort:
','$'
DATASENDS
STACKSSEGMENT
DW100DUP(?
)
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS,ES:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVDX,OFFSETBUF1;显示未排序的提示符
MOVAH,09H
INT21H
MOVCX,N
LEASI,A
LOOP1:
CALLDISPLAY;进行未排序的数据显示
LOOPLOOP1
;开始排序
CLD
MOVCX,N-1
LOOP2:
PUSHCX
LEASI,A;取数据区的第一个数的偏移量
LODSW;取第1个数存入AX
LP1:
MOVBX,AX;开始内部排序第5-CX次
LODSW;取第6-CX个数
CMPBX,AX;比较两个数大小
JLL1;前面数小的话符合要求跳转,大的话换位
MOV[SI-2],BX;大的数到后面
MOV[SI-4],AX;小的数到前面
MOVAX,[SI-2];改变AX的值
L1:
LOOPLP1;小循环CX减1
POPCX;弹出外部循环计数
LOOPLOOP2
;输出排序后的结果
MOVDX,OFFSETBUF2
MOVAH,09H
INT21H
MOVCX,N;因为有十个数,所以计数寄存器CX置十
LEASI,A
LOOP3:
CALLDISPLAY;排序后结果显示
LOOPLOOP3
MOVAH,4CH
INT21H
DISPLAYPROC;转换子程序(SI指针由外部提供,方便选择要显示的东西)
LODSW
MOVBX,3;数据在十进制时的是三位数所以计数部分BX置三
Z1:
CWD
DIVM;采用除以10的方法不断得到每一位数
PUSHDX;将每一位压入栈
DECBX
JNZZ1
MOVBX,3
Z2:
POPDX;压完一个数后立即出栈进行显示
ADDDL,30H
DECBX
MOVAH,2
INT21H
JNZZ2
MOVDL,20H;每个数据间由空格隔开
MOVAH,2
INT21H
RET;子程序结束
DISPLAYENDP
CODESENDS
ENDSTART
实验四
一、实验原理
调用FIB函数求Fibonacci数,结果高位存在RESULT2H低位存在RESULT2L最后调用OUTPUT函数将结果以十进制的形式显示出来。
二、实验目的
1.掌握循环程序的设计方法
2.掌握汇编语言源程序的编辑、汇编、连接及调试过程。
3.进一步熟悉利用DEBUG程序修改参数的方法并检查和验证结果的正确性。
4.学会针对不同的问题选用不同的组织循环的方法。
三、实验内容
求Fibonacci递归数(画出原理图,设计程序,调试程序。
记录调试关键过程和结果,可能遇到的问题以及解决的方法)
DATASSEGMENT
M1DB13,10,'Pleaseinputn=$'
M2DB13,10,'FibonacciSequenceis:
$'
NDW?
F1DW0
F2DW1
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
LEADX,M1
MOVAH,9
CALLINPUT
CMPCX,1
JBEXIT
MOVN,CX
LEADX,M2
MOVAH,9
INT21H
MOVDL,'1'
MOVAH,2
INT21H
MOVDL,''
INT21H
DECN
JZEXIT
LP:
MOVAX,F1
ADDAX,F2
JCEXIT
MOVBX,F2
MOVF1,BX
MOVF2,AX
CALLOUTPUT
MOVDL,''
MOVAH,2
INT21H
DECN
JNZLP
EXIT:
MOVAH,4CH
INT21H;返回DOS
INPUT:
MOVBL,10
MOVCX,0
IN_X:
MOVAH,7
INT21H
CMPAL,13
JEIN_END
CMPAL,'0'
JBIN_X
CMPAL,'9'
JAIN_X
MOVDL,AL
INT21H
MOVAL,DL
SUBAL,30H
MOVAH,0
XCHGAX,CX
MULBL
ADDCX,AX
CMPCH,0
JNZIN_END
JMPIN_X
IN_END:
RET
OUTPUT:
MOVBX,10
MOVCX,0
OL1:
MOVDX,0
DIVBX
ADDDL,'0'
PUSHDX
INCCX
CMPAX,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 汇编 吴致远