nasm

    0热度

    1回答

    如何测试k的值是否正确? section .data k dw 5 m dw 110 rez dw 0 section .bss tabela resq 3 section .text global _start extern uslov _start: mov qword [tabela], k mov qword [tabe

    2热度

    1回答

    在linux下可以使用系统调用号4打印的东西: mov eax,4 ;system call number mov ebx,0 ;file descriptor mov ecx,msg ;adress of message in data segment mov edx,length ;length of message 但是,你如何打印从堆栈段的东西吗? 我尝试这样做: push

    0热度

    1回答

    我把下面的代码NASM: [BITS 16] [ORG 0x7C00] TIMES 510 - ($ - $$) db 0 ,并在我的十六进制编辑器看了一下,发现了一堆0的。这是我所期望的,但现在我问这个问题:[ORG 0x7C00]实际上对文件做了什么?

    1热度

    1回答

    这里是我的代码: section .data digit db 0,10 section .text global _start _start: call _printRAXDigit mov rax, 60 mov rdx, 0 syscall _printRAXDigit: add rax, 48

    1热度

    1回答

    我想将两个8位寄存器组合在一起并打印结果。我想添加寄存器CL和CH。我用-1275填充了ECX,我想看看如果我减去这两个寄存器会得到什么结果,我该怎么做? 这是我写的,但是我在第13行得到一个错误,表示操作码和操作数的无效组合。为什么不能使用PutInt从CL打印?我需要做什么? %include "io.mac" .STACK 100H .DATA msg4 db "The re

    1热度

    1回答

    下面的代码假设有显示如果哪个数字更大或者它们是否相等和总和,但我得到的只是总和,如果我删除了总和部的第一部分,其中显示的数字是否等于 section .rodata prompt1 db "Enter an integer: ",0 ; 0 is null character pro

    -2热度

    1回答

    一个示例代码,我看到类似下面代码: section .data db 'hello' db 'h', 'e', 'l','l','o' data_segment_size equ $-$$ 为什么data_segment_size等于25?我知道$和$$表示什么,但根据我的书我无法弄清楚为什么这个变量是25。也许这是该书的错误。

    0热度

    1回答

    首先,这是一项家庭作业。 我有一个循环获得两个数字的值单独,并加入他们的第一个数字乘以10,并加上第二个数字来获得一个整数。 我正在做这一切,并保存在我的AL寄存器中,现在我想将该整数插入到一个数组中,然后扫描该数组并显示这些数字。 如何插入矢量并从矢量读取? 我的数组: section .bss array resb 200 我的数字转换: sub byte[digit_une],

    1热度

    1回答

    我正在使用dosBox和nasm来运行此程序。我正在编写一个汇编程序,它接收用户输入的字符串,然后从该字符串中提取每个字符并将其放入一个寄存器。我认为做mov字节阿尔,msg2会做的伎俩。不过,我收到一个错误,OBJ输出驱动程序不支持一个字节的搬迁。”我如何采取一个字符一个字符串的时间,并将其存储到寄存器? %include "io.mac" .STACK 100H .DATA ms

    1热度

    1回答

    我有这样的代码,是应该打印一个字符串的第一个字母: mov bx, message ; Move the address of the message to bx add bx, 0x7c00 ; Adding the padding of bootsector to bx mov al, [bx] ; Move the value at the address in bx to al