东北大学汇编实验.docx

上传人:b****3 文档编号:1122253 上传时间:2022-10-17 格式:DOCX 页数:15 大小:85.71KB
下载 相关 举报
东北大学汇编实验.docx_第1页
第1页 / 共15页
东北大学汇编实验.docx_第2页
第2页 / 共15页
东北大学汇编实验.docx_第3页
第3页 / 共15页
东北大学汇编实验.docx_第4页
第4页 / 共15页
东北大学汇编实验.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

东北大学汇编实验.docx

《东北大学汇编实验.docx》由会员分享,可在线阅读,更多相关《东北大学汇编实验.docx(15页珍藏版)》请在冰豆网上搜索。

东北大学汇编实验.docx

东北大学汇编实验

课程编号:

B080103020

《汇编语言程序设计》

实验报告

 

姓名

学号

班级

指导教师

实验名称

数据传送、分支与循环结构程序设计实验

开设学期

2014-2015第一学期

开设时间

第1周第10周

报告日期

2014年11月6日

评定成绩

评定人

评定日期

东北大学软件学院

实验1数据传送指令

1、实验目的:

了解和掌握MOVPUSHPOPXCH四条指令的作用和在编程中的用法。

2、实验要求:

EDX9个寄存器。

INCLUDEIrvine32.inc.code

mainPROC

callDumpRegsmoveax,19E0Hmovebx,3F56Hmovecx,0AF37Hmovedx,9A81HcallDumpRegsexit

mainendp

ENDmain

EDX=00401000

INCLUDEIrvine32.inc.codemainPROC

callDumpRegsmoveax,19E0Hmovebx,eaxmovecx,ebxmovedx,ecxcallDumpRegsexit

mainendp

ENDmain

(2)对EAXEBXECXED)四个寄存器进行出入堆栈的操作。

(I)将EAXEBXECXEDX四个寄存器的内容依次压入堆栈中,注意观察栈指针寄存器和堆栈内容的变化。

