小编Cam*_*Cam的帖子

要学习汇编 - 我应该从32位还是64位开始?

我真的很想学习装配.我非常擅长c/c ++,但希望更好地了解较低级别的内容.

我意识到之前已经提出了与装配相关的问题,但我只是在寻找一些特定于我的情况的方向:

我正在运行Windows 7,我对如何开始使用汇编感到困惑.我是否必须从x64开始,因为我正在运行Windows 7?有些人说"先从32位开始" - 我该如何做呢?我的操作系统与我为'32'或'64'位写入汇编的能力有什么关系.事实上,'n位'汇编意味着什么,其中n是一个数字?


编辑:

以下是一些帮助我开始组装的链接; 刚刚入门的其他人可能会发现它们很有帮助.随着我继续组装之旅,我将继续更新此列表:)

注意:正如我一直在学习的那样,我决定专注于使用masm32进行编程.因此,以下大多数资源都集中于此.

x86 assembly x86-64 low-level

52
推荐指数
2
解决办法
3万
查看次数

角度材质 - 如何在md工具栏中将元素定位到右侧

我在工具栏中使用FAB快速拨号.但是我无法将它浮动到工具栏的右侧.我试过风格:"浮动:正确"没有运气.还尝试了flex offset ="55",但是在调整窗口大小时这不起作用.基本上无论窗口大小如何,我都希望按钮位于蓝色工具栏容器内的最右侧.任何有关这方面的帮助将受到高度赞赏.见下面的照片和代码:

工具栏

<md-toolbar layout-fill layout-padding layout="row" style="background-color: #3F51B5;color:white;text-align:text-center;">
    <div layout="row">
        <i class="fa fa-users fa-2x" flex></i>
        <h1 class="md-title" style="color:white">Org Chart</h1>                                 
    </div>  
    <div class="lock-size" flex offset="55">
        <md-fab-speed-dial md-direction="left" ng-class="md-fling">
            <md-fab-trigger>
                <md-button aria-label="menu" class="md-fab md-accent">
                    <md-tooltip>
                      Actions
                    </md-tooltip>
                    <md-icon md-svg-src="img/icons/ic_view_module_48px.svg"></md-icon>
                </md-button>
            </md-fab-trigger>
            <md-fab-actions>
                <md-button aria-label="view" class="md-fab md-raised md-mini" >
                    <md-tooltip>
                      View Chart
                    </md-tooltip>                               
                    <md-icon md-svg-src="" style="color:black" ng-show="cDP.read" ng-click="paneShowFn('read')"></md-icon>
                </md-button>
                <md-button aria-label="add" class="md-fab md-raised md-mini" >
                    <md-tooltip>
                      Add Chart
                    </md-tooltip>                               
                    <md-icon md-svg-src="img/icons/ic_add_48px.svg" style="color:black" ng-show="cDP.insert" ng-click="paneShowFn('insert')"></md-icon>
                </md-button>
                <md-button aria-label="Settings" class="md-fab md-raised md-mini" >
                    <md-tooltip> …
Run Code Online (Sandbox Code Playgroud)

css angularjs angular-material

42
推荐指数
2
解决办法
8万
查看次数

如何保护课程,使其在包装外不可见

我希望能够在我的包中有两个"受保护"类.也就是说,我不希望我的包外的文件看到它们是可见的 - 它们仅供包内部使用.

我怎样才能做到这一点?

java class protected

41
推荐指数
1
解决办法
5万
查看次数

为什么不能在PHP中从抽象类调用抽象函数?

我已经设置了一个抽象的父类,以及一个扩展它的具体类.为什么父类不能调用抽象函数?

//foo.php
<?php
    abstract class AbstractFoo{
        abstract public static function foo();
        public static function getFoo(){
            return self::foo();//line 5
        }
    }

    class ConcreteFoo extends AbstractFoo{
        public static function foo(){
            return "bar";
        }
    }

    echo ConcreteFoo::getFoo();
?>
Run Code Online (Sandbox Code Playgroud)

错误:

致命错误:无法 在第5行的foo.php中调用抽象方法AbstractFoo :: foo()

php oop methods static abstract

38
推荐指数
2
解决办法
2万
查看次数

汇编 - .data,.code和寄存器......?

所以今天早上我发布了一个关于汇编的混乱问题,我收到了一些非常真实的帮助,我非常感谢.

现在我开始进入组装,并开始了解它是如何工作的.

我觉得我理解的事情包括堆栈,中断,二进制/十六进制,以及一般大多数基本操作(jmp,push,mov等).

