c#给定二维数组按升序排序_在数组中按升序对数字进行排序| 8086微处理器

c#给定二维数组按升序排序

Problem: Write a program in 8086 microprocessor to sort numbers in ascending order in an array of n numbers, where size n is stored at memory address 2000 : 500 and the numbers are stored from memory address 2000 : 501.

问题:在8086微处理器中编写一个程序,以按n个数字的升序对数字进行排序,其中大小n存储在内存地址2000:500中,而数字存储在内存地址2000:501中。

Algorithm:

算法:

  1. Load data from offset 500 to register CL (for count).

    将数据从偏移500加载到寄存器CL(用于计数)。

  2. Travel from starting memory location to last and compare two numbers if first number is greater than second number then swap them.

    从起始存储位置移动到最后一个位置,如果第一个数字大于第二个数字,则比较两个数字,然后交换它们。

  3. First pass fix the position for last number.

    首遍确定最后一个号码的位置。

  4. Decrease the count by 1.

    将计数减少1。

  5. Again travel from starting memory location to (last-1, by help of count) and compare two numbers if first number is greater than second number then swap them.

    再次从起始存储位置移动到(last-1,借助计数),如果第一个数字大于第二个数字,则比较两个数字,然后交换它们。

  6. Second pass fix the position for last two numbers.

    第二遍确定最后两个数字的位置。

  7. Repeated.

    重复。

Program:

程序:

ADDRESSMNEMONICSCOMMENTS
400MOV SI, 500SI ← 500
403MOV CL, [SI]CL ← [SI]
405DEC CLCL ← CL-1
407MOV SI, 500SI ← 500
40AMOV CH, [SI]CH ← [SI]
40CDEC CHCH ← CH-1
40EINC SISI ← SI+1
40FMOV AL, [SI]AL ← [SI]
411INC SISI ← SI+1
412CMP AL, [SI]AL-[SI]
414JC 41CJUMP TO 41C IF CY=1
416XCHG AL, [SI]SWAP AL AND [SI]
418DEC SISI ← SI-1
419XCHG AL, [SI]SWAP AL AND [SI]
41BINC SISI ← SI+1
41CDEC CHCH ← CH-1
41EJNZ 40FJUMP TO 40F IF ZF=0
420DEC CLCL ← CL-1
422JNZ 407JUMP TO 407 IF ZF=0
424HLTEND
地址 记忆 注释
400 MOV SI,500 SI←500
403 MOV CL,[SI] CL←[SI]
405 DEC CL CL←CL-1
407 MOV SI,500 SI←500
40A MOV CH,[SI] CH←[SI]
40度 DEC CH CH←CH-1
40E INC SI SI←SI + 1
40楼 MOV AL,[SI] AL←[SI]
411 INC SI SI←SI + 1
412 CMP AL,[SI] AL- [SI]
414 JC 41C 如果CY = 1,则跳至41C
416 XCHG AL,[SI] 交换AL和[SI]
418 DEC SI SI←SI-1
419 XCHG AL,[SI] 交换AL和[SI]
41B INC SI SI←SI + 1
41C DEC CH CH←CH-1
41E JNZ 40F 如果ZF = 0,则跳至40F
420 DEC CL CL←CL-1
422 JNZ 407 如果ZF = 0,则跳至407
424 HLT 结束

Explanation:

