汇编语言中数组的冒泡排序

2024-04-13

我需要对一个无组织的数组进行冒泡排序,其中包含从最大到最小的 7 个整数,因此它看起来像 9,6,5,4,3,2,1。
我通过编译器运行我的代码,它说

我不明白这段代码有什么问题:

code segment
assume ds:code,cs:code
start:
 mov ax,code
 mov ds,ax    ;code start
ARR:   dw 1,2,4,3,6,5,9
 mov ch,0h
 mov cl,1h
 mov bh 7h
 jmp assign_nums
restart:
 mov ch,0h
 mov cl,1h
 dec bh
 jmp assign_nums
swap:
 mov ch,dl
 mov cl,dh
 jmp next
next:
 cmp bh,cl
 je restart
 add ch,1h
 add cl,1h
 jmp assign_nums
assign_nums:
 cmp bh,0h
 je done
 mov dh,[ARR+ch]
 mov dl,[ARR+cl]
 cmp dh,dl
 jl swap
 jnl next
done:
 nop
code ends
end start

对于第一个错误,您忘记在寄存器和立即数之间键入逗号。

对于第二个和第三个错误,CH 和 CL 寄存器不能用于寻址存储器。请改用 SI、DI 或 BX。

由于您的数组被定义为单词,因此您必须如此对待它!
Change

mov dh,[ARR+ch]
mov dl,[ARR+cl]

变成类似的东西(取决于你做出的其他选择)

mov ax,[ARR+si]
mov dx,[ARR+di]

请注意,您将数组放置在说明中。一旦你设法编译它,你的程序就会崩溃。将数组放置在程序的单独数据段中或跳过此行。

start:
 mov ax,code
 mov ds,ax
 jmp start2
