Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何将汇编语言循环部分更改为二进制代码?_Assembly_Binary - Fatal编程技术网

Assembly 如何将汇编语言循环部分更改为二进制代码?

Assembly 如何将汇编语言循环部分更改为二进制代码?,assembly,binary,Assembly,Binary,在双过程汇编程序上,如果有如下的汇编代码 test start 1000 first lda index ldx index read jsub strcpy ldch str,x comp eof jeq end lda index add one sta index

在双过程汇编程序上,如果有如下的汇编代码

test     start   1000
first    lda     index
         ldx     index
read     jsub    strcpy
         ldch    str,x
         comp    eof
         jeq     end
         lda     index
         add     one
         sta     index
         ldx     index
         j       read  
strcpy   td      indev
         jeq     strcpy
         rd      indev
         stch    str,x
         rsub
end      lda     index
index    word    0
one      word    1
str      resw    5
indev    byte    x'f3'
eof      byte    x'000004'
         end     first
如何将其更改为二进制代码?尤其是跳跃部分?
循环段中的二进制代码重复的次数是否与实际执行的循环次数相同?

当然不是。如果你事先不知道需要多少次呢?
每个标签都是代码内存中的地址。汇编程序将这些标签转换为地址。跳转会像汇编程序中的所有其他语句一样转换为二进制机器代码。

当然不是。如果你事先不知道需要多少次呢?
每个标签都是代码内存中的地址。汇编程序将这些标签转换为地址。跳转会像assembler中的所有其他语句一样转换为二进制机器代码。

如果要展开汇编时间循环,请使用assembler宏,而不是运行时分支指令。e、 g.在NASM中,
%rep 4
/…/<代码>%endrep。如果要展开汇编时间循环,请使用汇编程序宏,而不是运行时分支指令。e、 g.在NASM中,
%rep 4
/…/<代码>%endrep。