微机原理实验4

更新时间:2023-05-16 03:44:39 阅读: 评论:0

实验四:分支、循环程序设计
. 实验目的
1 学习分支程序、循环结构程序的设计和调试方法;
2 学习子程序的定义和调试方法;
3 掌握分支、循环、子程序等程序的基本结构
. 实验设备
TDN 86/51或 TDN 86/88教学实验系统一台
. 实验内容、步骤及要求
1. 设计一数据块间的搬移程序 
数据块搬移的基本原则为:
对于两个分离的数据块,从首地址或从末地址开始传送均可。
对于有部分重叠的情况则:
当源数据块首地址>目的数据块首地址时,从数据块首地址开始传送数据。
当源数据块首地址<目的数据块首地址时,从数据块末地址开始传送数据。
2.求某数据区内负数的个数
设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。
3.学生成绩名次表 
将分数为1~100之间的10个成绩存入首址为3000H的单元中,3000H+I表示学号为I的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+I为学号I的学生名次。
4. 求无符号字节序列中的最大值和最小值 
设有一字节序列,其存储首地址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。
. 编程练习
(A) 在3500H单元开始中输入数据:09H(数据个数)12H、80H、78H、C8H、00H、00H、FEH、99H、34H,编写程序使其能分别求出数据区中的正数和负数以及零的个数,正数的个数放在3510H单元中,负数的个数放在3511H单元中,零的个数放在3512H单元中. 
(B) 有三个8位二进制数连续存放在03200H开始的内存单元中,设它们之中至少有两个数是相同的。编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到03204H单元,若三个数都相同则送0FFFFH到03204H单元。 
(C) 设数据段SCORE单元开始连续存放着20个学生成绩,编写程序统计其中<60,60~69、70~79、80~89,>90分数段的人数,并把统计结果存放到从TOT开始的数据块中。
(数据为:64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H).
(D) 找出一个数据块中的最大数。数据块从偏移地址3002H开始存放,数据块的长度以16位二进制形式存放在3000H、3001H单元,把找出的最大数放到3100H单元中,并把存放最大值的偏移地址存入3101H和3102H的存储单元中。假设数据块中的数都是8位无符号数。
(E) X的值(字节数)分别由3000H、3001H、3002H单元的数决定,对应的结果Y分别存放在3005H、3006H、3007H单元中,完成下列方程: 
          A (X>0)
Y= {  0 (X=0) 
          B (X<0) 
(F) X的值(字节数)分别由3200H、3201H、3202H单元的数决定,对应的结果Y分别存放在3105H、3106H、3107H单元中,完成下列方程: 
        90H (X>200) 
Y= {  50H (X=100) 
英语日记带翻译
          00H (X<50) 
五.软件流程图和程序清单
2013专四真题A高中英语作文常用句型)DATAS SEGMENT
樱花日语    ORG 3500H
    BUFSIZE DB 9            ;单元数据个数
    NUM DB 12H,80H,78H,0C8H,00H,00H,0FEH,99H,34H
    ORG 3510H
    RESULT DB 3 DUP(0,0,0)
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV DI,OFFSET NUM      ;送数据地址到DI
    LEA BP,RESULT
    MOV SI,00H
    MOV CX,[3500H]          ;循环次数
AGAIN:TEST BYTE PTR[DI],80H
    JZ COUNT                  ;ZF=1,此数据为非负数,转移
    INC BYTE PTR[BP+1]      ;ZF=0,此数据为负数
    JMP DONE
COUNT:CMP BYTE PTR[DI],01H
    JNC NEXT                 
    INC BYTE PTR[BP+2]    如何招人  ;CF=1,此数据为0
    JMP DONE
NEXT: INC BYTE PTR[BP]      ;CF=0,此数据为正数
DONE: INC DI
    LOOP AGAIN
    MOV AH,4CH
    INT 21H
CODES ENDS
END START
【调试说明】
由图可见:正数个数为3,负数个数为4,零的个数为2。与答案相符
C)
DATAS SEGMENT
    ORG 3700H
    SCORE DB 64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H,
              4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H 
    ORG 3720H
    TOT DB 5 DUP(0,0,0,0,0) 
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV CX,20             ;循环次数
    MOV SI,OFFSET SCORE  ;分数首地址送SI
BBB:MOV BP,OFFSET TOT 
    MOV AL,BYTE PTR[SI]global warming作文
    CLC
    CMP AL,60
    JNB S70                ;CF=0,大于60跳转
    JMP DONE
S70: INC BP
    CMP AL,70
    JNB S80                ;CF=0,大于70跳转
    JMP DONE
S80: INC BP
    CMP AL,80
    JNB S90              ;CF=0,大于80跳转
    JMP DONE
S90: INC BP
    CMP AL,90
    JNB S100              ;CF=0,大于90跳转
    JMP DONE
S100: INC BP
DONE:INC BYTE PTR[BP]    ;对应分数段人数加1
    INC SI
    LOOP BBB
    MOV AH,4CH
    INT 21H
CODES ENDS
END START
【调试说明】
由图可见:<60,60~69、70~79、80~89,>90分数段的人数分别为2个,6个,4个,5个,3个,与答案相符。
D)
DATAS SEGMENT
    ORG 3000H
    LEN DW 0020H
NUM DB 12H,34H,34H,54H,65H,65H,53H,55H,09H,69H,0FCH,65H,0AAH,
0FBH,98H,88H, 0C3H,44H,12H,12H,45H,45H,76H,76H,32H,32H,
76H,76H,0B7H,86H,21H,09H
    ORG 3030H
    MAX DB ?
    ADDRESS DW ?
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
dressingSTART:
    MOV AX,DATAS
    MOV DS,AX
    LEA SI,NUM
    MOV AL,00H
    MOV CX,LEN              ;循环次数
    MOV ADDRESS,3002H
    CLC
BBB: CMP AL,BYTE PTR[SI]  ;AL中数据与(SI)中数据比较
    JNB NEXT       
    CLC                        ;CF=1,CF清零,记录数据地址
    MOV AL,BYTE PTR[SI]
    MOV ADDRESS,SI
NEXT:INC SI
va读音
    LOOP BBB
    MOV MAX,AL              ;AL外研社官网中最大数存入指定地址
    MOV AH,4CH
英语练习册答案
    INT 21H
CODES ENDS
    END START
【调试说明】
由图可见:最大数为FCH,所在单元是300CH
六.实验心得
这次是第四次实验,对于汇编语言学习开始有了一点感觉,但是写程序时候还是需要不断调试,程序也运用了循环分支结构,尽量优化了程序,但是还是相对冗长,要不断改进!实验课给我带来很多收获,以前自己都是只在课本上学习,通过实验,自己也会在宿舍里进行调试,加深了对汇编语言的了解,收获颇多!

本文发布于:2023-05-16 03:44:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/649155.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   地址   单元   开始   个数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图