小编blu*_*isk的帖子

使用NASM以最少的代码打印换行符

我正在学习一些有趣的汇编程序,并且我可能太绿了,无法知道正确的术语并自己找到答案。

我想在程序末尾打印换行符。

下面工作正常。

section .data
    newline db 10

section  .text
_end:
    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 60
    mov rdi, 0
    syscall
Run Code Online (Sandbox Code Playgroud)

但是我希望在不定义.data换行符的情况下实现相同的结果。是否可以sys_write直接使用所需的字节进行调用,还是必须始终通过引用一些预定义的数据来完成调用(我认为这mov rsi, newline是在做什么)?

简而言之,为什么我不能替换mov rsi, newlinemov rsi, 10

linux assembly x86-64 nasm code-size

3
推荐指数
1
解决办法
104
查看次数

重载Perl对象以将哈希访问重定向到自定义例程

前一段时间,我编写了一个例程,该例程解析给定的字符串并以hash的形式返回记录(field => value, field2 => value2)。很好,除了需求已更改,我现在需要返回更多数据并提供获取方法以获取此数据。因此,我调整了例程以返回一个Record对象,该对象将相同的哈希存储在data属性中。

但是,这将破坏期望散列的旧代码,以便可以使用来获取数据$record->{field}。对于新Record对象,此数据的路径现在为$record->{data}->{field}$record->getByShortName('field')

我的想法是重载对象的FETCH方法并返回相应的字段。但是,这似乎不起作用。似乎从未调用过FETCH。

我正在寻找三点建议:

  1. 如何正确重载我的对象,以便将哈希访问尝试重定向到该对象的自定义方法?
  2. 这是一种明智的工作方式,还是会造成巨大的速度损失?
  3. 在我的情况下,有没有更好的方法来保持向后兼容性?

这是一个MVE:

记录.pm

package Record;

use strict;
use warnings;
use Data::Dumper;
use overload fallback => 1, '%{}' => \&access_hash;

sub new {
    my ($class, %args) = @_;
    my %fields = (answer =>  42, question => 21);
    $args{fields} = \%fields;
    return bless { %args }, $class;
}

sub access_hash {
    my ($self) = shift;
    return $self; …
Run Code Online (Sandbox Code Playgroud)

perl overloading

3
推荐指数
1
解决办法
76
查看次数

什么是'perl-dynamic'可执行文件

调查我们(HP UX IA64系统)上多个Perl安装的问题,我遇到了一个名为的可执行文件perl-dynamic.这到底是什么以及它到底做了什么?

更重要的是,我如何知道它实际指向哪个perl可执行文件(我们有多个版本混合版本号和安装的体系结构).

bash-4.4$ ll /usr/bin/perl    
lrwxr-xr-x   1 root       sys             18 Jan  8 16:34 /usr/bin/perl -> /opt/perl/bin/perl
bash-4.4$ ll /opt/perl/bin/perl
lrwxrwxrwx   1 bin        bin             14 Jan  8 16:45 /opt/perl/bin/perl -> ./perl-dynamic
Run Code Online (Sandbox Code Playgroud)

这是一个神奇的perl二进制文件,决定使用哪个版本和架构?

perl hp-ux

1
推荐指数
1
解决办法
53
查看次数

symfony内置服务器高CPU使用率

我在开发期间运行Symfony的内置服务器,并注意到CLI.exe的CPU使用率(PHP的命令行界面被调用php bin/console server:run)总是大约30%,即使在空闲时也是如此.

我从Windows Powershell启动它.知道为什么这会在空闲时间发生吗?

php symfony

0
推荐指数
1
解决办法
738
查看次数

尽管函数返回 false,但 Array.filter() 不会过滤元素

我正在尝试使用 filter 函数从数组中删除一个元素。这是在 Typescript/Angular6 中,但我认为这个片段一般适用于 JS。

尽管过滤器函数false为该元素返回,但下面的代码似乎没有过滤掉我想要的元素。至少我认为它false在比较评估为 false时返回(参见输出)。

详细的手动功能 withArray.splice()确实可以完成它的工作。我没有看到什么?

  public deleteAltChar() {
    console.log(this.char.altchars);
    this.charService.deleteAltChar(this.altChar, this.char)
      .subscribe(data => {
        // THIS DOES NOT WORK
        this.char.altchars.filter(ac => {
            console.log(ac);
            console.log(this.altChar);
            console.log(this.altChar != ac);
            return ac != this.altChar;
        });
        console.log(this.char.altchars);
        // THIS DOES WORK
        // this.char.altchars.forEach(ac => {
        //  if (ac == this.altChar) {
        //      this.char.altchars.splice(this.char.altchars.indexOf(ac), 1);
        //  }
        // });
      });
  }
Run Code Online (Sandbox Code Playgroud)

第一部分的输出:

Array[0: Object { id: 37 }]
Object { id: 37 }
Object …
Run Code Online (Sandbox Code Playgroud)

javascript angular

0
推荐指数
1
解决办法
540
查看次数

Array.find 在 Angular 应用程序中不起作用;在控制台中工作

我正在开发的一个 Angular 应用程序SourceService首先从 API 端点获取源,将它们存储到内存中并用作本地缓存,可以通过id. 到目前为止一切顺利,我想。但函数findSourceById总是返回undefined。为什么?

  findSourceById(id: number): Source {
    console.log(this.sources);
    console.log(id);
    console.log(this.sources.find(s => s.id === id));
    return this.sources.find(s => s.id === id)
  }
Run Code Online (Sandbox Code Playgroud)

以上输出:

数组 [{id: 1} {id: 2}] // 模型

2

不明确的

但是,如果我使用 DevTools 将数组分配给一个新的全局变量,然后find在该变量上运行相同的函数,它会返回预期的元素。

另外,如果我插入debugger的return语句之前声明,我看到,this.sources仍然是两个数组,而是sfind函数定义是不明确的。看起来 JavaScript 错误地将 Array 元素传递到循环迭代中。

arrays find angular

-1
推荐指数
1
解决办法
3340
查看次数

标签 统计

angular ×2

perl ×2

arrays ×1

assembly ×1

code-size ×1

find ×1

hp-ux ×1

javascript ×1

linux ×1

nasm ×1

overloading ×1

php ×1

symfony ×1

x86-64 ×1