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

上传人:b****5 文档编号:14300497 上传时间:2023-06-22 格式:DOCX 页数:12 大小:98.90KB
下载 相关 举报
循环结构程序设计汇编语言.docx_第1页
第1页 / 共12页
循环结构程序设计汇编语言.docx_第2页
第2页 / 共12页
循环结构程序设计汇编语言.docx_第3页
第3页 / 共12页
循环结构程序设计汇编语言.docx_第4页
第4页 / 共12页
循环结构程序设计汇编语言.docx_第5页
第5页 / 共12页
循环结构程序设计汇编语言.docx_第6页
第6页 / 共12页
循环结构程序设计汇编语言.docx_第7页
第7页 / 共12页
循环结构程序设计汇编语言.docx_第8页
第8页 / 共12页
循环结构程序设计汇编语言.docx_第9页
第9页 / 共12页
循环结构程序设计汇编语言.docx_第10页
第10页 / 共12页
循环结构程序设计汇编语言.docx_第11页
第11页 / 共12页
循环结构程序设计汇编语言.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《循环结构程序设计汇编语言.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计汇编语言.docx(12页珍藏版)》请在冰点文库上搜索。

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

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

循环结构程序设计(汇编语言)

 

汇编语言实验报告

 

实验名称:

循环结构程序设计

姓名:

学号:

班级:

 

一、实验内容

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

2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入;(选做)

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

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

二、实验目的

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

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

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

主要掌握几种基本的循环程序设计技巧,如计数法程序设计、当循环、直到循环等程序设计技术。

3、实验结果

1、将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR1和ADDR2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在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

运行结果如下:

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

代码如下:

(2.ASM2.OBJ2.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

运行结果如下:

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

代码1:

(31.ASM31.OBJ31.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寄存器中)

实验代码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寄存器中)

4、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入

实验代码如下:

(4.ASM4.OBJ4.EXE)

codesegment

assumecs:

code

start:

movah,1

int21h

cmpal,0dh

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

exit:

movah,4ch

int21h

codeends

endstart

运行结果如下:

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

实验代码如下:

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

CODESEGMENT

ASSUMECS:

CODE

START:

MOVBX,6162H

SUBBX,2020H

MOVDL,BL

MOVAH,02

INT21H

MOVBL,BH

MOVDL,BL

MOVAL,02

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下图:

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

实验代码如下:

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

DATASEGMENT

ADDRDB1EH,3DH,34H,98H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,0

MOVDI,OFFSETADDR

STEP:

MOVAL,[DI]

ADDDI,1

MOVBL,AL

MOVDL,AL

MOVCL,4

SHRDL,CL

CMPDL,9

JBENEXT1

ADDDL,7

NEXT1:

ADDDL,30H

MOVAH,2

INT21H;显示高位ASCII码

MOVDL,BL

ANDDL,0FH

CMPDL,9

JBENEXT2

ADDDL,7

NEXT2:

ADDDL,30H

MOVAH,2

INT21H;显示低位ASCII码

INCSI

CMPSI,4

JNZSTEP

MOVAH,4CH;返回DOS

INT21H

CODEENDS

ENDSTART

运行结果如下:

四、实验心得体会

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

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

通过本次实验,我对循环结构有了一定的理解,尤其是LOOP循环指令,对于cmp指令和JZN、JZ等指令也有了一定的了解

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

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

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

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

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

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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