计算机.docx

上传人:b****7 文档编号:8968164 上传时间:2023-02-02 格式:DOCX 页数:12 大小:700.26KB
下载 相关 举报
计算机.docx_第1页
第1页 / 共12页
计算机.docx_第2页
第2页 / 共12页
计算机.docx_第3页
第3页 / 共12页
计算机.docx_第4页
第4页 / 共12页
计算机.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机.docx

《计算机.docx》由会员分享,可在线阅读,更多相关《计算机.docx(12页珍藏版)》请在冰豆网上搜索。

计算机.docx

计算机

东北大学

计算机硬件技术基础实验报告

专业班级:

车辆0903

姓名:

丫头

学号:

2008888

实验题目:

综合程序设计

日期:

2011年11月28日

一.实验内容:

【程序1】自内存DATA单元开始存放若干个无符号字节数,数据个数在COUNT单元存放,编制程序分别计算其基数,偶数的和,并分别存入ODDSUM,EVENSM单元.设各类和不超过16位二进制数,可用一个字表示或存放.

主程序如下:

DSEGSEGMENT

DATADB15H,26H,03H,64H,8AH,0AAH,24H,48H

COUNTDW08

ODDSUMDW0

EVENSUMDW0

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

MAIN:

MOVAX,DSEG

MOVDS,AX

LEASI,DATA

MOVCX,COUNT

XORAX,AX

XORBX,BX

XORDX,DX

AGAIN:

MOVAL,[SI]

TESTAL,01

JZEVENS

ADDBX,AX

JMPCHCNT

EVENS:

ADDDX,AX

CHCNT:

INCSI

LOOPAGAIN

MOVODDSUM,BX

MOVEVENSUM,DX

MOVAH,4CH

INT21H

CSEGENDS

ENDMAIN

运行结果如下:

思考题:

测试最低位状态也可以用右移指令,然后判断CF的状态。

请问如何修改程序语句?

扩展题:

有一个班级,学生人数存储于内存NUB单元,该班同学某门课程的成绩存放于内存S开始的单元,编制程序,统计该班该课程的平均成绩,存放于E单元。

编写的程序如下:

DSEGSEGMENT

SDW78,65,45,87,90,64,95,75,74

NUBDW9

EDW0

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEASI,S

MOVAX,0

MOVBX,0

MOVCX,NUB

AGAIN:

MOVBX,[SI]

ADDAX,BX

ADDSI,2

LOOPAGAIN

DEVIDE:

DIVNUB

MOVE,AX

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

运行结果如下:

【程序2】是贬值一程序。

从键盘输入一个字符,若为“1”,则显示“THEFIRSTSUBROUTINE!

”;否则显示“INPUTTHERIGHTCHARACTER”,返回DOS。

程序清单如下:

DATASEGMENT

STRODB'INPUTTHERIGHTCHARACTER','$'

STR1DB'INPUTCHARACTER:

$'

STR2DB'THEFIRSTSUBROUTINE!

$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETSTR1

MOVAH,09H

INT21H

MOVAH,01H

INT21H

CMPAL,'1'

JZSUBF

MOVDL,0DH

MOVAH,02H

INT21H

MOVDL,0AH

MOVAH,02H

INT21H

LEADX,STRO

MOVAH,09H

INT21H

JMPEXIT

SUBF:

LEADX,STR2

MOVAH,09H

INT21H

JMPEXIT

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行‘1’的结果如下:

运行‘2’的结果如下:

思考题:

请仔细阅读程序说明AH功能号分别为01H,02H,09H时所代表的功能。

扩展题:

编写程序在屏幕上显示A到Z26个字母,要求用DOS系统功能调用1NT21H的02H号功能实现。

编写程序如下:

DATASEGMENT

STRDB'OUTPUTCHARACTER:

$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETSTR

MOVAH,09H

INT21H

MOVCX,26

MOVDL,'A'

L0:

MOVAH,2

INT21H

INCDL

LOOPL0

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下:

【程序3】计算一组字数据中正数,负数和零的个数,并分别存放在PCOUNT,MCOUNT和ZCOUNT单元。

设该组数据首地址为ARRY,数据个数在CNT单元存放。

主程序清单如下:

DSEGSEGMENT

ARRYDW15,-5,1,5,0,123,964,-327,0

CNTDW9

PCOUNTDW0

MCOUNTDW0

ZCOUNTDW0

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEASI,ARRY

MOVCX,CNT

XORAX,AX

XORBX,BX

XORDX,DX

PNZN0:

TESTWORDPTR[SI],0FFFFH

JSMINUS

JNZPLUS

INCDX

JMPPMZN1

PLUS:

INCAX

JMPPMZN1

MINUS:

INCBX

PMZN1:

INCSI

LOOPPNZN0

MOVPCOUNT,AX

MOVMCOUNT,BX

MOVZCOUNT,DX

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

运行结果如下:

思考题:

本程序利用TEST指令影响标志位来判别程序分支,请问程序利用的是哪两个标志?

扩展题:

设有一组字节数据,编制程序求其全部正数的和。

设和不超过16位二进制数,可用一个字表示或存放。

编写程序如下:

DSEGSEGMENT

BUFDB15,-5,7FH,-34,56,7FH

BUF1DW0

DSEGENDS

CODESEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

MOVDX,0

MOVCX,8

MOVSI,OFFSETBUF

L0:

TESTBYTEPTR[SI],0FFH

JSL1

MOVAX,[SI]

ANDAX,00FFH

ADDDX,AX

L1:

INCSI

LOOPL0

MOVBUF1,DX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下:

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

当前位置:首页 > 自然科学 > 天文地理

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

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