汇编语言实验题目及测试截图4、5、6

上传人:mg****85 文档编号:34138052 上传时间:2018-02-21 格式:DOCX 页数:11 大小:97.12KB
返回 下载 相关 举报
汇编语言实验题目及测试截图4、5、6_第1页
第1页 / 共11页
汇编语言实验题目及测试截图4、5、6_第2页
第2页 / 共11页
汇编语言实验题目及测试截图4、5、6_第3页
第3页 / 共11页
汇编语言实验题目及测试截图4、5、6_第4页
第4页 / 共11页
汇编语言实验题目及测试截图4、5、6_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《汇编语言实验题目及测试截图4、5、6》由会员分享,可在线阅读,更多相关《汇编语言实验题目及测试截图4、5、6(11页珍藏版)》请在金锄头文库上搜索。

1、实验五 分支结构程序设计实验目的1、掌握利用无条件转移指令JMP和有条件转移指令实现多分支程序的设计方法。2、掌握用DOS的中断调用,实现再程序执行过程中从键盘动态输入字符串的方法。3、掌握程序中标号的定义和使用。实验内容实现从键盘输入一个月份数值(1-12),根据输入的月份数值显示相应的月份英文单词缩写,如输入5则显示May。实验步骤1、编辑下列程序:.model small.stack.datamon db Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Decmsg1 db Please input a month(1-12) :,13,10,$m

2、sg2 db Input error! Now try again.,13,10,$buffer label byte ;定义输入月份的输入缓冲区maxlen db 3 ;最多 2 个数字,包括一个回车actlen db ? ;保存实际输入的字符个数string db 3 dup(?) ;保存输入的月份数字内容(ASCII 码).code.startupshuru: ;开始输入月份编号lea dx,msg1 mov ah,09hint 21h ;显示提示信息lea dx,buffermov ah,0ahint 21h ;输入月份数值cmp actlen,0 ;若没有输入月份则转出错处理je s

3、huruerr;以下判断输入月份是否合法lea di,stringcmp actlen,2je da10 ;若输入的是 2 位数月份值则转到 da10 标号处执行mov al,string ;若只输入 1 位数字月份值,则读出该值and al,0fh ;把 ASCII 码转换为对应数字 jmp jisuanda10:mov al,stringand al,0fh ;把月份数值十位的 ASCII 码转换为对应数字(如 12 月的 1 字)mov bl,10mul bland string1,0fh ;把月份数值个位的 ASCII 码转换为对应数字add al,string1 ;十位加上个位 (如

4、 12 月)jisuan: ;以下计算偏移地址cmp al,1 ;比 1 小是非法月份jb shuruerr ;若月份值小于 1 则转出错处理cmp al,12ja shuruerr ;比 12 大也是非法月份sub al,1 ;月份值减 1shl al,1shl al,1 ;月份再乘 4 对应了 MON 字符串中从首地址开始的字符相对位置xor ah,ah ;1 月份从 0 位置开始即 JAN,.5 月份从位置 16 开始即 MAYlea si,mon ;找到被显示月份字符的位置add si,axmov cx,3output: mov dl,si ;输出对应月份英文缩写mov ah,2int

5、 21hinc siloop output.exit 0shuruerr: lea dx,msg2 ;输入出错时提示出错,并转到程序起始处重新执行mov ah,09hint 21hjmp shuruend2、程序汇编通过后,运行程序察看输出结果。3、程序运行中不输入月份值(直接回车),或输入非法月份值,观察程序执行的情况。实验六 分支与循环混合结构程序设计实验目的1、掌握利用.IF语句实现分支程序的设计方法;2、掌握利用.REPEAT语句实现循环程序的设计方法;3、掌握DIV指令的使用特点;4、掌握地址表的定义和使用方法。实验内容实现成绩单的分等级统计功能,在数据段中有成绩单的定义,并包含有若

