汇编语言实验5-循环程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言实验报告

Assembly Language Programming Lab Reports

______________________________________________________________________________

班级:_________ 姓名:___________ 学号:___________ 实验日期:_____________

学院:_____计算机与通信工程学院____ 专业:_______计算机科学与技术___________

实验顺序:___实验五____ 实验名称:____________循环程序设计________________

实验分数:_______ 考评日期:________ 指导教师:

______________________________________________________________________________

一.实验目的

1、掌握两种循环结构,DO WHILE的循环结构用CMP指令和条件转移指令构成。DO UNTIL用loop,loope,loopne这三种指令实现。

2、掌握以下指令

掌握循环指令,loop,loope,loopne。

掌握串处理指令,movs,cmps,scas,lods,stos 以及和他们联合使用的重复前缀指令rep,repz,repnz。

掌握伪指令EQU 及操作符'$'的使用。

掌握cmp,test和条件转移指令构成的循环结构。

3、掌握循环程序的设计过程,写出设计方法,给出程序框图,写出循环程序。

4、掌握多重循环中,可以由内层循环向外层循环跳转,或者直接向外层程序跳转,但是不允许从外向内跳转。

5、会用循环实现排序算法。

______________________________________________________________________________

二.实验环境

操作系统:windows xp

编译程序:masm 5.0

______________________________________________________________________________

三.实验原理

1、loop指令循环

2、二层、三层循环嵌套

______________________________________________________________________________

四.实验步骤及结果分析

1.简单的循环程序。

(1)写出y=5!的程序段。

data segment

info db 'The 5!=$'

t db '0123456789ABCDEF'

data ends

stack segment

db 512 dup(?)

stack ends

code segment

assume cs:code,ds:data

start:

mov ax,data mov ds,ax

mov ax,stack mov ss,ax

.

mov sp,512

mov dx,offset info

mov ah,9 int 21h

mov cx,4

mov al,1

mov bl,2

x:

mul bl inc bl

loop x mov cx,4

y:

push cx mov cl,4

rol ax,cl mov si,ax

and ax,0fh

mov bx,ax

mov dl,t[bx]

mov ah,2

int 21h

mov ax,si

pop cx

loop y

mov ah,4ch int 21h

code ends

.

end start

运行截图:

(2)在程序为N的字节数组value中取出第一个负数存在BL中。

代码见6-1.asm和6-2.asm

data segment

info db 'The ID of th first negative number is:$'

t db '0123456789ABCDEF'

t1 db 1,3,5,7,-9,11,-13,15

count equ $-t1

data ends

stack segment

db 512 dup(?)

stack ends

code segment

assume cs:code,ds:data

.

start:

mov ax,data mov ds,ax

mov ax,stack mov ss,ax

mov sp,512

mov dx,offset info

mov ah,9

int 21h

mov cx,count

mov bx,0

x:

mov al,t1[bx]

inc bx

and al,10000000b

loopz x

dec bx

mov ax,bx

mov cx,4

y:

push cx

mov cl,4

rol ax,cl

mov si,ax

相关文档
最新文档