汇编实验2
更新时间:2023-11-25 02:02:01 阅读量: 教育文库 文档下载
姓名 班级 学号:
实验二 循环与子程序程序设计
一、实验目的
1) 加深对循环结构的理解。
2)掌握循环程序的设计方法。 3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序的结构。 5) 掌握子程序设计、编制及调试。
6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容
1) 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。
2)将从3000H内存单元开始的100个字节存储单元全部清0。 3)编制在屏幕上显示九九乘法表的程序。 4)编制在屏幕上显示用*组成的三角形的程序。
5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。
6)编写一个递归子程序,计算指数函数Xn的值,其中X,n从键盘输入。 三、实验设备 PC机一台 四、实验步骤
1) 按程序流程图编制实验程序。 2) 输入源程序。
3) 汇编、连接程序,执行程序,检查结果。
姓名 班级 学号:
4)对内存单元3000H开始的100个存储单元用E命令输入任意数。 5) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。 6) 用D命令检查执行结果。
五、实验报告的要求
1)列出源程序。
2)对程序中用到的寄存器说明其功能。 3)总结计数控制循环程序的设计方法。
4) 说明怎样使用DEBUG进行程序调试的。调试过程中所遇到的问题是如何解决的。 实验2-1 源程序: DATA SEGMENT
BUF DB '1+2*3+3*4+4*5+...+N(N+1)=$' DATA ENDS
STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATA START:
MOV AX,DATA MOV DS,AX
姓名 班级 学号:
MOV DX,01H MOV BX,01H L1:INC BX MOV AX,BX INC AX
MUL BL;(进行乘法运算,bl作为乘数) ADD DX,AX;(DX作为累加变量) CMP AX,200;N(N+1)是否大于200 JBE L1 MOV BX,DX LEA DX,BUF MOV AH,09H INT 21H;输出字符串 MOV CX,4 LOP:MOV AX,4 MOV DX,BX MUL CL SUB AX,4 MOV AH,AL MOV AL,CL MOV CL,AH;
SHR DX,CL;cl作为移位位数寄存器 AND DX,0FH CMP DX,0AH
姓名 班级 学号:
JBE L2 ADD DX,7H L2:ADD DX,30H MOV CL,AL; MOV AH,02H INT 21H
LOOP LOP;输出数据 MOV AH,4CH INT 21H CODE ENDS END START 运行结果:
实验2-2 源程序:
stack1 segment para stack dw 20h dup(0) stack1 ends
code segment
assume cs:code,ss:stack1 start:
mov ax,300h mov ds,ax
姓名 班级 学号:
mov cx,100;cx作为循环变量 lop:mov bx,cx ;bx作为地址偏移 mov al,0h ;al为0,目的是清零 mov -1[bx],al loop lop mov ah,4ch int 21h code ends end start 运行结果:
实验2-3 源程序: data segment
BUF DB 09H,09H data ends
stack1 segment para stack dw 20h dup(0) stack1 ends
姓名 班级 学号:
CODE SEGMENT
assume cs:code,ds:data,ss:stack1,es:data START:
MOV AX,DATA MOV DS,AX AND CX,0000H
MOV CL,09H;;cl作为循环变量 L1:MOV BUF,CL MOV CL,09H L2:MOV BUF+1,CL MOV AL,10 SUB AL,BUF MOV DL,AL OR DL,30H MOV AH,02H INT 21H MOV DL,'*' MOV AH,02H INT 21H MOV BL,10 SUB BL,BUF+1 MOV DL,BL OR DL,30H
姓名 班级 学号:
MOV AH,02H INT 21H MOV DL,'='
INT 21H;会运行一段小程序,使AX的值改变 AND AX,0000H MOV AL,10 SUB AL,BUF MOV DL,AL MUL BL MOV BL,10 DIV BL MOV DL,AL MOV DH,AH OR DL,30H MOV AH,02H INT 21H MOV DL,DH OR DL,30H MOV AH,02H INT 21H MOV DL,' ' INT 21H MOV CL,BUF+1 LOOP L2
姓名 班级 学号:
MOV DL,0AH INT 21H MOV CL,BUF LOOP L1 MOV AH,4CH INT 21H CODE ENDS END START 运行结果:
实验2-4 源程序: data segment M DB 20H LS DB 00H LP DB 00H data ends
stack1 segment para stack dw 20h dup(0)
姓名 班级 学号:
stack1 ends
CODE SEGMENT
assume cs:code,ds:data,ss:stack1,es:data START:
MOV AX,DATA MOV DS,AX MOV AL,03H MOV AH,00H INT 10H MOV CX,5 L1:MOV LP,CL MOV BX,6H SUB BX,CX MOV LS,BL MOV BH,00H MOV DH,LS MOV AL,M AND AH,00H SUB AL,LS MOV DL,AL MOV AH,02H INT 10H MOV AL,LS
姓名 班级 学号:
AND AH,00H MOV BX,2 MOV AL,LS MUL BL SUB AL,1 MOV LS,AL MOV AH,9H MOV AL,'*' MOV BH,0 MOV BL,0DH MOV CL,LS AND CH,00H INT 10H MOV CL,LP AND CH,00H LOOP L1 MOV AH,4CH INT 21H CODE ENDS END START 运行结果:
姓名 班级 学号:
实验2-5 源程序:
STACK SEGMENT STACK DW 100H DUP(?) STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK START:MOV AH,01H INT 21H AND BX,0000H SUB AL,30H MOV BL,AL MOV AH,01H INT 21H SUB AL,30H AND CX,0000H MOV CL,AL MOV AX,01H
姓名 班级 学号:
AND DX,0000H CALL M PUSH AX MOV BX,DX CALL SHOW POP AX MOV BX,AX CALL SHOW MOV AH,4CH INT 21H M PROC SUB CX,1H JBE L CALL M L:PUSH DX MUL BX MOV CX,AX POP AX PUSH DX MUL BX POP DX ADD DX,AX MOV AX,CX RET
姓名 班级 学号:
M ENDP SHOW PROC MOV CX,4 L2:PUSH CX MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH CMP DL,0AH JB L3 ADD DL,07H L3:ADD DL,30H MOV AH,02H INT 21H POP CX LOOP L2 RET SHOW ENDP CODE ENDS END START 运行结果:
实验2-6 源程序:
姓名 班级 学号:
STACK SEGMENT STACK DW 100H DUP(?) STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK START:MOV AH,01H INT 21H AND BX,0000H SUB AL,30H MOV BL,AL MOV AH,01H INT 21H SUB AL,30H AND CX,0000H MOV CL,AL MOV AX,01H AND DX,0000H CALL M PUSH AX MOV BX,DX CALL SHOW POP AX MOV BX,AX
姓名 班级 学号:
CALL SHOW MOV AH,4CH INT 21H M PROC SUB CX,1H JBE L CALL M L:PUSH DX MUL BX MOV CX,AX POP AX PUSH DX MUL BX POP DX ADD DX,AX MOV AX,CX RET M ENDP SHOW PROC MOV CX,4 L2:PUSH CX MOV CL,4 ROL BX,CL MOV DL,BL
姓名 班级 学号:
AND DL,0FH CMP DL,0AH JB L3 ADD DL,07H L3:ADD DL,30H MOV AH,02H INT 21H POP CX LOOP L2 RET SHOW ENDP CODE ENDS END START 运行结果:
正在阅读:
汇编实验211-25
不一样的美作文600字07-12
毛泽东思想和中国特色社会主义理论体系概论试题(辨析题、论述题03-16
个人建军大业观后感多篇04-17
新东方背诵80篇打印版(含翻译)04-02
数学六年级上册教学工作总结08-23
合作基层医疗机构预约转诊规范及流程10-12
高等代数教案 北大版 第四章03-22
libpcap开源库解析10-11
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 汇编
- 实验
- 罗斯托的经济成长阶段论
- 2018年度个人德育工作总结
- 深圳市社区矫正工作实施细则(最终版)
- 智能仪表论文智能仪表的温度控制系统
- 促进有效学习活动的教学方法
- 覃信兵-浅谈远程教育资源在小学语文教学中的运用
- 世界名人与音乐 - 罗曼 罗兰与音乐
- 浅论关于如何快速提高汉语水平
- 最全 硕士研究生《马克思主义与社会科学方法论》课后习题
- 宁波市区建筑安全文明施工标准化工地评审办法
- 2015春国家开放大学《劳动与社会保障法》03任务 - 0007满分答案
- 某单位多层砖混结构办公楼施工组织课程设计word格式
- 固体废物处理与处置1~4章习题
- 2017人教版六年级上学期数学期中测试题 doc
- 异分母分数加减混合运算教案
- 高中化学第三章有机化合物 - 图文
- 苏州市第二届“指导孩子三会优秀家长”名单
- 2016年公司第六届暨焊装车间第十二届员工技能大赛试题(普通钳工)A试卷
- 模式识别
- 2018年湖南省衡阳市初中学业水平考试生物试题(附答案)