ARR:   dw 1,2,4,3,6,5,9
start2:
 mov ch,0h
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编语言中数组的冒泡排序 的相关文章

  • 为什么 GCC 不将 a*a*a*a*a*a 优化为 (a*a*a)*(a*a*a)?

    我正在对科学应用程序进行一些数值优化 我注意到的一件事是 GCC 会优化调用pow a 2 通过将其编译成a a 但是调用pow a 6 没有优化 实际会调用库函数pow 这大大降低了性能 相比之下 英特尔 C 编译器 http en wi
  • 在 x86 ASM 中测试零通常哪个更快:“TEST EAX, EAX”与“TEST AL, AL”?

    测试 AL 中的字节是否为零 非零通常哪个更快 TEST EAX EAX TEST AL AL 假设之前有一个 MOVZX EAX BYTE PTR ESP 4 指令加载了一个带有零扩展的字节参数到 EAX 的其余部分 防止了我已经知道的组
  • 查找数组中总和等于给定值的最小元素

    我试图找出数组中总和等于的最小元素 给定的输入 我尝试了几个输入总和 但只能找到一个 在第一种情况下配对 而我需要实现的不仅仅是一对 var arr 10 0 1 20 25 30 var sum 45 var newArr console
  • 添加到数组连续数字

    这是我向SO提出的第一个问题 我希望能答对 在 PHP 中 如果你不会 Python 或伪语言也可以 给定一个包含 n 个元素的数组 old array 1 2 3 5 7 8 9 20 21 23 29 我需要向新数组添加连续数字 如果不
  • 以不同顺序对多列上的结构化 Numpy 数组进行排序

    我有一个结构化的 numpy 数组 dtype price float counter int values 35 1 36 2 36 3 a np array values dtype dtype 我想按价格排序 如果价格相等则按计数器排
  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • 如何制作自己的 while 循环,就像 WordPress 循环一样?

    我是新来的 也是 PHP 新手 只是想知道如何制作我自己的灵活循环 就像在 WordPress 中一样 注意我不是在谈论 wordpress 我想在我自己的 PHP 应用程序上实现它 我们回顾一下WP 有一段代码是这样的 while hav
  • 将键值对添加到数组中的所有对象

    我想向数组中的所有对象添加一个键 值参数 eg var arrOfObj name eve name john name jane 现在我想向所有对象添加一个新参数 isActive 以便生成的数组如下所示 eg name eve isAc
  • 在 C 中使用另一个结构中的二维结构数组的编码问题

    我正在使用一个二维结构数组 它是另一个结构的一部分 这不是我做过很多事的事情 所以我遇到了问题 该函数在接近末尾的 测试 for 循环后最终失败 它在出现段错误之前正确打印出一行 我的代码中将数据读入虚拟二维结构数组的部分工作得很好 所以它
  • Angular 2循环遍历列表有一些延迟

    如何使用 Angular 2 和 TypeScript 以一定延迟循环遍历数组 我有一个数组 students Array
  • 为什么在强度降低乘法和循环进位加法之后,这段代码的执行速度会变慢?

    我正在读书阿格纳 雾 https en wikipedia org wiki Agner Fog s 优化手册 https en wikipedia org wiki Agner Fog Optimization 我遇到了这个例子 doub
  • Intel 64 和 IA-32 上的 MESI 有何意义

    MESI 的要点是保留共享内存系统的概念 然而 对于存储缓冲区 事情就变得复杂了 一旦数据到达 MESI 实现的缓存 下游内存就会保持一致 然而 在此之前 每个核心可能对内存位置 X 中的内容存在分歧 具体取决于每个核心的本地存储缓冲区中的
  • 声纳违规:安全性 - 使用 byte[] 时直接存储数组

    我确实遇到过以下两篇关于类似问题的帖子声纳违规 https stackoverflow com questions 11580948 sonar violation security array is stored directly and
  • php简单xml如何读取具有不同子节点级别的多个节点

    我有一个 xml 文件 其中包含不同的命名节点和多级子节点 每个节点之间都不同 我应该如何访问数据 需要很多嵌套的for循环吗 以下是 xml 代码示例
  • 在 C# 中通过 C DLL 使用数组和指针

    我对 C 非常陌生 上周才开始学习 我有一个用 C 编写的自定义 DLL 具有以下函数 DLLIMPORT void test function double test 我想要做的是从 C 获取数组 test 的指针 因此 如果在 DLL
  • 将数组中的所有值作为参数传递给函数

    我有一个值数组 a b c d 我需要将它们作为参数传递给函数 window myFunction a b c d 如果我可以将数组 对象传递到函数中 那么这会更容易 但这些函数是由其他人编写的或已经存在 我无法更改它们 它们需要作为单独的
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • Crystal Report:如何计算一个公式中的多个 IF 语句?

    背景 我正在尝试对报告的详细信息行进行一些美观的验证 我有几个名为 Assert 语句的公式 如果测试失败则返回 false 如果通过则返回 true Goal 我想创建一个存储 违反规则 的数组 然后将它们显示在行末尾的字段中 标题为 违
  • JavaScript 数组中的负索引是否会影响数组长度?

    在javascript中我定义了一个像这样的数组 var arr 1 2 3 我也可以做 arr 1 4 现在如果我这样做 arr undefined 我也失去了对值的引用arr 1 所以对我来说 从逻辑上来说 arr 1 也是arr 但是
  • 为什么 .each 在我的 Rails 视图中完成后会重复数组? [复制]

    这个问题在这里已经有答案了 在我的 Rails 视图页面中 我有以下循环 它应该循环遍历我的 tag list 数组并打印每个标签 由于某种原因 它在打印每个单独的标签后会重复该数组 例如 这个数组有两个元素 ruby python 每个方

