zoukankan      html  css  js  c++  java
  • 汇编入门学习笔记 分支程序举例

    题目 设有三个单字节无符号数存放在BUFFFER开始的缓冲区中,写一个能将它按大到小重新排列的程序

    代码如下:

    DATAS SEGMENT
        ;此处输入数据段代码
        BUFFER DB 87,234,123  
    DATAS ENDS
    
    STACKS SEGMENT
        ;此处输入堆栈段代码
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
        MOV AX,DATAS
        MOV DS,AX
        ;此处输入代码段代码
        MOV SI,OFFSET BUFFER  ;将BUFFER的偏移地址传给SI(源地址寄存器)
        MOV AL,[SI]   ;分别将三个数放到三个寄存器中
        MOV BL,[SI+1]
        MOV Cl,[SI+2]
        
        CMP AL,BL ;排序
       ;CMP 作用于两个无符号数 a,b时
       ;作减法,若a-b>0 符号位cf=0,零位 zf=0
       ;若a-b=0 cf=0 zf=1
       ;若a-b<0 cf=1 zf=0
        JAE NEXT1 
        ;JAE 若cf=0,转移到后面对应的过程NEXT1去
        ;否则按顺序往下执行
        XCHG AL,BL  
        ;通过XCHG交换寄存器中的数据,达到排序的效果
     NEXT1:CMP AL,CL
           JAE NEXT2
           XCHG AL,CL
     NEXT2:CMP BL,CL
           JAE NEXT3
           XCHG BL,CL
     NEXT3:MOV [SI],AL  ;按从大到小的顺序依次存回缓冲区 
           MOV [SI+1],BL
           MOV [SI+2],CL
           
        MOV AH,4CH
        INT 21H
    CODES ENDS
        END START
  • 相关阅读:
    python 随机字符串
    Ajax
    Django (Form)
    Django (项目)
    Django (二)
    Django (一)
    Django 学生管理系统
    地理坐标系 与 投影坐标系
    shapefile
    图表绘制工具--Matplotlib 3
  • 原文地址:https://www.cnblogs.com/a249189046/p/8254212.html
Copyright © 2011-2022 走看看