ICode9

精准搜索请尝试: 精确搜索
  • linux nasm命令行参数为整数2019-12-01 15:52:15

    数天来,我一直在努力寻找答案,最后在这里发布以寻求帮助.这项练习对我来说纯粹是学术性的,但是到了某种程度,我只需要了解为什么这行不通或我做错了什么. section .text global _start _start: pop eax pop ebx pop ecx _exit: mov eax, 1 mov ebx, 0

  • linux nasm将AL中的值上移到AX2019-11-27 13:50:56

    我正在研究一种通过将整数反复除以10并收集余数然后再打印来打印多个数字整数的方法.这是有问题的代码段: 划分: ; initial division mov ax, 111 ; number we want to print mov ch, 10 ; we divide by ten to siphon digits div ch ; divide our numb

  • 如何在Linux上通过系统调用等待按键中断?2019-11-21 01:01:33

    当用户在程序中按nasm编写的特殊按键(如F1-12)时,我希望收到中断.我只需要在主要功能开始时等待功能击键.我知道使用BIOS的int 16h(返回扫描代码)是可能的.我如何在Linux下执行此操作?解决方法:所需的代码相当复杂.我最终想出了如何使用原始ioctl在C中检查F1,进行读取和写入的方法.

  • linux-用x87 float调用printf2019-11-10 17:00:58

    我在x86 asm中有一个简单的程序,它使z = x / y.关键是,除法时应正确编写代码,但不打印任何内容.没有输出.我不知道出什么问题了,因为当程序不使用eax,ebx等时,我无法调试. global main extern printf section .text main: finit fild dword[x] fild dword[y]

  • linux-使用gdb和nasm缺少调试信息2019-11-01 09:51:50

    我有一个带有以下makefile的简单汇编程序: all : calc calc : calc.o gcc -m32 -g -o calc calc.o calc.o : calc.s nasm -f elf -g -F stabs calc.s 我尝试使用gdb对其进行调试,但始终显示: Single stepping until exit from function asc2int, which has no line num

  • linux-位置独立代码中的Access .data部分2019-10-27 06:50:30

    我正在与NASM建立共享库.在该库中的某些函数中,我需要在C中称为静态变量的东西.基本上,我认为它在.data节中有一些空间: SECTION .data last_tok: dq 0 ; Define a QWORD 当我尝试在函数中访问last_tok时,就会出现问题. 我读了NASM Manual: 8.2 Writing Linux/ELF Share

  • linux-Cygwin:兼容性问题2019-10-27 03:51:07

    您好StackOverFlowers! 我对整个linux事物非常陌生,我正在使用Cygwin尝试执行以下操作. 将测试文件通过解析器… ./parser<测试test.asm //工作并生成ASM代码 按照本教程中的描述执行此行,我不确定它到底是做什么的… nasm -f elf test.asm //工作 最后一行创建可执行文件(如果我

  • linux – 如何打印单个ASCII字符?2019-10-03 15:50:46

    在DOS程序集中我们可以这样做: mov dl, 41h mov ah, 02h int 21h 但是Linux nasm x86汇编怎么样?解决方法: section .data msg db 'H' len equ $- msg section .text global _start _start: mov edx,len mov ecx,msg mov ebx,1 ;file de

  • linux – 为什么printf会覆盖ECX寄存器?2019-10-02 21:00:45

    我知道printf返回在EAX中打印的字符数.为什么printf将寄存器ECX更改为0?我的代码片段: push eax push intFormat call printf add esp,8 我在64位Linux发行版上运行我的代码.解决方法:如你所知,EAX将具有printf的返回值,但遵循CDECL调用约定(包括C库)的函数也可以破坏ECX和EDX

  • 使用x86 32位Linux sys_write(NASM)打印整数2019-10-02 10:50:45

    我是这个论坛的新手. 我对高级语言有一点经验(真的很少).差不多一个月前,我认为在Linux上选择nasm(IA-32)之后,看看汇编是如何工作的,这是一个好主意我开始从一个教程中学习. 现在,在结束之后,我尝试编写一个简单的程序,让计算机打印100个数字的列表(1 2 4 8 16 …),但我甚至无法做

  • x86 ASM Linux – 使用.bss部分2019-10-01 05:50:25

    我希望这些问题相当简单:( NASM编译器,Linux,x86英特尔语法) 第1部分: 我试图弄清楚如何使用Assembly程序的.bss部分来找到一种方法来存储值,例如操作( – * /)中的值到声明的变量.例如: section .bss variable: resb 50 ;Imaginary buffe

  • linux – Assembly中系统调用的返回值是什么?2019-09-25 19:50:23

    当我尝试研究内核的系统调用的返回值时,我找到了描述它们的表,以及我需要将它放在不同的寄存器中以使它们工作.但是,我没有找到任何文档说明我从系统调用获得的返回值是什么.我只是在不同的地方找到我收到的东西将在EAX寄存器中. TutorialsPoint: The result is usually returned

  • linux – 如何在程序集NASM中打印数字?2019-09-17 21:00:24

    假设我在寄存器中有一个整数,我该如何打印?你能展示一个简单的示例代码吗? 我已经知道如何打印一个字符串,如“你好,世界”. 我正在Linux上开发.解决方法:如果您已经在Linux上,则无需自行进行转换.只需使用printf: ; ; assemble and link with: ; nasm -f elf printf-test.asm && gcc

  • Ubuntu安装NASM和简单的使用教程2019-09-16 15:01:19

    1. 安装 sudo apt-get install nasm 这样nasm就安装好了,终端输入命令: nasm -version 输出版本信息就说明安装成功 2. 使用 创建"hello.asm"文件: touch hello.asm gedit hello.asm 在文件中输入下面的汇编代码 section .data hello: db 'Hello world!',10 ; 'Hello world

  • linux下的汇编环境搭建(nasm)2019-09-14 16:37:08

    原文链接:https://www.cnblogs.com/san-fu-su/archive/2014/11/11/4089041.html 第一步:先判断系统是否已经安装了nasm--------------->打开终端,执行whereis nasm ;如果显示nasm: /usr/bin/nasm ,则已经安装;如果只显示nasm: ,则未安装。 第二布:去官网下载最新

  • linux – NASM参数长度2019-09-03 11:01:06

    我正在编写一个简单的程序来显示用户提供的名称.结果是我应该能够输入命令并获得预期的结果. 命令 ./hello John 结果 Hello, John. 然而,当程序开始显示名称时,它却没有.我认为它与计算参数的长度有关.请你们看看我的代码并告诉我你的想法? ; hello.asm ; ; Assemble: nasm -f

  • linux – 这个程序集如何不崩溃?2019-09-03 07:03:48

    我这里有这个linux nasm代码,不会崩溃.使用printString结尾的ret 80指令不应该这个程序崩溃? bits 32 section .data hello: db 'Hello Linux assembly!!!!!!!!!!!!!!!!!!!',10,0 helloLen: equ $-hello anotherString db "hello im another string!!!!",

  • linux – 如何使用NASM找到字符串的长度?2019-09-03 07:03:30

    我正在尝试使用从命令行参数获取输入的NASM来创建程序.由于没有提供字符串长度,我正在尝试创建一个计算我自己的函数.这是我的尝试,它获取指向ebx寄存器中的字符串的指针,并返回ecx中字符串的长度: len: push ebx mov ecx,0 dec ebx count: inc ecx

  • 在linux中混合汇编和C的编程2019-09-01 07:50:22

    只有两个文件,main.c和kernel.asm,我尝试使用NASM和GCC制作一个程序.内容如下: main.c中 #include <stdio.h> void Print_String() { printf("Hello World!\n"); } kernle.asm extern Print_String [section .text] global _start _start: call Print_String 编译和链

  • linux – int 0x80是否覆盖寄存器值?2019-08-31 18:00:22

    参见英文答案 > What happens if you use the 32-bit int 0x80 Linux ABI in 64-bit code?                                    1个 我编写了一个程序,它应该像for循环一样,打印一串文本一定次数. 这是代码: global _start section .da

  • linux – 如何在我的64位机器上使用gcc编译32位.o文件?2019-08-31 15:01:24

    试图学习NASM大会.我有一台64位机器,带有Ubuntu.最近我决定测试推送和弹出指令.我这样做: nasm -felf64 Test.asm 显然,在64位模式下不支持它们.好吧,没问题,我只需要做到32: nasm -felf Test.asm 现在,一如既往 gcc Test.o 但它现在告诉我 i386 architecture of input file '

  • nasm汇编linux计时器或睡眠2019-08-31 12:02:31

    我正试图找到一种方法让我的代码等待两秒钟才能继续.我在保护模式下使用nasm for Linux,所以我只能使用int 80h.我发现了一个名为“alarm”的系统调用(27),另一个称为“暂停”(29).但是,当我尝试使用它们时,程序会等待并完成,而不是继续执行.我还发现了另一个系统调用,sigaction,它

  • linux – 如何在nasm中包含调试信息?2019-08-30 07:52:27

    我有这个源代码: ; hello.asm a first program for nasm for Linux, Intel, gcc ; ; assemble: nasm -f elf -l hello.lst hello.asm ; link: gcc -o hello hello.o ; run: hello ; output is: Hello World SECTION .data ; data section msg:

  • linux – 显示寄存器的内容2019-08-29 15:50:16

    嗨,我需要帮助显示寄存器的内容.我的代码在下面.我已经能够显示数据寄存器的值,但我想显示标志状态.例如1或0.如果还显示其他寄存器的内容,如esi,ebp,将会很有帮助. 我的代码不打印标志的状态..我错过了什么 section .text global _start ;must be declared for using gcc _

  • linux – 为什么我在调用sys_pause系统调用时收到SIGSEGV?2019-08-23 15:50:34

    我正在尝试创建一个x86_64汇编程序,只要发送SIGTERM信号,就会显示“SIGTERM received”.我的应用程序直接使用Linux系统调用: %define sys_write 0x01 %define sys_rt_sigaction 0x0d %define sys_pause 0x22 %define sys_exit 0x3c %define SIGTERM 0x0f

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有