循环结构程序设计方案汇编语言.docx

上传人:b****9 文档编号:25569781 上传时间:2023-06-09 格式:DOCX 页数:15 大小:75.64KB
下载 相关 举报
循环结构程序设计方案汇编语言.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

循环结构程序设计方案汇编语言

汇编语言实验报告

实验名称:

循环结构程序设计

姓名:

学号:

班级:

一、实验内容

1.用多种循环方法实现1+2+3+…+20的程序(至少二种方法);

2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z

或a-z字符,均显示“c”;若是回车字符<CR>其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入;(选做)

3、编写一个汇编语言程序,要求将BX寄存器内的小写字母用大写字母显示出来。

4、ADDRI元是存放数据的内存单元,要求将该内存单元中的字依次用十六进制数显示出来。

二、实验目的

1.掌握循环程序的结构。

2.掌握循环程序的设计、编写及调试方法。

3.掌握循环程序设计的基本方法。

主要掌握几种基本的循环程序设计技巧,如

计数法程序设计、当循环、直到循环等程序设计技术。

三、实验结果

1、将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR和

ADDR开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在RESULT

开始的两个字存储单元中。

实验代码:

(1.ASM1.OBJ1.EXE)

datasegment

buffdw6,35,99,17,80,69,50,33

addr1dw8dup⑺