6、干个分数,程序根据成绩单数据的个数循环分别统计个分数段成绩的个数,最后输出个等级段的分数个数。要求:成绩单数据少于100字节,输出的每个档次统计值按两位数显示。实验步骤1、编辑下列程序:.model small.stack.dataHAN DB 42,62,68,70,79,82,85,90,95,99,66,88,78,90,98,200 ;成绩单count equ $-han ;记录数据个数MEM DB 6 dup(0) ;分别用于存放各分数段成绩的个数scoree db 10,13,Score E count is:$ ;定义各分数段的提示信息scored db 10,13,Score

7、D count is:$scorec db 10,13,Score C count is:$scoreb db 10,13,Score B count is:$scorea db 10,13,Score A count is:$scoreo db 10,13,Score Other count is:$table dw scoreo,scoree,scored,scorec,scoreb,scorea ;定义地址表.code.startupMOV CX,countmov si,0begin: ;统计各个分数段的成绩个数.if hansi=60 & hansi=70 & hansi=80 & h

8、ansi=90 & hansi=60 & hansi=70 & hansi=80 & hansi=90 & hansi=990078 80 06 0015 R 01 add mem5,1.else007F 80 06 0010 R 01 add mem0,1.endif0084 46 inc si0085 E2 96 loop begin0087 B9 0006 mov cx,6.repeat ;开始循环008A 8B F1 mov si,cx008C 4E dec si008D 03 F6 add si,si ;计算地址表中对应地址项与提示信息的对应关系 008F 8B 94 009E R

9、mov dx,tablesi 0093 B4 09 mov ah,90095 CD 21 int 21h ;显示提示信息0097 32 E4 xor ah,ah 0099 8B F1 mov si,cx009B 8A 84 000F R MOV al,memsi-1 ;读出统计好的一个数值(此处只能处理 99 以下的)009F B3 0A mov bl,10 00A1 F6 F3 div bl ;ax/1000A3 88 A4 000F R mov memsi-1,ah ;AH 为余数是个位,暂时存放回该内存单元00A7 8A D0 mov dl,AL ;al 为商是十位00A9 80 C2

10、30 add dl,30h ;转换为 ASCII 码00AC B4 02 MOV AH,200AE CD 21 INT 21H ;以十进制形式显示十位00B0 B4 02 MOV AH,200B2 8A 94 000F R mov dl,memsi-1 00B6 80 C2 30 add dl,30h00B9 CD 21 INT 21H ;再显示个位.untilcxz ;CX 自动减 1,减到 0 结束循环.exit 0ENDMicrosoft (R) Macro Assembler Version 6.15.8803 06/07/11 19:36:336.asm Symbols 2 - 1S

11、egments and Groups:N a m e Size Length Align Combine ClassDGROUP . . . . . . . . . . . . . GROUP_DATA . . . . . . . . . . . . . 16 Bit 00AA Word Public DATASTACK . . . . . . . . . . . . . 16 Bit 0400 Para Stack STACK _TEXT . . . . . . . . . . . . . 16 Bit 00C2 Word Public CODESymbols:N a m e Type Va

12、lue AttrCodeSize . . . . . . . . . . . Number 0000h DataSize . . . . . . . . . . . Number 0000h Interface . . . . . . . . . . .Number 0000h Model . . . . . . . . . . . . . Number 0002h Startup . . . . . . . . . . . . L Near 0000 _TEXTcode . . . . . . . . . . . . . Text _TEXTdata . . . . . . . . . .

13、. . . Text DGROUPfardata? . . . . . . . . . . . Text FAR_BSSfardata . . . . . . . . . . . . Text FAR_DATAstack . . . . . . . . . . . . . Text DGROUPHAN . . . . . . . . . . . . . .Byte 0000 _DATAMEM . . . . . . . . . . . . . . Byte 0010 _DATAbegin . . . . . . . . . . . . . L Near 001D _TEXTcount . .

14、. . . . . . . . . . . Number 0010h scorea . . . . . . . . . . . . . Byte 006E _DATAscoreb . . . . . . . . . . . . . Byte 0058 _DATAscorec . . . . . . . . . . . . . Byte 0042 _DATAscored . . . . . . . . . . . . . Byte 002C _DATAscoree . . . . . . . . . . . . . Byte 0016 _DATAscoreo . . . . . . . . . . . . . Byte 0084 _DATAtable . . . . . . . . . . . .

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号