nasm

    0热度

    1回答

    我写了一个汇编程序(x86_64的Linux的NASM)读取用户输入打印整数安慰,总部设在算法提出我的意见在这个post,这基本上是这样的: divide number x by 10, giving quotient q and remainder r emit r if q is not zero, set x = q and repeat 所有下面的脚本下工作得很好: section

    1热度

    1回答

    在分析Metasploit的linux/x64/shell/reverse_tcp负载时,我意识到它使用值0x1007作为mmap()系统调用的prot参数。 mmap()手册页说,prot参数是PROT_NONE或一个或多个以下标志的按位或:PROT_EXEC,PROT_READ,PROT_WRITE PROT_NONE。根据/usr/include/x86_64-linux-gnu/bits/

    1热度

    2回答

    我想编写一个程序,在工作方式如下: 用户->鸿沟获取多个输入它,比方说,2 ->打印结果(商)。 divide-by-the-number-2部分似乎没有太大的困难,所以我初步编写了一个程序,它获取用户输入的整数并打印该整数。 这意味着我试图编写一个程序,将用户的字符串整数转换为实数整数,然后将其转换回字符串并打印出来。 但编译后,我最终在一个无限循环(击中Enter后没有任何反应)。 予编译使用

    0热度

    1回答

    我写了一个引导程序和使用NASM汇编(不AS86)编译它,一切都完美的工作。 现在,我想学习如何插入16位C代码到我的应用程序。我从几个SO中读到bcc被推荐用于这种情况,因为它支持8086处理器。 在我的代码与C测试代码组合我面临以下错误:ld86: testasm.o has bad magic number 我我的代码减少为以下: testasm.asm: [bits 16] global

    0热度

    1回答

    我正在使用x86_64 Linux Assembly,我被要求将一个字符的三个低位(来自用户输入)设置为1,然后打印出结果字符。为了说明 Input: b ; ASCII in binary: 01100010 Set the last 3 bits to 1: 01100010 -> 01100111 Output: g ; ASCII in binary: 01100111

    1热度

    1回答

    这是我的代码在NASM写道 此代码是找到字符串S1字符串s2,如果发现或返回-1,如果没有找到返回指数。 我的麻烦是我的EBX(索引),它增加了1,2,3 ... 9确定,但是当它变为10时,它们将显示':'或11它显示';' 我不知道为什么?请帮助 非常感谢 对不起,我英文不好 ; DINH VAN KIET ; TUAN 3 ; Find String 32bit ; Build ;

    0热度

    1回答

    我曾经计划在DOS下为;#提交一个简短而快速的解释程序,当我发现DOS不解释#键正确。 它可能会更好,开始通过小的例子,也表现出行为的解剖它: org 0x100 L: mov ah, 01h ; new input -> al int 21h test al, '#' ; check if the hash key was pressed jnz end ; i

    1热度

    1回答

    我有以下装配命令: mov eax, 10001 mov [eax], DEADCODEh 我所知道的是 我说的是X86 EAX有32位 我要保持小尾数记住 那么内存是怎么样的呢? 整个十六进制数是否存储在10001或只有一部分? 取决于那些地址10002,10003和10004是怎么样的?

    1热度

    2回答

    我正在写一些非常紧密的ASM代码。 注意此组NASM产生的操作码: 8AA4241C020000 mov ah,[esp+0x21c] 而且类似: 051C020000 add eax,0x21c ; 4 extra 0's! 8D84241C020000 lea eax,[esp+0x21c] ; Brutal! 是否有你打算申请一个15位偏移到任何方式传达给处理器32位寄存器,并让它

    1热度

    2回答

    OS时,我有以下bootloader代码似乎运行在硬盘上完美的罚款: [bits 16] [org 0x7c00] bootld_start: KERNEL_OFFSET equ 0x2000 xor ax, ax ; Explicitly set ES = DS = 0 mov ds, ax mov es, ax mov bx, 0x8