计算机.docx
- 文档编号:8968164
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:12
- 大小:700.26KB
计算机.docx
《计算机.docx》由会员分享,可在线阅读,更多相关《计算机.docx(12页珍藏版)》请在冰豆网上搜索。
计算机
东北大学
计算机硬件技术基础实验报告
专业班级:
车辆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
运行结果如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机