中南大学09计算机组成与汇编报告.docx
- 文档编号:13628414
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:14
- 大小:18.49KB
中南大学09计算机组成与汇编报告.docx
《中南大学09计算机组成与汇编报告.docx》由会员分享,可在线阅读,更多相关《中南大学09计算机组成与汇编报告.docx(14页珍藏版)》请在冰点文库上搜索。
中南大学09计算机组成与汇编报告
计算机组成与汇编实验报告
班级:
姓名:
学号:
实验题一(汇编语言):
从键盘接受用户所输入的不超过20个的0~99的数,在用户完成输入后对用户所输入的数据进行排序并输出。
要求定义子程序
DATASEGMENT
NOTE0DB'Note:
ThecharacterthatseparatestheintegerscanbeanyvisibleASCIIexcepttendigits(',27H,'0',27H,'-',27H,'9',27H,').',0DH,0AH,'$'
NOTE1DB0DH,0AH,'==================================================================',0DH,0AH
DB'Pleaseinput20(orless)decimalintegers:
',0DH,0AH,'$'
NOTE2DB0DH,0AH,'==================================================================',0DH,0AH
DB0DH,0AH,'Theinputedintegers:
','$'
NOTE3DB0DH,0AH,'==================================================================',0DH,0AH
DB0DH,0AH,'Howmanydecimalintegers?
$'
NOTE4DB0DH,0AH,'Thesortedresult:
',0DH,0AH,'$'
ERR_STRDB0DH,0AH,'******************************************************************',0DH,0AH
DB'Inputerror!
',0DH,0AH
CON_STRDB0DH,0AH,'******************************************************************',0DH,0AH
DB0DH,0AH,'Continue?
YorN?
','$'
DEC_STRDB200
DB?
DB150DUP('$')
TOTALDB3DUP('$');用来记录输入的数字个数
DEC_NUMDW30DUP(?
);用来存放将输入的ASCII码转换成2进制数以便比较的结果
OUT_STRDB150DUP('$');存放待输出的字符组信息
DATAENDS
STACKSEGMENTSTACK
STTDB100DUP(?
);堆栈
STACKENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,STACK
MOVSS,AX
MOVAX,DATA
MOVDS,AX
;----------------------------------输出提示信息
LEADX,NOTE0
MOVAH,09H
INT21H
DISP0:
LEADX,NOTE1
MOVAH,09H
INT21H
LEADX,DEC_STR;将原始数据存入该空间
MOVAH,0AH
INT21H
MOVAL,BYTEPTR[DEC_STR+2];输入合法性的标志:
开头是数字或者符号
CMPAL,'0'
JAECMP1
CMPAL,'+'
JEDISP2
CMPAL,'-'
JEDISP2
JMPDISP1
CMP1:
CMPAL,'9'
JBEDISP2
DISP1:
LEADX,ERR_STR
MOVAH,09H
INT21H
CON_YN:
MOVAH,01H;程序结束处询问是否需要继续
INT21H
CMPAL,'Y'
JEDISP0
CMPAL,'y'
JEDISP0
CMPAL,'N'
JEOVER0
CMPAL,'n'
JEOVER0
OVER0:
JMPOVER;用以结束程序
DISP2:
LEADX,NOTE2;将输入的数据输出以便用户对照其正确性
MOVAH,09H
INT21H
LEADX,[DEC_STR+2]
MOVAH,09H
INT21H
;==================================COUNTHOWMANYDECIMALINTEGERS
LEASI,DEC_STR
MOVCL,BYTEPTR[SI+1];CL中存放输入的总字符数
MOVCH,0
PUSHCX
MOVAL,0;AL用来计数数字个数
LP1:
MOVDL,BYTEPTR[SI+2];如果输入数字,符号则继续读下一位,如果输入其他字符则AL加一,这也是开头第一个字母不能为其他字符的原因
CMPDL,'+'
JEMOV_PTR
CMPDL,'-'
JEMOV_PTR
CMPDL,'0'
JLmov_inc
CMPDL,'9'
Jlemov_ptr
MOV_INC:
INCAL
MOV_PTR:
INCSI
LOOPLP1
INCAL
CBW;将AL拓展到AX中
MOVDEC_NUM,AX;将2进制形式的计数结果放入该单元
MOVCL,10;除以10后,AL中放的是十位数,AH中放的是个位数
DIVCL
ADDAX,3030H;加3030H后将十位数和个位数分别转换成ASCII码
LEADI,TOTAL
MOVBYTEPTR[DI],AL
MOVBYTEPTR[DI+1],AH
MOVBYTEPTR[DI+2],'$';将ASCII形式的计数结果放入单元以便输出
LEADX,NOTE3;输出计数结果
MOVAH,9
INT21h
LEADX,TOTAL;小小的处理使得第一位是0时自动缺省
CMP0:
MOVBX,DX
CMPBYTEPTR[BX],'0'
JNEDISPLAY
INCDX
DISPLAY:
MOVAH,9
INT21H
;==================================ASCIItoDECIMAL
LEADX,[dec_str+2];从DX指向的单元读入
MOVcx,DEC_NUM
LEABX,DEC_NUM;写进BX指向的单元
ADDBX,2
T1:
CALLASC2DEC;调用ASCII码转换
MOV[BX],AX;将处理后的数放入储存单元
ADDBX,2
ADDDX,SI;DX指向新位置
LOOPT1
;==================================Sortbinarygigits
CALLCOMP;冒泡排序
;==================================NOTE4;输出结果提示
LEADX,NOTE4
MOVAH,09H
INT21H
;==================================DECIMALTOASCII;将排序后的2进制数用ASCII码表示并打印出来
LEABX,DEC_NUM
movcx,DEC_NUM
ADDBX,2
D2A:
MOVAX,[BX];读出二进制数放在AX中
CALLDEC2ASC;调用转化和打印过程
MOVDL,'';输出空格
MOVAH,2
INT21H
ADDBX,2;后移
LOOPD2A
LEADX,CON_STR
MOVAH,09H
INT21H;询问是否继续
JMPCON_YN
OVER:
MOVAH,4CH
INT21H
MAINENDP
;-----------------------------------ASCIITODECIMALNUMBER
ASC2DECPROCNEAR
PUSHBX;入栈保护
PUSHCX
PUSHDX
MOVAX,0;AX初始为0,采用乘10相加的方式转换
MOVSI,DX
PUSHSI
MOVDL,[SI]
CMPDL,'-';如果读入的是负数则置CL为1最后处理
JNEL0
MOVCL,1
INCSI
MOVDL,[SI]
JMPL4
L0:
CMPDl,'+'
JNEL1
INCSI
MOVDL,[SI]
L1:
MOVCL,0;正数置CL为0
L4:
ANDDL,0FH
MOVDH,0
ADDAX,DX
INCSI
MOVDL,[SI]
CMPDL,'0'
JLL2
CMPDL,'9'
JGL2
CALLTIMBY10;调用乘10进程
JMPL4
L2:
CMPCL,1;如果是负数,对其求反
JNEL3
NEGAX
L3:
POPDI;DI出栈
SUBSI,DI;SI减去初始位置,计算相对位移量
INCSI
POPDX
POPCX
POPBX
RET
ASC2DECENDP
;=================================
TIMBY10PROCNEAR
MOVBX,AX
SHLAX,1;乘2
SHLAX,1;再乘2
ADDAX,BX;加一倍,现在相当于乘了5
SHLAX,1;乘2,总共是乘了10
RET
TIMBY10ENDP
;==================================
COMPPROCNEAR;保护
PUSHAX
PUSHBX
PUSHCX
PUSHDI
MOVAX,DATA
MOVDS,AX
LEADI,DEC_NUM
MOVCX,wordptr[DI];计数
DECCX
C1:
MOVDX,CX
MOVBH,0
C2:
ADDDI,2
MOVAX,[DI]
CMPAX,[DI+2]
JLECONT1
XCHGAX,[DI+2]
MOV[DI],AX
MOVBH,1
CONT1:
LOOPC2
CMPBH,0
JESTOP
MOVCX,DX
LEADI,DEC_NUM
LOOPC1
STOP:
LEABX,DEC_NUM
MOVAX,[BX+8]
POPDI
POPCX
POPBX
POPAX
RET
COMPENDP
;==================================
DEC2ASCPROC
PUSHBX;保护
PUSHCX
LEADI,OUT_STR;将处理后的放入DI
MOVDX,DI
CMPAX,0
JNENON_0
ZERO:
MOVBYTEPTR[DI],'0';如果是0
MOVBYTEPTR[DI+1],'$'
JMPOUT_ASC
NON_0:
TESTAX,8000H;不是0
JZPTIVE;判断符号,是正号跳转
NTIVE:
NEGAX;取反
MOVBYTEPTR[DI],'-';置负号
JMPCON
PTIVE:
MOVBYTEPTR[DI],'+';置正号
CON:
INCDI
MOVDX,0
MOVCX,10000;万位
IDIVCX;带符号数除法
ADDAL,30H
MOVbyteptr[DI],AL
MOVAX,DX
MOVDX,0
MOVCX,1000
IDIVCX
ADDAL,30H;加30H变成ASCII
MOVbyteptr[DI+1],AL;写入
MOVAX,DX
MOVCL,100
IDIVCL
ADDAL,30H
MOVbyteptr[DI+2],AL
MOVAL,AH
MOVAH,0
MOVCL,10;十位
IDIVCL
ADDAL,30H
MOVBYTEPTR[DI+3],AL
ADDAH,30H
MOVBYTEPTR[DI+4],AH;个位
OUT_SIG:
LEADI,OUT_STR
MOVDL,BYTEPTR[DI]
MOVAH,2
INT21H
INCDI
MOVDX,DI
B2:
CMPBYTEPTR[DI],'0'
JNEOUT_ASC
INCDI
INCDX
JMPB2
OUT_ASC:
MOVAH,09H;打印
INT21H
POPCX
POPBX
RET
DEC2ASCENDP
;==================================
CODEENDS
ENDSTART
实验题二(计算机组成原理):
实验目的
掌握静态存储随机存储器RAM的工作特性
掌握静态存储随机存储器RAM的读写方法
实验设备
74LS374(一片),74LS245(一片),74LS273(一片),静态存储器MEMORY6116(一片),8位数据排线(一片),脉冲与门(两片),与非门(一片),单脉冲(三片),开关若干,灯泡若干。
实验原理
总线传输实验框图如图所示,它将几种不同的设备挂至总线上,有存储器、输入
设备、输出设备、寄存器。
这些设备都需要有三态输出控制,按照传输要求恰当有序的控制
它们,就可实现总线信息传输。
图总线传输实验框图
总线基本实验要求如下:
根据挂在总线上的几个基本部件,设计一个简单的流程。
(1)输入设备将一个数输入R0寄存器。
(2)输入设备将另一个数输入地址寄存器。
(3)将R0寄存器中的数写入到当前地址的存储器中。
(4)将当前地址的存储器中的数用LED数码管显示。
实验步骤
1.选择实验设备:
根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
搭建实验流程:
将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。
搭建好的实验流程图如图所示。
2.初始化各芯片的控制信号,仔细检查无误后点击【电源开/关】按钮接通电源。
.实验的具体操作步骤如图所示。
首先应关闭所有三态门(SW-B=1,CS=1,R0-B=1,LED-B=1),并将关联的信号置为:
LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED)=1。
然后参照如下操作流程,先给数据开关置数,打开数据输出三态门,开关LDR0置1,并双击旁边的单脉冲,使产生一个上升沿将数据输入到R0中;然后继续给数据开关置数,开关LDAR置1,并双击旁边的单脉冲,使产生一个上升沿将数据输入到AR中;关闭数据开关三态门,打开R0寄存器输出控制(开关LDR0和开关R0-B都置0),使存储器处于写状态(W/R=0、CS=0)将R0中的数写到存储器中;关闭存储器片选,关闭R0寄存器输出(开关R0-B置0),使存储器处于读状态(W/R=1、CS=0)。
组成原理实验结论:
实验最后没有成功,没有时间把数据读出来,在连线时花了很多时间,最后导致时间不够!
不过在这实验中学到的东西很多.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 09 计算机 组成 汇编 报告