【问题标题】:Assembler: adding and printing two words whose sum is larger than a word汇编程序:添加和打印总和大于一个单词的两个单词
【发布时间】:2013-10-13 20:35:25
【问题描述】:

我在汇编语言方面遇到问题:如何添加字节和单词并打印出结果。例如 FFFF+FF。结果将是 100FE。问题是我不知道如何打印出整个结果,因为它比一个词大。我只能打印00FE,1在哪里?

例子(b1是一个字节,w1是一个字):

mov ah, 00h
mov al, b1
mov bx, w2
add ax, bx

【问题讨论】:

  • 什么架构?有 32 位寄存器吗?
  • 1 在您的进位位中。您需要将您的值扩展到两个字并将进位移动到高位字,低位字节。然后你必须弄清楚如何打印一个两个字的结果,确保你以正确的顺序获得字节!
  • 跳上不进位jnc 跳过1 的打印。然后打印单词。

标签: assembly printing x86 add


【解决方案1】:

组装时间很长,但您可能需要使用进位标志(更多详细信息:check if carry flag is set

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2017-08-05
    • 2021-05-26
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多