【问题标题】:Need A Good Explanation For An Assembly Language Code (8086 Micro processor)需要对汇编语言代码的良好解释(8086 微处理器)
【发布时间】:2023-03-17 21:48:01
【问题描述】:

这是 8086 微处理器的汇编语言代码,我必须将两个十六进制数相乘。当我以现在编写的形式在 AX 寄存器的值之前使用 0 时,该代码有效。但是,如果我以“MOV AX, AB24H”之类的方式编写它,则会产生错误。我想了解这个错误的准确原因,只是在开始时使用 0 为什么会被忽略? 提前致谢!

.MODEL SMALL
.STACK
.DATA
.CODE

MOV AX, 0AB24H
MOV BX, 25H
MUL BX

HLT           ; halt!

【问题讨论】:

    标签: assembly emu8086


    【解决方案1】:

    在某些汇编变体中,很难区分标签和数字文字,这就是为什么某些汇编程序要求您始终以数字开头的数字文字。你对25H 很好,因为它以数字开头,但AB24H 不一定是数字。它可以是在别处定义的标签。添加前导 0 解决了这个问题,因为标签不能以数字开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多