北京联合大学微机原理实验报告.docx

上传人:b****5 文档编号:28411644 上传时间:2023-07-13 格式:DOCX 页数:31 大小:5.58MB
下载 相关 举报
北京联合大学微机原理实验报告.docx_第1页
第1页 / 共31页
北京联合大学微机原理实验报告.docx_第2页
第2页 / 共31页
北京联合大学微机原理实验报告.docx_第3页
第3页 / 共31页
北京联合大学微机原理实验报告.docx_第4页
第4页 / 共31页
北京联合大学微机原理实验报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

北京联合大学微机原理实验报告.docx

《北京联合大学微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《北京联合大学微机原理实验报告.docx(31页珍藏版)》请在冰豆网上搜索。

北京联合大学微机原理实验报告.docx

北京联合大学微机原理实验报告

北京联合大学信息学院

  

微机原理与嵌入式系统原理

实验报告

 

 

 

专业:

计算机科学与技术

班级:

姓名:

学号:

实验一

一、实验要求

利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看

二、实验目的:

熟悉EMU8086实验环境

三、实验结果与截图

单步调试:

重载后,延时改为400ms:

0700:

0100开始的连续10个单元的内容:

将“存储器”中的地址改为0700:

2030:

将“存储器”中地址改为1000:

0100,并将从其开始的连续10个单元的内容改为55H:

修改helloworld程序:

(1)helloword!

(2)姓名学号:

修改comparenumber程序:

(1)comparenumber:

(2)将比较对象改为7:

实验二:

一、实验要求

编写程序代码指令,注释

二、实验目的

熟练掌握数据传送类指令的格式、功能和应用

三、调试过程及结果分析:

程序一代码:

org100h

;addyourcodehere

movax,0abch

decax

andax,00ffh

movcl,4

salal,1

movcl,al

addcl,78h

pushax

popbx

hlt

ret

运行结果:

程序二代码:

org100h

;addyourcodehere

movsp,2000h

movax,3000h

movbx,5000h

pushax

pushbx

popax

hlt

ret

运行结果

程序三代码:

org100h

;addyourcodehere

movax,1234h

movbx,5678h

movcx,9abch

pushax

pushbx

pushcx

popdi

popsi

popdx

hlt

ret

运行结果:

运行程序并记录ax寄存器的内容,逐条注释指令:

代码

注释

AX寄存器的内容

Mov[1000h],5566h

把5566h放到地址[1000h]中

0000

Movax,[1000h]

把地址放到寄存器ax中

0000

Leaax,[1000h]

取地址[1000h]中的值给ax

5566

hlt

处理器停止

1000

实验三:

一、实验要求

编程实现多位十六进制数的加法运算。

二、实验目的

1、熟悉实验系统的编程和使用。

2、掌握使用加法类运算指令编程及调试方法。

3、掌握加法类指令对状态标志位的影响。

4、实验代码:

DATASEGMENT

NUM1DW1111H;N1

NUM2DW2222H;N2

NUM3DW3333H;N3

NUM4DW0000H;N4

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETNUM1

MOVAX,0

ADDAX,[SI+0]

ADDAX,[SI+2]

ADDAX,[SI+4]

MOV[SI+6],AX

JMP$

CODEENDS

ENDBEG

5、运行结果:

实验四:

一、实验要求

编程实现:

的十六进制数据转BCD码。

二、实验目的

1、熟悉实验系统的编程和使用。

2、掌握简单的数值转换算法。

3、基本了解数值各种表达方法。

4、实验代码:

;multi-segmentexecutablefiletemplate.

DATASEGMENT

