【问题标题】:What type of assembler is this?这是什么类型的汇编程序?
【发布时间】:2014-10-27 19:13:10
【问题描述】:
pa ds 1
mvi c,4
mvi d,3
mvi a,0
p1: add c
dcr d
jnz p1
sta pa
end

这是我正在使用的汇编代码,我正在使用 8085A 仿真器对其进行编译。但是我找不到更多要学习的信息。我查找了 MIPS 汇编器,并找到了一些教程,但没有一个适用于此编译器。

例如,我试过这个:

.data
var1:       .byte       4
var2:       .byte       3
var3:       .byte       0

.text

main:

但它说它们都是未知命令。在哪里可以找到有关第一个示例中的汇编器类型的更多信息和指南?

提前致谢。

【问题讨论】:

  • 谷歌mvi dcr sta.
  • @simonzack 你能说得更具体点吗?我发现的只是预制的代码,我不明白。
  • 仔细阅读结果。它显然在前 10 个结果中。
  • “我正在使用 8085A 仿真器编译它” 这似乎非常强烈地暗示了代码是 8085 程序集。但更重要的是,您所学习的课程应指定目标架构是什么,并包含/指向必要的信息,例如指令集参考等。如果没有,请咨询您的教授或助教。

标签: assembly


【解决方案1】:

您应该使用 8080 类型的汇编程序。大多数 8080 类型的汇编器不支持 .data 和 .text,因为它们会生成像 .COM 文件一样的单段图像。使用 DB 代替 .byte 或 DW 代替 .word 。 8085 有一些额外的指令可以通过宏定义。 Z80 包含一组不同的额外指令,因此这些 8085 特定指令主要用于 BIOS 或专门用于 8085 计算机(通常是 CP/M)的实用程序。

ARHL    MACRO           ;ARITH RIGHT SHIFT HL
        DB      10H
        ENDM
DSUB    MACRO           ;HL=HL-BC
        DB      08H
        ENDM
JNXC    MACRO   X       ;JMP IF NOT X CARRY (INX, DCX)
        DB      0DDH
        DW      X
        ENDM
JXC     MACRO   X       ;JMP IF X CARRY
        DB      0FDH
        DW      X
        ENDM
LDHI    MACRO   I       ;DE=HL+I
        DB      28H
        DB      I
        ENDM
LDSI    MACRO   I       ;DE=SP+I
        DB      38H
        DB      I
        ENDM
LHLX    MACRO           ;HL=(DE)
        DB      0EDH
        ENDM
RDEL    MACRO           ;ROTATE DE,CY LEFT
        DB      18H
        ENDM
RIM     MACRO           ;RESET INT MASK
        DB      20H
        ENDM
RSTV    MACRO           ;RST IF V SET TO 40H
        DB      0C8H
        ENDM
SHLX    MACRO           ;(DE)=HL
        DB      0D9H
        ENDM
SIM     MACRO           ;SET INT MASK
        DB      30H
        ENDM

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2018-12-05
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多