(ESP=75C5919F

(ESP=00000000

(ESP=00000000

(ESP=00000000

(ESP=00000000

(ESP=00000000

(ESP=00000000

(ESP=FFFFC000

记录:

压入EAX前ESP=0018FF90,

压入EAX后ESP=0018FF8C

压入EBX前ESP=0018FF8C

压入EBX后ESP=0018FF88,

压入ECX^ESP=0018FF88,

压入ECX后ESP=0018FF84,

压入EDX^ESP=0018FF84,

压入EDX后ESP=0018FF80,

操作过程中所用到的指令:

INCLUDEIrvine32.inc.code

mainPROC

callDumpRegsmoveax,[esp]callDumpRegspusheax

callDumpRegspushebx

callDumpRegs

pushecxcallDumpRegspushedx

callDumpRegs

exitmainendp

ENDmain

(n)将堆栈中的内容依次弹出到EAXEBXECXED潮个寄存器,注意观察栈指针寄存

器和堆栈内容的变化。

记录:

弹出到EAX前ESP=0018FF90,(ESP=00000000

弹出到EAX后ESP=0018FF94,(ESP=00000000

(ESP

=00000000

(ESP

=00000000

(ESP

=00000000

(ESP

=E18A40B7

(ESP

=E18A40B7

(ESP

=FFFFF801

includeIrvine32.inc

.code

mainproc

movesi,[esp]

callDumpRegs

pusheax

movesi,[esp]

callDumpRegs

pushebx

movesi,[esp]

callDumpRegs

pushecx

movesi,[esp]

callDumpRegs

pushedx

popedx

movesi,[esp]callDumpRegs

popebx

movesi,[esp]

弹出至yEBX前ESP=0018FF94,弹出至卩EBX后ESP=0018FF98,弹出至卩ECX前ESP=0018FF98,弹出至卩ECX后ESP=0018FF9C,弹出至yEDX前ESP=0018FF9C,弹出至yEDX后ESP=0018FFAQ操作过程中所用到的指令:

callDumpRegspopeax

movesi,[esp]

callDumpRegs

exit

mainendp

endmain

(3)已知EAX=3F56HECX=4690H,利用交换指令交换这两个寄存器的内容。

ECX=00004690

ECX=00003F56

记录:

交换前EAX=00003F56

交换后EAX=00004690

操作过程中所用到的指令:

IncludeIrvine32.inc

.code

mainPROC

moveax,3F56Hmovecx,4690HcallDumpRegsxchgeax,ecxcallDumpRegsexit

mainENDP

ENDmain

实验二逻辑指令、跳转指令与分支程序设计

1、实验目的:

了解和掌握逻辑指令、比较指令、无条件/有条件转移类指令的功能和作用,以及此类

指令的使用方法。

2、实验要求:

具体了解和掌握逻辑指令、比较指令、无条件/有条件转移类指令的使用和在使用时应注意的问题,学习分支型程序设计的一般方法。

(1)在DEBU系统状态下,分别编制、调试并记录以下逻辑指令程序段的每一条指令的运行情况:

(I)

moval,41|al=29H

oral,20|al=3DH

(n)

moval,66

Ial=42H

andal,0df

Ial=00H

(川)

movEAX,5678

IEAX=0000162EH

xorEAX,EAX

IEAX=00000000H

(W)

movEAX,0ff00

IEAX=0000FF00H

notEAX

IEAX=FFFF00FFH

(V)

movEAX,1234

IEAX=000004D2H

testEAX,1

IEAX=000004D2HSF=0ZF=1OF=0

testEAX,2

IEAX=000004D2HSF=0ZF=0OF=0

testEAX,4

IEAX=000004D2HSF=0ZF=1OF=0

testEAX,8

IEAX=000004D2HSF=0ZF=1OF=0

testEAX,10

IEAX=000004D2HSF=0ZF=0OF=0

testEAX,20

IEAX=000004D2HSF=0ZF=0OF=0

testEAX,40

IEAX=000004D2HSF=0ZF=1OF=0

testEAX,80

IEAX=000004D2HSF=0ZF=0OF=0

test指令的作用是将原操作数与目的操作数相与,但结果不送会目的操作数,只改变标

志位,并不修改操作数。

(2)已知DATA单元开始存放三个带符号数,编制程序,检查三个数据是否同号,若同时为正,则在显示器上显示“+”;同时为负,则显示“-”;否则显示空格“”。

要求:

分别用三组数据(同时为正,同时为负,异号)调试程序,验证程序的正确性。

includeIrvine32.inc

.data

interraysdword23h,23h,-23h

.code

mainproc

movedi,OFFSETinterray

moveax,[edi]

andeax,80000000h

pusheax

moveax,[edi+4]

andeax,80000000h

pusheax

moveax,[edi+8]

andeax,80000000h

pusheax

popeax

popebx

popecx

jnzL1

cmpeax,ebx

jneL2

cmpeax,ecx

jneL2

moval,'+'callWriteCharexit

L1:

cmpeax,ebx

jneL2

cmpeax,ecx

jneL2

moval,'-'callWriteCharexit

L2:

moval,''

callWriteChar

exit

mainendp

endmain

实验三算术运算类指令、移位指令及循环程序设计

1、实验目的:

了解和掌握加、减、乘、除指令的在程序设计中的用法和应注意的问题,了解和掌握移

位指令的功能、作用和方法。

了解和掌握循环控制类指令的功能、作用和方法。

学会循

环程序设计的方法。

学习汇编语言输出输入语句的设计。

2、实验要求:

具体了解和掌握算术类指令、移位指令和循环控制类指令的使用,以及在使用时应注意

的问题,学习循环程序设计的

般方法。

条指令的

(1)在DEBU系统状态下,分别编制、调试并记录以下加、减程序段的每

运行情况,查看寄存器的结果:

(I)

MOVEAX,2389

MOVEBX,OCEDFH

ADDEAX,EBX

(n)

MOVEAX,2389

MOVEBX,0CEDFH

SUBEAX,EBX

(川)

MOVEAX,2389

MOVEBX,0CEDFH

ADDAH,BH

IEAX=00000955H

IEBX=0000CEDFH

IEAX=0000D834H

IEAX=00000955H

IEBX=0000CEDFH

IEAX=FFFF3A76H

IEAX=00000955H

IEBX=0000CEDFH

IAH=D7BH=CE

EBX=0000CEDFH

EBX=0000CEDFH

 

ADDAL,BL

(W)

MOVEAX,2389

MOVEBX,OCEDFH

ADDAH,BH

ADCAL,BL

IAL=34BL=DF

IEAX=00000955H

IEBX=0000CEDFH

IAH=D7BH=CE

IAL=34BL=DFEFL=00000213

(2)在DEBU系统状态下,分别编制、调试并记录以下乘、除程序段的每一条指令的运行情况:

(I)

MOVAL,23

MOVBL,0CEH

MULBL

(n)

MOVAX,2389

MOVBX,0CEDFH

MULBX

(川)

MOVAX,2389

MOVBL,0CEH

DIVBL

(W)

MOVAX,2389

MOVDX,0856

MOVBX,0CEDFH

DIVBX

IAL=17H

IBL=CEH

IAX=1282HOV=1

IAX=0955H

IBX=CEDFH

IDX=078AHAX=870BHCF=1

IAX=0955H

IBL=0CEH

IAH=7BHAL=0BH

IAX=0955H

IDX=0358H

IBX=CEDFH

IAX=0423HDX=44D8H

(3)在DEBU系统状态下,运行情况:

(I)

movEAX,420

shlEAX,1

(n)

movEAX,240

movcl,4

shlEAX,cl

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

当前位置:首页 > 工程科技 > 能源化工

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

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