机械微机原理学生实验报告Word下载.docx

上传人:b****2 文档编号:3901835 上传时间:2023-05-02 格式:DOCX 页数:20 大小:44.90KB
下载 相关 举报
机械微机原理学生实验报告Word下载.docx_第1页
第1页 / 共20页
机械微机原理学生实验报告Word下载.docx_第2页
第2页 / 共20页
机械微机原理学生实验报告Word下载.docx_第3页
第3页 / 共20页
机械微机原理学生实验报告Word下载.docx_第4页
第4页 / 共20页
机械微机原理学生实验报告Word下载.docx_第5页
第5页 / 共20页
机械微机原理学生实验报告Word下载.docx_第6页
第6页 / 共20页
机械微机原理学生实验报告Word下载.docx_第7页
第7页 / 共20页
机械微机原理学生实验报告Word下载.docx_第8页
第8页 / 共20页
机械微机原理学生实验报告Word下载.docx_第9页
第9页 / 共20页
机械微机原理学生实验报告Word下载.docx_第10页
第10页 / 共20页
机械微机原理学生实验报告Word下载.docx_第11页
第11页 / 共20页
机械微机原理学生实验报告Word下载.docx_第12页
第12页 / 共20页
机械微机原理学生实验报告Word下载.docx_第13页
第13页 / 共20页
机械微机原理学生实验报告Word下载.docx_第14页
第14页 / 共20页
机械微机原理学生实验报告Word下载.docx_第15页
第15页 / 共20页
机械微机原理学生实验报告Word下载.docx_第16页
第16页 / 共20页
机械微机原理学生实验报告Word下载.docx_第17页
第17页 / 共20页
机械微机原理学生实验报告Word下载.docx_第18页
第18页 / 共20页
机械微机原理学生实验报告Word下载.docx_第19页
第19页 / 共20页
机械微机原理学生实验报告Word下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

机械微机原理学生实验报告Word下载.docx

《机械微机原理学生实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《机械微机原理学生实验报告Word下载.docx(20页珍藏版)》请在冰点文库上搜索。

机械微机原理学生实验报告Word下载.docx

若无错误,进行下一步。

4、连接

在dos提示符下输入命令“link001.obj”。

5、运行

在dos提示符下输入命令“001”,发现屏幕上输出“Thisisasampleprogram!

”,实验完成。

实验二DEBUG的应用

1、进入和退出DEBUG程序

2、使用DEBUG中的常用命令

1、熟悉DEBUG有关命令的使用方法

2、学会利用DEBUG掌握有关指令的功能

3、学会利用DEBUG运行简单的程序段

1、debug的启动与退出

在dos提示符下输入“debug”,并回车,可进入debug状态;

在debug提示符下输入“q”,可返回dos提示符。

2、用R命令查看、改变CPU寄存器的内容

①输入“r”,回车,可看到CPU内部所有寄存器内容和标志位状态;

②输入“RAX”,可显示AX的值,并将AX的值修改为1234H;

3、汇编命令A

在debug提示符下,输入“A100”,输入几条汇编指令。

MOVAL,0C

ADDAL,1E

ADCAL,30

4、单步执行命令T

先输入命令“T=0”,然后每次都输入命令“T”,查看输入的每条指令执行后的状态。

5、调试应用程序

debug001.exe

6、反汇编指令U

在debug提示符下,输入“U”指令,显示001.exe的汇编指令。

5、运行命令G

输入命令“G”,运行001.exe中的所有指令;

输入命令“G=13f0:

0d”,运行指定区域内的指令。

7、显示内存单元命令D

输入“D1389:

0100”,显示1389H:

0100H单元为首的内存区域中存放的内容。

8、修改内在单元命令E

输入“E1389:

0100”,将0100H单元的内容修改为FFH。

 

实验三顺序结构程序设计

将两个2字节长的二进制数相加,运算结果存放在相应结果单元中。

掌握汇编语言的顺序结构程序设计方法。

1、流程框图

2、源程序

DATA1DB1,2;