随机推荐

  • 如何在UITextView iPhone应用程序中控制复制、粘贴、全选、定义?

    我正在使用 UITextView 在 iPhone 应用程序中工作 我想要允许用户只能复制消息和粘贴消息 But i 不想显示全选 选择 定义等 我按照下面的代码来控制选项 但是 所有选项都显示在 UITextView 单击中 BOOL c
  • Excel-VBA。移动公式而不复制它们

    我从我的宏中获取了以下代码 该代码运行良好 Cells curRow M Copy Range N curRow R curRow PasteSpecial Paste xlPasteFormulas 我想问一下有没有办法可以移动公式而不需
  • 两种方式将 wpf datagrid 绑定到数据库

    HI all 我想以两种方式绑定 WPF 数据网格 我尝试过以下 XAML
  • 为什么 UITextField.text 是可选的?

    它开始时是一个空字符串而不是 nil 即使它被显式设置为 nil 它仍然是一个空字符串 我不明白 也许是为了通过分配 nil 来轻松清除 用它编写代码很笨拙 var textField UITextField print textField
  • HTML5 画布元素上的子像素抗锯齿文本

    我对画布元素抗锯齿文本的方式有点困惑 希望你们都能提供帮助 在下面的屏幕截图中 顶部的 Quick Brown Fox 是一个 H1 元素 底部的元素是一个画布元素 上面渲染有文本 在底部 您可以看到两个 F 并排放置并放大 请注意 H1
  • 在 Android 中下载并解压 Zip 文件 [重复]

    这个问题在这里已经有答案了 我的应用程序正在从服务器下载 zip 文件并解压该 zip 文件并将文件保存到 SD 卡中 但问题是如果我下载 4 5 MB 的 zip 文件并解压它 这工作正常 但如果我下载 30 35 MB zip 文件这会
  • 在 C# 中重命名文件

    如何使用 C 重命名文件 看一眼系统 IO 文件 移动 http msdn microsoft com en us library system io file move aspx 将文件 移动 到新名称 System IO File Mo
  • Helm 中的 PostgreSQL:initdbScripts 参数

    PostgreSQL 的默认 Helm Chart 即stable postgresql 定义了一个initdbScripts允许运行初始化脚本的参数 但是 我似乎无法获得正确的格式来了解如何通过命令行发出它 有人可以提供如何填充此命令行参
  • Haskell 列表的嵌套笛卡尔积

    我想创建一种方法 可以给它一个长度列表 它会返回达到这些长度的笛卡尔坐标的所有组合 用一个例子更容易解释 cart 2 5 Prelude gt 0 0 0 1 0 2 0 3 0 4 1 0 1 1 1 2 1 3 1 4 cart 2
  • 如何使用 JCalendar 选择数组中的元素?

    我有一个 3D 数组 其中包含 38 年 12 个月和每个月 31 个条目 无论该月有多少天 就像这样 array 38 12 31 我还有一个 JCalendar 现在除了看起来很漂亮之外什么也不做 并且 JCalendar 下面有一个按
  • 关于人脸验证(相对于人脸识别)的置信度分数有什么建议吗?

    我在代码中使用特征脸 PCA 进行人脸识别 我使用了OpenCV网站上的教程作为参考 虽然这对于识别人脸非常有用 即它可以正确地告诉您谁是谁 但基于置信度分数的人脸验证 或冒名顶替者检测 验证人脸是否已注册在训练集中 根本不起作用 我计算欧
  • 查找两个数组之间的共同值

    如果我想比较两个数组并创建一个插值输出字符串 如果数组中的数组变量 y存在于x如何获得每个匹配元素的输出 这就是我正在尝试的 但没有完全得到结果 x 1 2 4 y 5 2 4 x each do num puts The number n
  • 将 0xFF 写入文件时出现问题

    我正在尝试使用 PrintStream 将 0xFF 写入 java 文件 当我使用十六进制编辑器打开文件时 其他值会正确写入文件 但应该显示 0xFF 的值却显示为 0xC3BF 使用的变量类型是int 经过几次尝试后 我还发现我可以输入
  • List>Remove() 方法

    我想在列表列表上使用 Remove 方法 但它对我不起作用 简单的例子应该说明一切 List
  • Laravel 多个 WHERE 子句

    我需要向 Laravel SQL 查询添加多个 where 子句 到目前为止我的 PHP 代码是 date default timezone set America Los Angeles today getdate year today
  • Magento 购物车未更新阿拉伯语商店视图中的数量

    我在 Magento 1 8 1 安装中遇到以下问题 我有两种商店视图 英语 默认 和阿拉伯语 在英文商店视图中 如果我将产品添加到购物车 我可以通过在数量框中输入新数量并单击更新购物车来修改数量 这会更改数量和总数 但是 当我切换到阿拉伯
  • @font-face 在 Firefox 中不配合

    我尝试了很多事情 包括单击与我的问题相关的所有问题 有很多 并尝试了他们所有的 解决方案 但没有一个对我有用 我尝试将 eot 文件包装在条件 IE 语句中 但这也不起作用 有人说如果你不在自己的服务器上托管文件 font face 将无法
  • 尽管被捕获,生成器内部抛出的错误还是完成了它

    我有一个异步生成器函数 它内部调用几个可能引发错误的异步函数 我想要的是 当错误发生时 生成器只是记录它 然后继续进一步工作 所以我有这样的代码 async getAll somestuff try const thing await fe
  • 通过 Git 推送大文件的问题

    目前 当我尝试推送到 Git 存储库时 出现以下错误 remote error GH001 Large files detected remote error Trace 7bbfe5c1099cfe679aa3cd1eee13e10a r
  • 汇编语言中数组的冒泡排序

    我需要对一个无组织的数组进行冒泡排序 其中包含从最大到最小的 7 个整数 因此它看起来像 9 6 5 4 3 2 1 我通过编译器运行我的代码 它说 我不明白这段代码有什么问题 code segment assume ds code cs