RESULTDb5DUP('?

')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,0000H

MOVAX,65535

MOVCX,10000

DIVCX

MOVRESULT,AL;除以10000,得WAN位数

MOVAX,DX

MOVDX,0000H

MOVCX,1000

DIvCX

MOVRESULT+1,AL;除以1000,得QIAN位数

MOVAX,DX

MOVDX,0000H

MOVCX,100

DIVCX

MOVRESULT+2,AL;除以100,得BAI位数

MOVAX,DX

MOVDX,0000H

MOVCX,10

DIVCX

MOVRESULT+3,AL;除以10,得SHI位数

MOVRESULT+4,DL;得GE位数

JMP$

CODEENDS

ENDSTART

5、运行结果:

实验五:

一、实验要求

练习编程建立8086的循环程序。

二、实验目的

1、熟悉实验系统的编程和使用。

2、掌握使用LOOP判断转移指令实验循环的方法。

3、掌握使用LOOP与CX的组合。

4、实验代码:

;multi-segmentexecutablefiletemplate.

datasegment

;addyourdatahere!

pkeydb"pressanykey...$"

ends

stacksegment

dw128dup(0)

ends

CODESEGMENT

ASSUMECS:

CODE

CON_AEQU25

CON_BEQU12

START:

MOVAX,0

MOVCX,5

INC_AX:

NOP

INCAX

LOOPINC_AX

JMP$

CODEENDS

ENDSTART

5、运行结果:

实验六:

一、实验要求

编程实现1到100求和运算。

二、实验目的

1、熟悉实验系统的编程和使用。

2、掌握使用加法类运算指令编程及调试方法。

3、掌握使用循环类指令编程及调试方法。

4、实验代码:

DATASEGMENT

totalDW0000H;

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETtotal

MOVCX,100

MOVAX,0

MOVBX,1

add_100:

ADDAX,BX

INCBX

LOOPadd_100

MOV[SI],AX

JMP$

CODEENDS

ENDBEG

5、运行结果:

实验七:

一、实验要求

程序中定义数组,编程实现统计数组中正数、负数与0的个数。

二、实验目的

1、熟悉实验系统的编程和使用。

2、掌握查表方法。

三、实验说明

由于本实验是先在表中存放数据,其它有正数、负数和0,通过程序对表的查询,统计表中

包含正数、负数和0的个数。

4、实验代码:

;multi-segmentexecutablefiletemplate.

DATASEGMENT

DBUFDB1,2,-3,-4,-5,1,2,3,4,5,'#';7正3负,#为结束标志

PLUSDB1;正数个数

MINSDB1;负数个数

DATAENDS

STACKSEGMENTSTACK

DB200DUP(0)

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVPLUS,0;初始化

MOVMINS,0

MOVDI,0

BG:

CMPDBUF[DI],'#'

JEEN;遇到#结束

INCDI

CMPDBUF[DI],0;和0比较

JGL1;大于

JLL2;小于

L1:

INCPLUS;正数个数加1

JMPBG;继续循环

L2:

INCMINS;负数个数加1

JMPBG

EN:

MOVAH,4CH

INT21H

5、运行结果:

实验八:

一、实验要求

1利用PROTEUS平台,编程实现8086的由小到大的数据排列。

2利用系统功能调用实现需要排序数据的输入和排序结果显示。

二、实验目的

1、熟悉实验系统的编程和使用。

2、了解排列的简单算法。

3、了解“冒泡排序”法。

4、实验代码:

A:

降序:

;multi-segmentexecutablefiletemplate.

;addyourdatahere!

DATASEGMENT

ARRAYDB25,46,3,75,5,30

COUNTEQU$-ARRAY

DATAENDS

STACKSEGMENTPARASTACK'STACK'

DB60DUP('?

')

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVDX,COUNT-1

MOVBL,0FFH

AGAINO:

CMPBL,0

JEDONE

XORBL,BL

MOVCX,DX

MOVSI,COUNT-1

AGAIN1:

MOVAL,ARRAY[SI-1]

CMPAL,ARRAY[SI]

JAEUNCH

EXCH:

XCHGARRAY[SI],AL

MOVARRAY[SI-1],AL

MOVBL,0FFH

UNCH:

DECSI

LOOPAGAIN1

DECDX

JNZAGAINO

DONE:

JMP$

CODEENDS

ENDSTART

B:

升序:

;multi-segmentexecutablefiletemplate.

;addyourdatahere!

DATASEGMENT

ARRAYDB25,46,3,75,5,30

COUNTEQU$-ARRAY

DATAENDS

STACKSEGMENTPARASTACK'STACK'

DB60DUP('?

')

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVDX,COUNT-1

MOVBL,0FFH

AGAINO:

CMPBL,0

JEDONE

XORBL,BL

MOVCX,DX

MOVSI,COUNT-1

AGAIN1:

MOVAL,ARRAY[SI]

CMPAL,ARRAY[SI-1]

JAEUNCH

EXCH:

XCHGARRAY[SI-1],AL

MOVARRAY[SI],AL

MOVBL,0FFH

UNCH:

DECSI

LOOPAGAIN1

DECDX

JNZAGAINO

DONE:

JMP$

CODEENDS

ENDSTART

5、运行结果:

试验九:

一实验目的:

1、掌握DOS调用的输入输出功能

2、掌握分支程序设计的方法

二实验内容:

1、每次从屏幕输入一个大写字母,并将其转换为相应的小写字母输出显示到屏幕上,然后继续输入下一个字母;

2、此转换一直进行到输入“#”号为止;

3、若输入过程中输入了除大写字母和“#”以外的其他字符,则在屏幕上给出错误提示信息:

“ERROR!

”,并继续进行下一个大写字母的输入.

4、实验代码:

DATASEGMENT

ERRDB'ERROR',0DH,0AH,'$'

DATAENDS

STACKSEGMENTSTACK

DB200DUP(0)

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

IPT:

MOVAH,1;键盘输入大写字母

INT21H

CMPAL,'#'

JEEN

JNEOPT

OPT:

CMPAL,'A';转换为小写字母并输出

JBERROR

CMPAL,'Z'

JAERROR

ADDAL,20H

MOVAH,2

MOVDL,AL

INT21H

JMPIPT

ERROR:

MOVDX,OFFSETERR;输出ERROR并换行

MOVAH,9

INT21H

JMPIPT

EN:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

5、运行结果:

试验十:

一、实验目的:

设计型实验的完成过程。

二、实验要求:

1、利用汇编编写阶乘的算法。

2、键盘输入数据,屏幕显示结果。

3、程序最小可算到6的阶乘。

4、实验代码:

STACKSEGMENTPARASTACK'STACK'

DW64DUP(?

STACKENDS

DATASEGMENT

NDB6

FUNCNDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK,DS:

DATA

MAINPROCFAR

START:

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

PUSHCX

MOVAH,0

MOVAL,N

CALLFACTOR

MOVFUNCN,AX

POPCX

RET

MAINENDP

FACTORPROCNEAR

PUSHAX

SUBAX,1

JNEAGAIN

POPAX

JMPFIN

AGAIN:

CALLFACTOR

POPCX

MULCL

FIN:

RET

FACTORENDP

CODEENDS

ENDSTART

5、运行结果:

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

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1