被加数

DATA2DB5,6;

加数

DATA3DB0,0;

CODE,DS:

MOVAX,DATA

MOVDS,AX

MOVSI,0

CLC;

清进位标志

MOVAL,DATA1[SI]

ADCAL,DATA2[SI];

第一个字节相加

MOVDATA3[SI],AL

INCSI

第二个字节相加

..........输出显示部分........

MOVBX,OFFSETDATA3

MOVDL,[BX]

ADDDL,30H

MOVAH,2

INT21H

INCBX

..........输出显示结束........

MOVAH,4CH

INT21H;

返回DOS

CODEENDS

实验四分支结构程序设计

接收键盘输入字符,将其中的小写字母转换为大写字母。

学会汇编语言的分支结构程序设计方法。

MSGDB‘ERROR!

0DH,0AH,‘$'

MOVAH,1

读入一字符送入AL

CMPAL,‘a'

JBERR;

不是小写字母转出错处理

CMPAL,‘z'

JAERR;

SUBAL,32;

转换成大写字母后送到AL

MOVDL,AL

MOVAH,02

输出转换后的字符

OVER:

返回DOS

ERR:

MOVDX,OFFSETMSG

MOVAH,09

JMPOVER

实验五循环结构程序设计

统计一个有10人的班中,男、女生的人数各为多少。

将统计结果的男生人数存入变量BOY中,女生人数存入变量GIRL中。

掌握汇编语言的循环结构基本设计方法。

1.流程框图

2.参考程序

BOYDB0;

存放男生人数

GIRLDB0;

存放女生人数

COUNTEQU10;

班里的总人数

DISPDB0DH,0AH,‘BOYORGIRL1/0?

'

‘$’

DISP1DB0DH,0AH,‘BOY:

’,‘$’

DISP2DB0DH,0AH,‘GIRL:

DATAENDS

CODESEGMENT

ASSUMECS:

MOVDS,AX

MOVCX,COUNT

INPUT:

MOVDX,OFFSETDISP

MOVAH,9

MOVAH,1

INT21H;

读入一个字符

CMPAL,‘1’;

是男生?

JZBOYCOUNT

CMPAL,‘0’;

是女生?

JZGIRLCOUNT

JMPINPUT

BOYCOUNT:

INCBOY;

男生人数加1

JMPLOOPNEXT

GIRLCOUNT:

INCGIRL;

女生人数加1

LOOPNEXT:

LOOPINPUT

MOVAH,4CH

实验六子程序设计

编写一个程序,将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。

要求码型转换通过子程HEXAC实现,在转换过程中,通过子程序DISP实现显示。

1、掌握汇编语言子程序的设计方法;

2、掌握主程序与子程序之间的调用关系及调用方法。

1、分析:

该实验程序用子程序的近程调用实现。

由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫子程序的嵌套调用。

实验过程中可以从堆栈的内容看到两个子程序的返回地址值。

由于是近调用,地址值只包括返回地址的段内偏移量。

在每个子程序的执行中,检查CS值是不变的。

BUFDB0ABH,0CDH,0DEH,01H,02H,03H

DB3AH,4BH,5CH,6FH

ASSUMECS:

CODE,DS:

START:

MOVAX,DATA

MOVDS,AX

MOVCX,10

LEABX,BUF

AGAIN:

MOVAL,[BX]

CALLHEXASC

LOOPAGAIN

MOVAH,4CH

HEXASCPROCNEAR

MOVDL,AL

PUSHCX

MOVCL,4

SHRDL,CL

POPCX

CALLDISP;

显示高位HEX数

ANDDL,0FH

CALLDISP

RET

HEXASCENDP

DISPPROP

CMPDL,9

JBENEXT

ADDDL,7

NEXT:

ADDDL,30H

MOVAH,2

显示

RET

DISPENDP

实验七综合程序设计

设计并实现一个小型应用实例,要求:

1、接收从键盘输入的一个班的学生成绩,存放于50字的grade数组中,其中grade+i保存学号为i+1的学生成绩。