addr2dw8dup(?

resultdw0,0

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movcx,8d

movsi,0

movdi,0

movbx,0

movdx,0

L1:

testbuff[si],0001h

jeL2

movax,buff[si]

movaddr2[bx],ax

addsi,2

addbx,2

incdl

deccx

jmpL1

L2:

movax,buff[si]

movaddr1[di],ax

adddi,2

addsi,2

incdh

deccx

jmpL1

movsi,0

movbyteptrresult[si],dh

addsi,2

movbyteptrresult[si],dl

codeends

endstart

运行结果如下:

耐0006

DS=1427kt

醐=0师A

ES=14j.7

1EED2

CK=FFFF

SS=1427

jm

CS=142Bh0014

SP=B0B8

IP=S94Q

BF=60O0

NUUPE[

SI=S012

NGNZ

D1=0B08ACPENC

AK=8336

CX=FFFF

SP=B000

SI=0Q12

Dr^0008

DS=1427

ES-1417

SG-1427

OS-142B

IP=0014

NUUFE【

NGNZ

ACPENC

1420-001^1

kt

F78100O00100TEtTWORD

PTP(£1^0000],00^1

DC:

«012-0050

UK-FFPF

SI-MM2

IH>=MUUK

DS-142?

ES>1417

SS-1427

CG*142B

IP=001ft

NUUPEl

PLZR

NAPEHC

142E:

0O1A

I7413

JZ

Q02F

2、不利用乘法指令实现乘法的程序

代码如下:

(2.ASM2.0BJ2.EXE)datasegment

xdw30d

ydw10d

dataends

codesegment

assumecs:

code,ds:

data

start:

pushds

subax,ax

pushax

movax,data

movds,ax

movcx,x

movbx,y

movax,0

L1:

addax,bx

loopL1

movdx,ax

movah,2

int21h

codeends

endstart

运行结果如下:

 

 

DS^0B9BES^0B8B»D9C:

e014B3C3

CX=0902DX-0000SP=FFFC

SS=0B9BCS=0B9GIP=0014

ADPAK,EK

DP=0030GI=0Q@BDI-0000

NUUPElPLNZACPENG

 

DS-6B9BES=0B8EBB9C:

001gE2FC

削詡盹A

De-eB9DES-0BOBfeB9C;001403G3

CX=M0M2SF-FPFG

SS-0B9BCS=0B9GIP=e016LOOP001^4

CX=0001DM=0000GP=FFFCES-0B9BCE-0B9CIP-001>lADP

UF=»(J0(JDI

NUUFElPLNZACPENG

BP=0030SI-0S0BDI=0000

HUUPElPLHZACPENC

 

AX-01ZG

DS-=eB9D0H9C:

OBlfi

醐-&&&dES<0B8E

E2FC

CK-Q001DX—00B也SP-FFFCSS-0B9BCS=0E9CIP=001&LOOP阴1£

BP-0000

SI-00mDI

NU

UPEl

PL

NZNAPO

NC

fiK=012C

CM=0800

DX=00O0

SP=FFFC

BP=0000

SI=9B00DI

幅=fin9n

ES=EIBSE

KR=0B9R

CS=RR9C

TP=Hfl10

NU

LIPFT

PL

NZNAPO

NC

0B9C:

0018

8BD0

MOU

DX,

AK

AM-012C

BK-0000

CK-00S0

DK-B12G

SP-FFFC

BP"0000

S1»0000DI-BBO0

DS=0B9B

ES

SS=WB9B

CS=0B9C

IP=001A

NU

UPEl

PL

NZNAPO

NC

KB9C:

001AB402MOUAH,02

3、用多种循环方法实现1+2+3+…+20的程序(至少二种方法)

代码1:

(31.ASM31.0BJ31.EXE)

DATASEGMENT

XDW0D

YDW20D

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVBX,X

MOVCX,Y

MOVAX,0

L1:

INCBX

ADDAX,BX

LOOPL1

MOVDX,AX

MOVAH,2

INT21H

CODEENDS

ENDSTART

运行结果1如下:

(结果存于DX寄存器中)

CX=0000DX=e0S6GP^FFFC

SS>=0D9BCS=0B9CIP-001^

MOUDX/X

CK=0000DX=HHD2SP=FFFC

SS=0B9ECS=0B9CIP=0B1B

nouAH,82

CH=0000DK=00D2SP=FFFC

SS=0B9BCS=0B9CIP=001D

IHT21

3P-0O3051-0600DI=0@0O

NUUPElPLHZACPENC

BP=0Q80£I=6090DI=0600

NUUPElPLNZACPEINC

BP电00081=0600DI=0000

NUUPElPLNZACPENC

 

SP-FFF6BP=00O0ST=0600DI=0000

IP=i07CNUUPDTPLHZACPENC

W=C2D2BH=0014S-0B9BES-SBHR0fi7:

10?

C9B

CM=0000DK=00D2

SS-9B9BGS=00ft7

NOP

 

实验代码2如下:

(32.ASM32.OBJ32.EXE)

DATASEGMENT

YDW20D

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVCX,Y

MOVAX,0

MOVBX,0

L1:

INCBX

ADDAX,BX

CMPBX,20

JNZL1

MOVDX,AX

MOVAH,2

INT21H

CODEENDS

ENDSTART

运行结果2如下:

(实验结果存于DX寄存器中)

BX=00±4

CX=WU14

GP=FPFC

SI

DI=00Q0

b)S-0B9B

ES-0B6B

SS-0B9B

CS-0B9C

IP=00i&

HUUPEl

PLHZAC

PENC

93FKL4

enr

1眺

IflK=0(11)2

BK=S014

DK=0Q0O

SP=FFFC

BP=a090

ST=fiOBO

DI=0000

h)S=0B5B

ES=BBSG

SS=0E9E

CS=0B9C

IP=0fii9

MUUPEl

PLZRNA

PENC

0B9C:

001?

-t

75F8

JNZ

:

0913

仙=0OD2

BK=0914

CH-0014

DM-0088

SP-FFFC

BP-08U

si-aara

DI=0000

E£=0B8B

S8=0B9B

CS=0B9C

IP=001B

HUUPEl

PLZRNA

PENC

i8BD0

MOU

ftK

RX=0BD2

BX=B914

CX=0614

DX=BBD2

£P=FFFC

BP=9S9B

SI=B000

DI=0000

DS=0B9B

SS=0E9E

CS=0B9C

IP=B01D

NVUPEl

PLZRNA

PENC

iB4Q2

MOV

92

AM-02D2

BK=0014

OK=0014

DK=00D2

SP-FFFC

BP^0000

SI-0000

DI^0600

DS=BB9B

ES-0B8B

SS-0B9B

CS-0B9C

IP=001F

NUUPEl

PLZRNA

PENC

001F

'CD21

INT

21

4、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z

或a-z字符,均显示“c”;若是回车字符<CR>其ASCII码为ODH),则结束程序,若为其它字符则不显示,继续等待新的字符输入

实验代码如下:

(4.ASM4.0BJ4.EXE)

codesegment

assumecs:

code

start:

movah,1

int21h

cmpal,Odh

jeexit

cmpal,'0'

jbstart

cmpal,'9'

jbeoutput1

cmpal,'A'

jbstart

cmpal,'Z'

jbeoutput

cmpal,'a'

jbstart

cmpal,'z'

jbeoutput

output1:

movdl,al

movah,2

int21h

jmpstart

output:

movah,02h

movdl,'c'

int21h

jmpstart

:

:

XDOGUnE~lXYUEAO?

c;\nasn\4»Gxe

5、编写一个汇编语言程序,要求将BX寄存器内的小写字母用大写字母显示出来。

实验代码如下:

(5.ASM5.OBJ5.EXE)BX寄存器中的测试数据位3132HCODESEGMENT

ASSUMECS:

CODE

START:

MOVBX,6162H

SUBBX,2020H

MOVDL,BL

MOVAH,02

INT21H

MOVBL,BH

MOVDL,BL

MOVAL,02

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下图:

:

\DOCUHEwl\¥UEAO>c:

5豳.exeA

^DOCUHE^IWUEAO

&addri元是存放数据的内存单元,要求将该内存单元中的字依次用十六进制数显示出来。

实验代码如下:

(6.ASM6.OBJ6.EXE)测试数据为1EH,3DH,34H,98HDATASEGMENT

ADDRDB1EH,3DH,34H,98H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

a

C:

SDOCIIUEAO>C:

XnasnXt.exe

1E3D3478

C:

XDOCUUEAO>_

四、实验心得体会

本次实验主要是循环结构的程序。

通过本次实验,学习汇编语言中循环结构类型的程序的编辑、编译与连接,更好的掌握分支程序的结构。

通过本次实验,我对循环结构有了一定的理解,尤其是LOOP®环指令,对

于cmp指令和JZNJZ等指令也有了一定的了解

实验过程是一个不断探索和实践,发现错误和改正错误的一个过程。

而在实验四这个试验中,首先,要解决的问题是熟悉和了解汇编语言中分支结构的内容。

在完成实验内容的过程中,由于还是处于摸索过程中,所以刚开始的进度很慢,是对着实验过程,一步一步的执行,还要不时的进行截图。

但,熟能生巧,到后来的实验就进行的比较快。

通过本次实验,掌握了汇编语言中循环结构这一部分的内容,通过上级实验,更好的理解我们在课本上看到的循环结构的内容,让我们在实验中更深一步的理解和应用。

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

当前位置:首页 > 自然科学 > 物理

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

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