- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大连理工大学计算机原理大作业教程
PAGE
PAGE - 7 -
大连理工大学
本科实验报告
(汇编语言编程实验)
课程名称: 计算机原理实验
学院(系): 电子信息与电气工程学部
专 业:
班 级:
学 号:
学生姓名:
2014 年 11 月 24 日
大连理工大学
本科实验报告
课程名称: 计算机原理实验
学院(系): 电子信息与电气工程学部
专 业:
班 级:
学 号:
学生姓名:
2014 年 11 月 24日
《计算机原理实验报告》
实验( 二 )名称: 循环程序设计编程训练
一、实验目的:
1、加深对循环结构的理解
2、掌握循环结构程序设计的方法
3、熟练掌握调试循环结构程序的方法
二、实验要求:
求某数据区???第一单元存放区内数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。并对程序进行扩展,使其能分别求出数据区中正数、零和负数的个数。
三、编程算法与说明:
为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,及得区内所包含负数的个数。
循环程序是把一个程序段重复执行多次的数据结构。一般包括四部分:
1、初始化部分
(1)循环次数设定
(2)建立地址指针
(3)有些变量赋初值
2、处理部分
数据的实际处理
3、循环控制部分
常用LOOP指令
4、结束部分
存结果
循环控制指令可以是转移指令,也可以是LOOP指令。当已知循环次数或控制条件为ZF时,用LOOP指令控制循环是最简单的办法。
程序流程图:
返回
Y
输出结果
N
C
cx←cx-1
cx=0?
C
修正指针
Y
data3←data3+1
data1←data1+1
Y
data2←data2+1
N
N
AL0是否成立
AL=0是否成立
MOV AL,[BX]
初始化
Count:循环计数
Data1:正数计数器
Data2:零数计数器
Data3:负数计数器
程序清单:
data segment
buf db 80H,7FH,00h,23h,98h,45h,77h,88h,00h,61h
count equ $-buf
buf1 db my name is zhangyu 201281497,0dh,0ah,$
buf2 db 0dh,0ah,$
buf3 db number of positive is ,$
buf4 db number of negative is ,$
buf5 db number of zero is ,$
buf6 db number of total is ,$
data1 db 0 ;正数
data2 db 0
data3 db 0
data4 db 0
data ends
ssg1 segment
dw 100 dup(0)
ssg1 ends
code segment
assume cs:code,ds:data,ss:ssg1
main:
mov ax,data
mov ds,ax
lea dx,buf1
mov ah,09h
int 21h ;输出定义的字符串
mov cx,count
lea bx,buf
circle:mov al,[bx]
cmp al,0 ;判断AL的值,自定义正数、负数和零数的子程序
jg dayu
je dengyu
jl xiaoyu
dayu:add data1,1
jmp continue1
dengyu:a
文档评论(0)