首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇编语言: AL=max(AL,BL,CL)

汇编语言: AL=max(AL,BL,CL)
EN

Stack Overflow用户
提问于 2021-11-06 14:27:23
回答 1查看 334关注 0票数 1

我必须使用寄存器从3个值中计算最大值,并将最大值存储在AL中。它需要使用跳转和比较。

例如,我编写了如何从2个数字确定最大值,但我不能使用3。

代码语言:javascript
复制
mov bl,1
mov cl,2
cmp bl,cl
jg label1   ;jump if greater
mov al,bl   ;al keeps the maximum
jmp stop

  label1: mov al,bl
  stop:nop;

我应该在这个模型之后再做AL=max(AL,BL,CL)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-07 17:00:35

目前,您的代码总是报告最大的BLmov al,bl ;al keeps the maximum行应该读mov al, cl

对于AL=max(AL,BL,CL),首先找到ALBL之间的最大值,并将其保存在要修改的AL中,因为结果是这样的。然后在可能的新AL和生成最终ALCL之间找到最大值

代码语言:javascript
复制
  cmp al, bl
  jg  OK1
  mov al, bl
OK1:
  cmp al, cl
  jg  OK2
  mov al, cl
OK2:
  ; AL is max(AL,BL,CL)

这种方式不修改寄存器BLCL,如果这很重要的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69864844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档