微机原理EMU8086使用及指令系统熟悉.docx

上传人:b****6 文档编号:13437511 上传时间:2023-06-14 格式:DOCX 页数:13 大小:1.23MB
下载 相关 举报
微机原理EMU8086使用及指令系统熟悉.docx_第1页
第1页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第2页
第2页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第3页
第3页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第4页
第4页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第5页
第5页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第6页
第6页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第7页
第7页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第8页
第8页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第9页
第9页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第10页
第10页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第11页
第11页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第12页
第12页 / 共13页
微机原理EMU8086使用及指令系统熟悉.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理EMU8086使用及指令系统熟悉.docx

《微机原理EMU8086使用及指令系统熟悉.docx》由会员分享,可在线阅读,更多相关《微机原理EMU8086使用及指令系统熟悉.docx(13页珍藏版)》请在冰点文库上搜索。

微机原理EMU8086使用及指令系统熟悉.docx

微机原理EMU8086使用及指令系统熟悉

[公司名称]

实验一EMU8086使用及指令系统熟悉

微机原理上机实验

[日期]

 

一、实验要求

1.熟悉并掌握EMU8086汇编语言调试环境;

2.学习8086的指令系统,输入简单的指令,观察各寄存器、内存相关单元以及处理器标志位的变化(数据传送类指令,算数运算类指令,逻辑运算类指令,标志处理和CPU控制类指令,移位和循环移位类指令,处理器控制类指令等,要求每类指令至少一个用例。

具体用例自行设计,可参考教材用例);

3.学习汇编语言程序设计的基本步骤和方法;

4.学会使用EMU8086debug调试程序;

5.编写一个简单的程序:

将“ThisismyfirstASMprogram-姓名(汉语拼音各人的姓名)”放在DS=1000H,BX=0000H开始的存储器单元中,然后将该内容搬移到BX=0100H开始的单元中,最后将该字符串通过DOS功能调用显示在屏幕上。

二、实验目的

1.学习EMU8086仿真开发环境的使用,理解和掌握汇编语言编程的基本步骤;

2.熟悉8086指令系统;

3.熟悉变量、常量及伪指令的使用;

4.熟悉内存单元的存储结构,字符串的处理以及简单的编程。

三、实验过程(调试分析)

3.1熟悉并掌握EMU8086汇编调试环境

此为EMU8086新建汇编源程序的界面,对应有四种模板可以挑选:

①COM——无需分段,所有内容均放在代码段中,程序代码默认从ORG0100H开始

②EXE——需要分段,内容按代码段、数据段、堆栈段划分,编译器自动完成空间的分配

③BIN——二进制文件,适用于所有用户定义的结构类型

④BOOT——适用于在软盘中创建的文件

⑤emptyworkspace可以创建空的文档

此为一个EXE的模板

 

3.2测试几类简单的指令

3.2.1数据传送指令

①测试一

name"testmov"

org100h

MOVAX,1234H

MOVBH,12H

MOVBL,34H

MOVCX,12

MOVDX,CX

MOVSP,AX

②测试二

name"testmov2"

org100h

MOVAX,2000H

MOVDS,AX

MOV[1000H],'A'

MOV[1001H],'B'

MOVSI,1000H

MOVAX,[SI]

HLT

3.2.2算数运算指令

计算a*b+c-18

其中a=34H,b=56H,c=0E7H

datasegment

DAT1DB34H

DAT2DB56H

DAT3DB0E7H

DATYDW?

ends

stacksegment

dw128dup(0)

ends

codesegment

start:

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

MOVAX,STACK

MOVSS,AX

MOVAX,DATA

MOVDS,AX

MOVAL,DAT1

MOVBL,DAT2

IMULBL

MOVBX,AX

MOVAL,DAT3

CBW

ADDAX,BX

SUBAX,18

MOVDATY,AX

ends

endstart

3.2.3逻辑运算指令

通过单步调试可以追踪到每一条指令执行所产生的效果,此处指放出最后结果的截图

name'testlogicoperation'

org100h

MOVAX,45FCH

MOVBX,0034H

ANDAL,0FH

ORBX,000FH

XORAH,0FH

NOTBH

HLT

3.2.4标志处理和CPU控制类指令

name'testcontrolandflags'

org100h

CLC;0-->CF

CMC;^CF-->CF

STD;1-->DF

CLI;0-->IF

NOP

NOP;blank

HLT;pause

 

3.2.5循环和移位类指令

name"testcirclereplacement"

org100h

MOVBL,01110010B

STC;1-->CF

MOVCL,3

RCRBL,CL

HLT

算数移位三次后结果应该为

BL=10101110B=AEH

3.3编写一个简单的程序实现字符串的储存、搬移和显示

①不分段,仅使用代码代码段,使用逐个字符存入

name"FIRSTPROGRAM"

org100h

;setsegmentregister:

MOVAX,1000H

MOVDS,AX

MOVBX,0000H

;print"ThisismyfirstASMprogram-YongRongFeng"

MOV[02h],'T'

MOV[04h],'h'

MOV[06h],'i'

MOV[08h],'s'

MOV[0ah],''

MOV[0ch],'m'

MOV[0eh],'y'

MOV[10h],''

MOV[12h],'f'

MOV[14h],'i'

MOV[16h],'r'

MOV[18h],'s'

MOV[1ah],'t'

MOV[1ch],''

MOV[1eh],'A'

MOV[20h],'S'

MOV[22h],'M'

MOV[24h],''

MOV[26h],'p'

MOV[28h],'r'

MOV[2ah],'o'

MOV[2ch],'g'

MOV[2eh],'r'

MOV[30h],'a'

MOV[32h],'m'

MOV[34h],'-'

MOV[36h],'Y'

MOV[38h],'a'

MOV[3ah],'n'

MOV[3ch],'g'

MOV[3eh],'R'

MOV[40h],'o'

MOV[42h],'n'

MOV[44h],'g'

MOV[46h],'F'

MOV[48h],'e'

MOV[4ah],'n'

MOV[4ch],'g'

MOVCX,38;timesofmovingcharacters

MOVBX,0002H

;movestring

move:

MOVAX,[BX]

MOV[BX+0100H],AX

ADDBX,2

LOOPmove

;printscreen

MOVBX,0102H

MOVCX,38

print:

MOVDL,[BX]

MOVAH,02H

INT21H

ADDBX,2

LOOPprint

;returnDOS

MOVAH,4CH

INT21H

ret

②分段并使用字符串输入,字符串显示

name"FIRSTPROGRAMUSEHEX"

datasegment

HEXDB'ThisismyfirstASMprogram-YangRongFeng','$'

ends

stacksegment

dw128dup(0)

ends

codesegment

start:

;Youneedtocorrespondthesegment

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

MOVAX,STACK

MOVSS,AX

MOVSP,100

MOVAX,DATA

MOVDS,AX

;printhexonthescreen

MOVDX,OFFSETHEX

MOVAH,9

INT21H

MOVAH,4CH

INT21H;returnDOS

ends

endstart

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

当前位置:首页 > 医药卫生 > 基础医学

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

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