加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

【8086】中国电力出版社 微机原理实验与课程设计指导书 实验二

发布时间:2020-12-14 03:35:14 所属栏目:大数据 来源:网络整理
导读:在标题所述书的P5页所示。 题目如下: ???? 设在内存缓冲区BUF+1单元开始,存放若干个单字节数,其数据长度在BUF单元,要求在这些数据中查找某个特定数据,若有把存放该字符的地址送入AX,否则把FF送入AX。完成相应的程序的编制,并进行调试验证结果。 ???

在标题所述书的P5页所示。

题目如下:

???? 设在内存缓冲区BUF+1单元开始,存放若干个单字节数,其数据长度在BUF单元,要求在这些数据中查找某个特定数据,若有把存放该字符的地址送入AX,否则把FF送入AX。完成相应的程序的编制,并进行调试验证结果。

??? 源程序代码如下:

DATA SEGMENT;数据段
BUF DB 8,22,33,12,-1,-50,-32,97,127;8是8个数字,后面的是几个数字
? A DB 127;a是那个要找的那个数字
DATA ENDS
CODE SEGMENT;代码段
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA? ;把DATA段给AX
????? MOV DS,AX??? ;把AX给DS段,初始化DS完成
????? MOV CL,BUF?? ;将BUF中存的数字的个数给CL
????? MOV BX,OFFSET BUF+1 ;把BUF+1的偏移地址给BX
A1:?? MOV AL,[BX]? ;把下一个数给AL
????? CMP A,AL???? ;将现在轮到的BUF内的数据,与A中所存的咱们要找的数据比较一下
????? JZ? FIND???? ;判断相等,则ZF为1找到目标数,跳进FIND区
????? JMP COUNT??? ;没找到额,进入循环计数程序,进入下一个数字
FIND: MOV AX,BX??? ;把BX中存放的字符的地址给AX
????? JMP FINISH?? ;找到目标数,程序结束
COUNT:? INC? BX??? ;循环程序处,将BX指向下一位数据
??????? LOOP A1??? ;CX计数寄存器不为0则循环回去继续扫描BUF数组
??????? MOV AX,0FFH? ;8个数字全部找完,没找到一个,把FF送入AX,然后结束
FINISH: MOV AX,4CH
??????? INT 21H
CODE ENDS
END START

?

程序调试结果:我用的是emu8086编译器,大家也可以选择韦福还有proteus进行仿真实验。wave6000一直都有点问题无法编译,我会在近期解决这个问题并把解决方案发布到blog上。

?

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 图一 变量表

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 图二 AL寄存器为127,找到目标数

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 图3???? AL寄存器为97,与A变量存储的数据不匹配

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读