2、根据grade中学生成绩,把学生名次填入50字的rank数组中,其中rank+i的内容是学号为i+1学生的名次。

3、最后按学号顺序把名次从终端显示出来。

熟练掌握三种基本结构程序设计、掌握结构化程序设计方法,并能综合运用,从而培养学生综合分析问题和解决问题的能力。

1、在该应用实例中,包括三个方面的内容:

一成绩输入;

二计算名次;

三是排序输出。

每一部分可对应一段子程序,程序结构是一个较为典型的层次结构,如下图:

①程序MAIN

功能:

根据输入的学生成绩,计算并显示出学生名次。

②程序INPUT

接收一个班级学生的成绩,各成绩之间用空格隔开。

③程序RANKP

计算一个班级学生的名次。

(可参照循环程序

(一)中的程序段)

④程序OUTPUT

输出(显示)一个班级的学生名次

⑤程序DECIBIN

十进制转换二进制,存入BX

⑥程序BINDEC

十进制转换二进制,并在屏幕上显示。

⑦程序DEC_DIV

功能:

BX的内容除以CX的内容,并在屏幕上显示一位商。

2、程序框图:

3、源程序

模块名:

main.ASM总控模块

EXTRNINPUT:

FAR

EXTRNRANKP:

EXTRNOUTPUT:

ASSUMECS:

CODE

CALLFARPTRINPUT

CALLFARPTRRANKP

CALLFARPTROUTPUT

MOVAH,4CH

INPUT.ASM输入模块

PUBLICINPUT

PUBLICGRADE

PUBLICCOUNT

DATASEGMENTPUBLIC

GRADEDW50DUP(?

COUNTDW?

MESS1DB'

GRADE?

INPUTPROCFAR

MOVAX,DATA

MOVDS,AX

LEADX,MESS1

MOVAH,09

INT21H

MOVSI,0

ENTER:

CALLDECIBIN

INCCOUNT

CMPDL,'

'

JZSTORE

CMPDL,13

JZEXIT

STORE:

MOVGRADE[SI],BX

ADDSI,2

JMPENTER

EXIT:

MOVDL,0AH

MOVAH,02H

DECIBINPROCNEAR

MOVBX,0

NEWCHAR:

MOVAH,1

MOVDL,AL

SUBAL,30H

JLEXIT1

CMPAL,9D

JGEXIT1

CBW

XCHGAX,BX

MOVCX,10

MULCX

ADDBX,AX

JMPNEWCHAR

EXIT1:

DECIBINENDP

INPUTENDP

END

RANKP.ASM学生成绩名次计算模块

EXTRNGRADE:

WORD

EXTRNCOUNT:

PUBLICRANKP

PUBLICRANK

RANKDW50DUP(?

RANKPPROCFAR

MOVDX,COUNT

MOVBX,0

LOOP1:

MOVAX,GRADE[BX]

MOVRANK[BX],0

MOVCX,COUNT

LEASI,GRADE

NEXT:

CMPAX,[SI]

JGNO_COUNT

INCRANK[BX]

NO_COUNT:

LOOPNEXT

ADDBX,2

DECDX

JNELOOP1

RANKPENDP

OUTPUT.ASM输出模块

EXTRNRANK:

PUBLICOUTPUT

MESS2DB'

RANK:

OUTPUTPROCFAR

LEADX,MESS2

MOVAH,09H

MOVSI,0

MOVDI,COUNT

NEXT1:

MOVBX,RANK[SI]

CALLBINIDEC

MOVDL,'

MOVAH,02

ADDSI,2

DECDI

JNZNEXT1

RET

BINIDECPROCNEAR

PUSHBX

PUSHCX

;

MOVCX,100

;

CALLDEC_DIV

MOVCX,1

POPCX

POPBX

BINIDECENDP

DEC_DIVPROC

MOVAX,BX

MOVDX,0

DIVCX

MOVBX,DX

ADDDL,30H

MOVAH,02H

DEC_DIVENDP

OUTPUTENDP

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2