【问题标题】:Declaring and defining an array and matrix in assembly?在汇编中声明和定义数组和矩阵?
【发布时间】:2013-06-20 01:07:22
【问题描述】:

似乎我无法获得足够好的组装文档,至少没有一个是可理解的。

有人可以发布一个关于如何在程序集中声明数组和矩阵的简单示例吗?以及如何修改其中的项目。这对我有很大的帮助,可能对其他许多人也有很大的帮助。

【问题讨论】:

    标签: assembly x86-16


    【解决方案1】:

    Emu8086 语法与 MASM 语法几乎相同,因此要声明一个将容纳 3 个字节的未初始化数组:

    arr1    db 3 dup (?)
    

    【讨论】:

      【解决方案2】:

      我使用模拟器提供的示例解决了这个问题。

      汇编中的矩阵基本上与常规变量声明相同,例如 2x2 矩阵声明如下:

      matrix db ?,?,?,?   ; Obviously `?` can be replaced by any value
      
      or
      
      matrix db dup('?')
      

      然后用户决定他认为“行”在哪里结束,另一个开始。例如,如果我们有一个字节为 1,2,3,4 的变量,用户可能会认为 1,2 是一行,3,4 是另一行。

      这是您指向矩阵中的项目的方式:

      mov bx,0
      lea si,matrix
      mov matriz[si][bx],0   ; [si][bx] holds the value of the first cell
      

      现在,如果每行包含 2 个项目,则只需执行此操作即可转到第二行:

      add bx,2
      mov matriz[si][bx],1   ; Now [si][bx] points to cell 0x1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-17
        • 2012-01-20
        • 1970-01-01
        相关资源
        最近更新 更多