手机版

循环与分支程序设计一

发布时间:2024-11-17   来源:未知    
字号:

集 美 大 学

计 算 机 工 程 学 院

实 验 报 告

课程名称 实验名称 实验类型

姓名 日期 成绩

汇编语言程序设计

实验二、循环与分支程序设计

一 设计型

学号

2012/4/6

地点

教师

第1页 共7页

1.实验目的及内容

1.实验目的

掌握循环程序的设计方法,掌握程序的调试技术。

2.实验内容 1)按5行6列的表格形式显示大写英文字母,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每6个字符为一行,每行中的相邻两个字符之间用空格符隔开。

2)将两个多位十进制数相加,要求被加数、加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首址的内存区中(低位在前),结果送回DATA1处,并在屏幕上显示该加法算式。例如:

12345 +78962 ------ 91307

2.实验环境

Masm for windows 集成实验环境2012

3.实验方法

1)单分支程序设计与单重循环结构程序设计

2)单分支、多分支程序设计与单重循环结构程序设计。

4.实验步骤

1. A)把26给CX,41H给BL。

B)显示BL和空格后,BL作加1调整,将CX给AX,并减1,再除以6看余数是否为2,不是则转D)执行,否则顺序执行。

C)显示回车、换行。

D)CX减1,若CX等于0则结束,否则转B)执行继续循环。

2.A)设置地址指针bp用于数字从高位到低位依次存入内存,被加数存入DATA1,加数存入DATA2

B)再利用bp将两数相加,结果存入DATA1。 C) 最后利用地址指针bp把结果显示出来。

5.实验结论

1.

2.

6. 实验分析

1. 把26个字母按五行六列的格式显示出来关键是要设置计数器,判断该行

是否已显示了6个字母

2. 因为被加数、加数均以ASCII码形式各自顺序存放在以DATA1和DATA2

为首址的内存区中(低位在前),所以显示加数、被加数时要从后面的单元开始显示,通过设置地址指针可以方便地实现加法运算。

附件

1. 程序流程图

1) 显示大写字母

2) 两个多位十进制数相加

2. 汇编语言源程序

1) 显示大写字母

print macro x mov dl,x mov ah,2 int 21h endm

code segment

assume cs:code start: mov cx,26 mov bl,41h l1: print bl print 20h inc bl mov ax,cx dec ax mov bh,6 div bh cmp ah,2 jnz next print 13 print 10 next:loop l1 mov ah,4ch int 21h code ends end start

2) 两个多位十进制数相加

data segment

data1 db 10 dup (0) data2 db 10 dup (0) count equ $-data2

data ends cin macro mov ah,1 int 21h endm

cout macro x mov dl,x mov ah,2 int 21h endm

code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax mov bp,count cout 20h l1: cin

cmp al,13 je next1 dec bp

mov byte ptr data1[bp],al jmp l1 next1:cout 13 cout 10 cout '+' mov bp,count l2: cin

cmp al,13 je next2 dec bp

mov byte ptr data2[bp],al jmp l2 next2:cout 13 cout 10 mov si,bp

mov cx,count+1 sub cx,si l3:cout '-' loop l3 cout 13 cout 10

mov cx,count sub cx,si

xor ax,ax

l4: mov al,byte ptr data1[bp] add al,ah xor ah,ah

add al,byte ptr data2[bp] aaa

add al,30h

mov byte ptr data1[bp],al inc bp loop l4

mov cx,bp dec bp cmp ah,1 jz next3 cout 20h jmp l5 next3:cout '1'

l5:mov bl,byte ptr data1[bp] cout bl dec bp loop l5 mov ah,4ch int 21h code ends end start

循环与分支程序设计一.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)