说明:

  1. MOV SI, 500: set the value of SI to 500.

    MOV SI,500:将SI的值设置为500。

  2. MOV CL, [SI]: load data from offset SI to register CL.

    MOV CL,[SI]:将数据从偏移量SI加载到寄存器CL。

  3. DEC CL: decrease value of register CL BY 1.

    DEC CL:将寄存器CL的值减1。

  4. MOV SI, 500: set the value of SI to 500.

    MOV SI,500:将SI的值设置为500。

  5. MOV CH, [SI]: load data from offset SI to register CH.

    MOV CH,[SI]:将数据从偏移量SI加载到寄存器CH。

  6. DEC CH: decrease value of register CH BY 1.

    DEC CH:将寄存器CH的值减1。

  7. INC SI: increase value of SI BY 1.

    INC SI:SI的值增加1。

  8. MOV AL, [SI]: load value from offset SI to register AL.

    MOV AL,[SI]:从偏移量SI加载到寄存器AL的值。

  9. INC SI: increase value of SI BY 1.

    INC SI:SI的值增加1。

  10. CMP AL, [SI]: compares value of register AL and [SI] (AL-[SI]).

    CMP AL,[SI]:比较寄存器AL和[SI](AL- [SI])的值。

  11. JC 41C: jump to address 41C if carry generated.

    JC 41C:如果产生进位,则跳转到地址41C。

  12. XCHG AL, [SI]: exchange the contents of register AL and SI.

    XCHG AL,[SI]:交换寄存器AL和SI的内容。

  13. DEC SI: decrease value of SI by 1.

    DEC SI:将SI的值减1。

  14. XCHG AL, [SI]: exchange the contents of register AL and SI.

    XCHG AL,[SI]:交换寄存器AL和SI的内容。

  15. INC SI: increase value of SI by 1.

    INC SI:将SI的值增加1。

  16. DEC CH: decrease value of register CH by 1.

    DEC CH:将寄存器CH的值减1。

  17. JNZ 40F: jump to address 40F if zero flat reset.

    JNZ 40F:如果归零平面复位,则跳转到地址40F。

  18. DEC CL: decrease value of register CL by 1.

    DEC CL:将寄存器CL的值减1。

  19. JNZ 407: jump to address 407 if zero flat reset.

    JNZ 407:如果归零平面复位,则跳转到地址407。

  20. HLT: stop.

    HLT:停止。

翻译自: https://www.includehelp.com/embedded-system/sort-numbers-in-ascending-order-in-an-array.aspx

c#给定二维数组按升序排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用python套用excel模板_Python自动化办公Excel-从表中批量复制粘贴数据到新表

1、模块安装 1)cmd模式下: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl 2)如果有安装Pycharm,则在程序中操作如下: 菜单栏&…

在HubSpot是如何应对Fat JAR困境的

在七月底,Spring Boot和Dropwizard分别发布了1.4和1.0版本,它们都是基于Fat JAR的。随着人们更多地采用这些框架和微服务架构,Fat JAR成为了通用的部署机制。\\Fat JAR技术会将Java应用的所有依赖打包到一个bundle之中,便于执行&a…

给定数字的b+树创建_在C ++中找到给定数字中的两个的下一个和上一个幂

给定数字的b树创建Problem statement: 问题陈述: Find Next and previous power of two of a given number 查找给定数字中两个的下一个和上一个幂 Next power of two 下一个二的幂 Example(1):input: 22output: 32 ( as 32 is 2^5)Example(2):input: 54output…

java 字节数组作用_这段java代码中字节数组b起到了什么作用?

