相关疑难解决方法(0)

堆栈如何在汇编语言中工作?

我目前正在尝试理解堆栈是如何工作的,所以我决定自学一些汇编语言,我正在使用这本书:

http://savannah.nongnu.org/projects/pgubook/

我正在使用Gas并在Linux Mint上进行开发.

我有点困惑:

据我所知,堆栈只是一个数据结构.所以我假设如果我在汇编编码我必须自己实现堆栈.然而,这似乎并非如此,因为有像这样的命令

pushl
popl
Run Code Online (Sandbox Code Playgroud)

因此,当在x86架构的汇编中编码并使用Gas语法时:堆栈只是已经实现的数据结构吗?或者它实际上是在硬件级别实现的?或者是别的什么?其他芯片组的大多数汇编语言也已经实现了堆栈吗?

我知道这是一个愚蠢的问题,但实际上我很困惑.

assembly stack

71
推荐指数
5
解决办法
10万
查看次数

有没有办法将汇编代码插入C?

我记得当天用旧的borland DOS编译器你可以做这样的事情:

asm {
 mov ax,ex
 etc etc...
}
Run Code Online (Sandbox Code Playgroud)

现在是否有半平台独立的方式来做到这一点?我需要进行BIOS调用,所以如果有一种方法可以在没有asm代码的情况下执行此操作,那对我来说同样有用.

c assembly inline-assembly

55
推荐指数
3
解决办法
6万
查看次数

C++:安全使用longjmp和setjmp?

关于以下内容在linux/gcc上使用C++中的longjmp和setjmp是否安全?

  1. 异常处理(我没有使用longjmp/setjmp实现异常处理.我想知道longjmp/setjmp对标准异常处理会产生什么副作用)
  2. *this 指针
  3. 信号
  4. 智能指针(boost的共享和侵入指针)
  5. 你能想到的任何其他东西.

c++ linux gcc exception longjmp

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

标签 统计

assembly ×2

c ×1

c++ ×1

exception ×1

gcc ×1

inline-assembly ×1

linux ×1

longjmp ×1

stack ×1