我正在努力理解并希望得到帮助的概念如下:如果您能解决以下任何问题,那将是一个巨大的帮助:

  1. .data部分究竟发生了什么?那些变量我们是在申报吗?
  2. 如果是这样,我们可以稍后在代码部分声明变量吗?如果没有,为什么不呢?如果是这样,那么我们如何以及为什么使用数据部分呢?
  3. 什么是注册?它与变量相比如何?我的意思是我知道这是一个存储一小部分信息的位置......但这对我来说听起来就像一个变量.
  4. 我如何制作阵列?我知道这似乎是随机的,但我很好奇我将如何做这样的事情.
  5. 是否列出了每个寄存器应该用于什么的常见做法?我仍然没有完全理解它们,但是已经注意到有些人说,例如,应该使用某个寄存器来存储程序中的"返回值" - 这些实践是否有全面或至少提供信息的列表?
  6. 我正在学习汇编的原因之一是更好地了解我的高级代码背后发生了什么.考虑到这一点 - 当我用c ++编程时,我经常考虑堆栈和堆.在汇编中我知道堆栈是什么 - 在哪里'堆'?

一些信息:我使用masm32和WinAsm作为IDE,我正在使用Windows 7.我有很多以前使用c ++/java等高级语言编程的经验.


编辑:感谢大家的帮助,照常提供非常丰富的信息!好东西!最后一件事 - 我想知道堆栈指针和Base指针,ESP和EBP之间有什么区别.有人可以帮我吗?

编辑:我想我现在得到它...... ESP总是指向堆栈的顶部.但是,您可以根据需要指定EBP.ESP会自动处理,但您可以使用EBP做任何您想做的事情.例如:

push 6
push 5
push 4
mov EBP, ESP
push 3
push 2
Run Code Online (Sandbox Code Playgroud)

在这种情况下,EBP现在指向持有4的地址,但ESP现在指向持有2的地址.

在实际应用中,6,5和4可以是函数参数,而3和2可以是该函数内的局部变量.

assembly low-level masm32

28
推荐指数
2
解决办法
4万
查看次数

有人可以向我解释"卫生"的概念(我是计划程序员)吗?

所以...我是计划r6rs的新手,我正在学习宏.有人可以向我解释"卫生"是什么意思吗?

提前致谢.

macros scheme hygiene r6rs

28
推荐指数
2
解决办法
5570
查看次数

计划中lambda的重点是什么?

我正在学习计划.我知道如何使用lambda和let表达式.

然而,我正在努力弄清楚使用lambda的重点是什么.你不能用lambda做你能做的一切吗?

看一个lambda表达式是比let更好的选择的例子会特别有用.

还有一件事 - 是否还有让let比lambda更有用的情况?如果是这样的例子也会很好.

编辑:我也对对比定义和lambda感兴趣,因为它们似乎执行类似的任务.


更新:

感谢大家的帮助.在阅读了你的答案之后,我做了一些更多的研究lambda/let/define,现在对它的了解要好得多.

我来自一个很酷的lambda用法的好例子 - 从程序中返回匿名函数.例如,operateTwice下面的过程返回一个匿名函数,该函数基于传递给过程的参数:

(define operateTwice
  (lambda (op1 op2)
    (lambda (x y)
      (op2 (op1 x y) y))))

((operateTwice * +) 2 3) ;equivalent to: (+ (* 2 3) 3), or in standard notation 2*3+3
Run Code Online (Sandbox Code Playgroud)

输出:

9
Run Code Online (Sandbox Code Playgroud)

lambda scheme let

26
推荐指数
3
解决办法
2万
查看次数

搜索+替换文件名中的字符串

使用bash,如何在目录中递归包含的所有文件名(包括文件夹)中搜索所有出现的子字符串'foo',并用'bar'替换它们?

例如,如果当前结构如下所示:

-foo_test
    - fooo.txt
    - xfoo
        - yfoo.h
- 1foo.c
Run Code Online (Sandbox Code Playgroud)

运行bash脚本后它应该如下所示:

-bar_test
    - baro.txt
    - xbar
        - ybar.h
- 1bar.c
Run Code Online (Sandbox Code Playgroud)

bash

24
推荐指数
1
解决办法
2万
查看次数

在bash中将二进制数据作为参数传递

我需要将二进制数据传递给接受命令行参数的bash程序.有没有办法做到这一点?

这是一个接受一个参数的程序:

script arg1
Run Code Online (Sandbox Code Playgroud)

但是arg1,我想传递一些不是很好的ASCII字符的字节0x02,而不是字符串,特别是字节0xc50xd8.

我该怎么做呢?

parameters bash character-encoding

24
推荐指数
3
解决办法
2万
查看次数

"operator =必须是非静态成员"是什么意思?

我正在创建一个双链表,并重载了operator =使列表上的另一个相等:

template<class T>
void operator=(const list<T>& lst)
{
    clear();
    copy(lst);
    return;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译时出现此错误:

container_def.h(74) : error C2801: 'operator =' must be a non-static member
Run Code Online (Sandbox Code Playgroud)

此外,如果有帮助,第74行是定义的最后一行,带有"}".

c++ class operator-overloading non-static

23
推荐指数
3
解决办法
7万
查看次数