问题标签 [att]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - VGA 和 putpixel intel x86 asm AT&T 语法的帮助
我想在 asm 中画一条彩色线。我必须在 x86 intel linux 单元上使用 AT&T 语法。我已经走得很远了,但我想知道如何进入 VGA 模式或 Mode-X,以及如何在屏幕上放置一个像素。标准 C 库(如 printf)中是否有此功能?
非常感谢你的帮助。:)
main: pushl %ebp # Push base pointer movl %esp, %ebp # Initialize base pointer pushl $intro # Push the string address call printf # Call the printf routine from C library addl $8, %esp
red: #... still working on this
draw:
call putpixel
# pushl %ebp # Push the base pointer
# movl %esp, %ebp # Initialize base pointer
inc %ebx # increment X
inc %ecx # increment Y
cmpl $200, %ecx # check if Y => 200
jge end # if Y=> 200, jump to end
jmp draw # loop
putpxl: #has to put a pixel at (%ebx, %ecx) and return to draw # should use the color from the main routine
end: movl %ebp, %esp # Remove local variables popl %ebp # Remove base pointer ret # return to main routine
php - 通过 PHP 在 SMS 中嵌入 URL 链接
有没有办法可以<a href='www.google.com'>google</a>
在通过 [myphonenumber]@txt.att.net 发送的 SMS 消息中嵌入 URL 链接?我的邮件配置设置为“text/html”,但链接在 SMS 中显示为不可点击的纯文本...
有任何想法吗?!!?
x86 - x86 简单 mov 指令
这是一个简单的问题,但我在谷歌上找不到可靠的答案。
这个指令是什么意思:
是否将寄存器eax
中的值也移动到内存中(%esi, %ecx, 4)
指向的值?
(%esi, %ecx, 4)
是一个数组。所以这意味着 Array[Xs + 4i] 其中 Xs 是 Array 在内存中的起点,而 i 只是整数数组中的偏移量。
gcc - 与 Intel 语法相比,AT&T 语法中源操作数的顺序是什么?
该指令的英特尔 ISA 参考文档很清楚:
从指定掩码寄存器中选择字节值
xmm2
并使用掩码位,并将值存储到.xmm3/m128
xmm4
xmm1
xmm1
是目标,xmm2/3/4
是源操作数
那么使用 AT&T 语法会变成什么?我们知道目标寄存器必须在最后,但是源操作数的顺序是什么?
或者
或者是其他东西?
assembly - Atom-32bit-intel板子的BIOS可以做IDT和GDT吗?
我有 Atom-32bit-intel board n450,里面只有 BIOS,我的目标是使用 APIC 计时器并将其与 ISR (0x21) 链接。过了一会儿,我发现IDT和GDT已经存在(可能是BIOS构建的),不需要构建它们(软件是C语言和AT&T汇编的):
所以我尝试使用 IDT 的地址将我的 ISR 链接到 IDT:
当我尝试调用 ISR33:int $0x21 时,软件崩溃:SingleStep CPU[1] 错误:处理器正在运行。
那么哪里错了???
备注:我使用eclipse Heros(AT&T程序集),代码处于保护模式(CR0.PE = 1我检查过,可能由BIOS设置)。
intel - AT&T 组装屏蔽输入
我正在尝试在 AT&T Assembly 中创建一个简单的密码程序,但我在屏蔽输入时遇到了麻烦。我想要发生的是当用户输入字符时,它们在屏幕上显示为星号'。在 intel 语法中它相对简单:
这使用 intel 命令读取输入而不回显它,而是打印一个星号。我正在尝试用 AT&T 语法解决这个问题,但遇到了一些麻烦。
任何投入将不胜感激。提前致谢。
delphi - 组装转换为 basm
我正在尝试将 CrapWOW 哈希从http://www.team5150.com/~andrew/noncryptohashzoo/CrapWow.html转换为 delphi 或者更确切地说是 basm。我的asm技能非常有限,但我认为这不会太难......
无论如何,在一些关于 asm 转换的网页的帮助下,我来到了这个,但它不起作用......特别是,对于最后一部分,我不知道如何转换。这是将寄存器分配给参数和返回参数吗?
我很高兴能在这方面得到一些帮助。
骑士杀手
macos - 内联汇编 - AT&T 语法 - 如何移动到变量
所以我正在研究一个代码洞穴,我基本上用我的跳转替换了对 _memcpy 的调用,然后我想保存源代码中的内容。原组装:
我正在努力使用 AT&T 的语法,基本上我想将 [esp+8]、[esp+4] 和 [esp] 存储在我自己的变量中。我正在尝试这样做:
我收到以下错误:错误:%-letter 后缺少操作数错误:%-letter 后缺少操作数号
基本上它是在对我大喊大叫:“movl 8(%ecx), %0\n\t”:“=g”(大小)
有谁知道我应该如何在 AT&T 语法中正确执行此操作?我真的很怀念 OS X 上的 Intel 语法:/
assembly - 如何在 x86 上使用 AT&T 语法将立即字节添加到长寄存器?
根据我阅读英特尔手册的理解,应该可以编写类似的指令add $0x7f, %ebx
,并且应该将其编码为83 /0 ib
总共三个字节。
但是,当我这样做时(无论我使用add
、addb
还是addl
),它总是将立即值“提升”为 32 位值并编码为81 /0 id
并占用六个字节。adc
,等也存在同样的问题sub
。请注意,我在 GNU 中使用 AT&T 语法as
。
我一直在寻找解决方案超过一天,但没有找到。有人可以请教吗?
assembly - 需要一个很好的 AT&T 汇编语法来源
我正在寻找使用 AT&T 语法(不是英特尔)研究汇编的资源,我们将不胜感激。
谢谢。