importjava.io.*;importjavax.swing.*;publicclassIOMonitor{publicstaticvoidmain(String[]temp){//TODO自动生成的方法存根byteb[]newbyte[2];try{FileInputStreamfisnewFileInput...import java.io.*;import javax.swing.*;public class IOMonitor {public static void main…

如何查看本地的崩溃log_过年回家,还怕抢不到票?程序员教你如何抢票

2019年接近尾声,距离春节回家的日子越来越近,26日起,2020年除夕火车票正式开售,抢票大战也进入白热化阶段。是否为某抢票 App 加速而烦恼,是否为车票“秒光而烦恼”。别慌,作为连“对象”都是 new 出来的程…

获取列表中包含的元素数 在C#中

Given a list, and we have to count its total number of elements using List.Count property. 给定一个列表,我们必须使用List.Count属性计算其元素总数 。 C#清单 (C# List) A list is used to represent the list of the objects, it is represent…

I00037 亏数(Deficient number)

数论中,若一个正整数除了本身之外所有因子之和比此数自身小,则称此数为亏数。亏数(Deficient number)也称为缺数,参见百度百科_亏数,或参见维基百科的Deficient number。亏数在OEIS中的数列号为A005100。 问…

hashmap转红黑树的阈值为8_面试必考的 HashMap,这篇总结到位了

点击蓝色“JavaKeeper”关注我哟加个“星标”,一起成长,做牛逼闪闪的技术人1 概述HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长.HashMap是非线程安全的,只适用于单线程环…

linux用户组管理命令_Linux用户和组命令能力问题和解答

linux用户组管理命令This section contains Aptitude Questions and Answers on Linux User and Group Commands. 本节包含有关Linux用户和组命令的 Aptitude问答。 1) Which of the following commands is used to create a new user in the Linux operating system? create…

Failed to start firewalld.service: Unit firewalld.service is masked.

2019独角兽企业重金招聘Python工程师标准>>> FireWall in Centos 7 masked How to resolve the error message belowFailed to issue method call: Unit firewalld.service is masked. The main reason a service is masked is to prevent accidental starting or e…

mysql第二个索引_MySQL高级第二章——索引优化分析

一、SQL性能下降原因1.等待时间长?执行时间长?可能原因:查询语句写的不行索引失效(单值索引、复合索引)CREATE INDEX index_user_name ON user(name);(底层做了一个排序)CREATE INDEX index_user_nameEmail ON user(name,email);查询关联join…

递归反转链表改变原链表吗_在不使用递归的情况下找到链表的长度

递归反转链表改变原链表吗Solution: 解: Algorithm to find length 查找长度的算法 Input: 输入: A singly linked list whose address of the first node is stored in a pointer, say head. 一个单链表 ,其第一个节点的地址存储在指针(例…

西瓜仿站高手v1.08官方正式版

2019独角兽企业重金招聘Python工程师标准>>> 西瓜仿站高手是一款绿色好用的由追风网络出品的网站模板批量下载软件,西瓜仿站高手是一款仿站工具,仿站神器。软件功能强大,能够帮你轻松帮你下载任意网站、任意模板,并且速…

用hundred造句子_八个有趣的开学破冰游戏,线上线下都能用

知道大家最近都很忙,所以省略开篇,直接上正题——开学“破冰游戏”走起!一、你比划我来猜把词语展示在PPT上,猜词的同学背对PPT,其他同学可以看到词语并且用身体动作把词语表现出来,直到猜词的同学可以把词…

java 执行顺序_Java代码执行顺序

程序中代码执行的顺序非常重要,稍有不慎便会是程序运行出错,那么我将结合实例来分析代码中的执行。名词解释首先了解几个名词:非静态代码块直接由 { } 包起来的代码,称为非静态代码块静态代码块直接由 static { } 包起来的代码&am…

mysql 包含的那些文件

*.frm是描述了表的结构 *.MYD保存了表的数据记录 *.MYI则是表的索引 ibd是MySQL数据文件、索引文件,无法直接读取。 转载于:https://www.cnblogs.com/07byte/p/5823667.html

math 计算float_Java Math类静态float min(float f1,float f2)与示例

math 计算float数学类静态浮点数min(float f1,float f2) (Math Class static float min(float f1 , float f2) ) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the minimum one of both the given a…

vector 不初始化时什么状态_Vue原理解析(三):初始化时created之前做了什么?...

让我们继续this._init()的初始化之旅,接下来又会执行这样的三个初始化方法:initInjections(vm) initState(vm) initProvide(vm)5. initInjections(vm): 主要作用是初始化inject,可以访问到对应的依赖。inject和provide这里需要简单的提一下&a…

switch 字符串 java_JDK7新特性switch支持字符串

在JDK7中,switch语句的判断条件增加了对字符串类型的支持。由于字符串的操作在编程中使用频繁,这个新特性的出现为Java编程带来了便利。接下来通过一个案例演示一下在switch语句中使用字符串进行匹配。public class Example {public static void main(String[] args) {String w…

cisco packet tracer路由器配置_【干货】思科交换机路由器怎么配置密码?

今天带大家看看如何在思科的交换机路由器当中配置安全特性,也就是密码的配置方式。在学习配置之前,我们先回顾一下密码相关知识。密码学是研究信息系统安全保密的科学。人类有记载的通信密码始于公元前400年,古希腊人是置换密码学的发明者。密…