You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写x8086汇编程序比较两数并按要求存储结果

x8086汇编实现两数比较并按要求存储到AL/BL寄存器

核心思路

  • 初始化两个待比较的数(可使用立即数或内存变量)
  • 用CMP指令比较两数,通过标志位判断大小
  • 根据比较结果,用条件跳转+交换指令确保AL存较小值,BL存较大值

完整代码(EMU8086兼容)

ORG 100h

; 初始化两个待比较的数(示例值,可自行修改)
MOV AL, 25h   ; 第一个数
MOV BL, 1Ah   ; 第二个数

; 比较AL与BL的大小
CMP AL, BL
JAE SWAP_VAL  ; 无符号数:若AL >= BL,跳转至交换逻辑
; 若是有符号数比较,替换为 JGE SWAP_VAL

; AL已为较小值,直接结束
JMP END_PROG

SWAP_VAL:
XCHG AL, BL   ; 交换AL和BL,确保AL存小值、BL存大值

END_PROG:
HLT           ; 暂停程序,方便查看寄存器结果

代码说明

  • ORG 100h:指定程序起始地址,适配EMU8086的COM程序格式
  • CMP AL, BL:执行比较操作,通过标志寄存器的CF、ZF位反映两数大小关系
  • JAE/JGE:条件跳转指令,JAE用于无符号数比较,JGE用于有符号数比较
  • XCHG AL, BL:高效交换两个寄存器的值,无需额外临时寄存器
  • HLT:暂停CPU,运行后可在EMU8086的「Registers」窗口查看AL、BL的最终值

测试方法

  1. 打开EMU8086,将上述代码粘贴到编辑器
  2. 点击「Compile」编译代码,确认无错误
  3. 点击「Run」运行程序,打开「Registers」面板查看结果
  4. 修改MOV AL, xxh和MOV BL, xxh中的立即数,测试不同大小组合的情况

内容的提问来源于stack exchange,提问作者Derek Winyard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 11:17:06