我想知道为什么可以推断出一些组装说明,而另一些则不能。例如,在下面的程序中,我有:
<pre><cod
我对GNU汇编程序语法不太了解,我想跳一下。
在intel语法中,它看起来像这样:
<pre><code>jmp 0x08:.setcs
我发现自己经常无法立即识别数字是十进制还是十六进制(如果十六进制数字没有前缀或字母)。例如
x86中变量声明的各种长度是多少?我所知道的是:
<ul>
<li> <code>.byte</code>(1)</li>
<li> <code>.int</code>
将立即数添加到寄存器中时,汇编程序如何首先将寄存器清零?例如,如果我的注册值为:
<pre><code>%
如果我在非Intel系统上进行汇编,是否可以在GAS(GNU汇编程序)中使用Intel语法?
从本质上来说,
我可以在GAS中使用分号作为注释字符吗?
我正在使用GAS 2.30和以下英特尔语法。
<pre><code>.intel_sy
<pre><code> .file "test-instr.c"
.text
.Ltext0:
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string
我想在汇编器函数中引用c指针。在C中的声明如下:
<blockquote>
const uint32_t * SERCOM0_SPI_DATA_REG_ADDR =(
我正在操作系统开发<a href="https://github.com/cfenollosa/os-tutorial/tree/master/13-kernel-barebones" rel="nofollow noreferrer">
以下<code>gas</code>程序集之间有什么区别?
<pre><code>x: .long 500
</code></pre>
并且:
<pre><code>x = 500
</c
我想编写一个小型OS来提高我的编程技能,该技巧在一定程度上奏效了。现在,我尝试了解linux 0.01源代
我正在编写一个汇编程序(以icc作为汇编程序)。我需要在数据部分中编写一些常量,以便在主程序中
在文件顶部定义一些易于阅读的常量的att语法等效于什么?
<pre><code>SYS_READ equ 0 ; read text f
假设我在asm中定义了如下常量:
<pre><code>.data
SYS_EXIT = 60
.text
.globl _start
_start:
mov $SYS_EXIT, %eax
sy
要获取字符串的长度,我正在使用以下函数:
<pre><code>string: .asciz "hello world!\n"
get_string_length
我在调试或理解<code>gas</code>中的以下错误时遇到困难:
<pre><code>movq $0x4461766964, -8(%rbp) # "David"
是否可以在<code>gas</code>中输入字符作为立即数?例如:
<pre><code>mov $1, %rax # decimal
mov $0xA, %rbx # he
要在汇编中打印字母,我可以执行以下操作:
<pre><code>y: .ascii "y"
mov $SYS_STDOUT, %edi
lea y,
<code>.ascii</code>,<code>.asciz</code>和。<code>string</code>的气体有什么区别?在我看来,很明显:
<ul>
<li> <