首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NASM通知-发送?

NASM通知-发送?
EN

Stack Overflow用户
提问于 2013-12-02 05:22:13
回答 2查看 199关注 0票数 0

有没有一种方法可以在linux终端中用NASM编码来显示像notify-send命令这样的消息?

我在Ubuntu中使用这个命令:

代码语言:javascript
复制
notify-send "Test"

是否可以使用NASM显示类似的内容?

EN

回答 2

Stack Overflow用户

发布于 2013-12-02 12:14:23

是否要将文本发送到桌面并显示在弹出窗口中?嗯,我对notify-send的东西一无所知,所以我搜索了一下,发现你可以用notify库写一些东西。总而言之,我花了10分钟阅读了一些文档,并编写了示例代码……

代码语言:javascript
复制
bits 64 
extern notify_init, notify_notification_new, notify_notification_show, notify_uninit

extern exit

section .data
name            db  "Sample Notification", 0
title           db  "Just a test", 0

global main
section .text
main:
    mov     rdi, name
    call    notify_init 

    mov     rdx, 0
    mov     rsi, title
    mov     rdi, name
    call    notify_notification_new

    mov     rsi, 0
    mov     rdi, rax
    call    notify_notification_show

    call    notify_uninit

    call    exit

makefile:

代码语言:javascript
复制
APP = notify
$(APP): $(APP).o
    gcc -o $(APP) $(APP).o -lnotify

$(APP).o: $(APP).asm
    nasm -f elf64 $(APP).asm

您需要使用apt-get或包管理器安装libnotify-dev

它对于32位系统应该是类似的。

Gnome Notify Docs

票数 0
EN

Stack Overflow用户

发布于 2020-10-04 12:37:20

很好的例子。我不知道这是可以做到的。只是我遇到的一个小问题。没有-fPIE我不能编译它,即使使用它,我也不能编译它(也许C专家可以帮助我)。

一个解决方案是(对原始代码稍作修改:用全局_start和标签main: with _start: replave全局main :然后使用next makefile:

代码语言:javascript
复制
BIN=notify
NASM=/usr/bin/nasm
NASMOPTS=-felf64 -Fdwarf
LDOPS=-melf_x86_64 -g --dynamic-linker /lib64/ld-linux-x86-64.so.2
LIBS=-lc -lnotify

.PHONY: all clean

all: $(BIN)

clean:
rm -rf $(BIN)

%: %.asm
    $(NASM) $(NASMOPTS) -o $@.o $<
    $(LD) $(LDOPS) -o $@ $@.o $(LIBS)
    rm -f $@.o
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20317417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档