微机原理五类常用程序_第1页
微机原理五类常用程序_第2页
微机原理五类常用程序_第3页
微机原理五类常用程序_第4页
微机原理五类常用程序_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、五类常用程序:传输数据 求最大最小值 统计正负数 排序 加法程序存储器清零或置FF1.1将1000H-1063H中的各字节内容清0(或置FFH) 1.2传输数据块将1000H-1063H中的字节内容传递到4000H-4063H2.找最大值最小值从2500H-2563H中存放着数据,把其中的最大值找出来,地址存放在3000H中3.统计负数正数从2100H 开始存放100个无符号数,统计有多少个正数,多少个负数。负数个数存入2200H4.1求 1AH+02H+31H+14H+2FH+06H=?数据1AH、0FH 、24H、4EH、18H、2DH放在3000H- 3005H处4.2求十进制计算25

2、74 89 67+ 49 78 64 95数据25 74 89 67放在2400- 2403数据49 78 64 95放在2500- 25034.3将BLOCK单元开始的10个单元数相加,结果存放入BLOCK单元。若相加过程中发生溢出,停止运算,并在DL中设置溢出标志FF.5.冒泡排序方法5.1字节型变量VAR1、VAR2和VAR3存放有3个无符号数,将其中的内容按从大到小重新排列。 解:经重新排列后,VAR1的值最大,VAR3的值最 小。由于变量中存放的数据为无符号数,因此应该采用JA、JAE、JB、JBE等指令。编程思路:通过在三个数中找出最大值,将它与VAR1单元进行交换;然后对剩余的两

3、个数进行比较,将较大值存放在VAR2中。汇编语言程序如下:5.2存放在2040H-2045H中的字节数据由大到小排列推荐精选1.1将1000H-1063H中的各字节内容清0(或置FFH) MOV SI, 1000HMOV CX, 0064HXOR AL,ALL1: MOV SI, ALINC SIDEC CXJNZ L1HLT1.2传输数据块将1000H-1063H中的字节数据内容传递到4000H-4063HMOV SI, 1000HMOV DI, 4000HMOV CX, 0064HL1: MOV AL, SI MOV DI, ALINC SIINC DIDEC CXJNZ L1HLT2.

4、从2100H 开始存放100个无符号数,求最大值并存入单元2200HMOV SI, 2100HMOV CX, 0064HXOR AL,ALL1: CMP AL, SIJNC L2 MOV AL , SI L2: INC SIDEC CXJNZ L1MOV 2200, ALHLT如果求最小值XOR AL,AL 改为MOV AL,0FFHJNC L2 改为JC L2或者 MOV SI, ALINC SI相应 MOV CX, 0063H推荐精选3.统计负数正数从2100H 开始存放100个无符号数,统计有多少个正数,多少个负数。负数个数存入2200HMOV SI, 2100HMOV CX, 0064

5、HXOR DL,DLL1: MOV AL, SIAND AL,AL(/AND AL, FFH/TEST AL, 80H)JNS L2 INC DLL2: INC SILOOP L1MOV 2200,DLHLTLOOP L1可以改为DEC CXJNZ L1求最大最小值 JNC JC求正负数用 JS JNS4.1 1AH+0FH +24H+4EH+18H+2DH=?0E计算数据1AH、0FH 、24H、4EH、18H、2DH放在3000H- 3005H处参考程序:MOV SI,3000H MOV CX,0006H XOR AL,AL AA: ADD AL,SI INC SIDEC CXJNZ AA

6、 MOV 3040H ,ALHLT推荐精选4.2求十进制计算25 74 89 67+ 49 78 64 95数据25 74 89 67放在2400- 2403数据49 78 64 95放在2500- 2503MOV SI,2400HMOV DI,2500HMOV BX,2600HMOV CX,0004HXOR AL,ALAA: MOV AL,SIADC AL,DIDAAMOV BX,ALINC SIINC DIINC BXLOOP AAHLT5.冒泡排序方法5.1字节型变量VAR1、VAR2和VAR3存放有3个无符号数,将其中的内容按从大到小重新排列。 解:经重新排列后,VAR1的值最大,VA

7、R3的值最 小。由于变量中存放的数据为无符号数,因此应该采用JA、JAE、JB、JBE等指令。编程思路:通过在三个数中找出最大值,将它与VAR1单元进行交换;然后对剩余的两个数进行比较,将较大值存放在VAR2中。汇编语言程序如下:STACK SEGMENT STACK 'STACK' DW 100H DUP(?)TOP LABEL WORDSTACK ENDSDATA SEGMENTVAR1DB 46H ;先假设一组值,以便检验程序设计的正确性VAR2DB 15HVAR3DB 0A2HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES

8、:DATA,SS:STACKSTART: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK推荐精选 MOV SS, AX LEA SP,TOP MOV AL,VAR1;用户编写的程序 CMP AL,VAR2 JAE NO_CHG1 XCHG AL,VAR2NO_CHG1: CMP AL,VAR3 JAE NO_CHG2 XCHG AL,VAR3NO_CHG2: MOV VAR1,AL;最大值保存到VAR1 MOV AL,VAR2 CMP AL,VAR3 JAE NO_CHG3 XCHG AL,VAR3 MOV VAR2,AL;次大值保存到VAR2NO_CHG3: MOV AH,4CH;返回DOS操作系统 INT 21HCODE ENDS END START程序执行后,(VAR1)0A2H,(VAR2)46H,(VAR3)15H,说明程序设计正确。一般来说,在程序结束处,应该使之返回到DOS状态,以便进行其它操作。 当要排序的数据为有符号数时,只需要将程序中相应的JAE指令改成JGE指令。存放在2040H-2045H中的字节数据由大到小排列AA: MOV DL,00HMOV SI,2400HMOV CX,0006HDEC CXL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论