小编rob*_*rob的帖子

x86汇编编程循环使用ecx和循环指令而不是jmp + j <condition>

我目前正在学习x86汇编语言,并想知道实现循环的更好方法是什么.一种方法是将值移动到ecx寄存器并使用循环指令,另一种方法是使用jmp指令,然后循环体,然后条件跳转最终到循环体的开头.我想第一个将具有更好的可读性,但除此之外,我不知道为什么要使用它.

x86 assembly loops

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

使Emacs选项卡的行为与vim完全相同

我正在学习当前的Emacs,我正在尝试设置我的初始化文件.目前它看起来像这样(发现它在网络的某个地方):

(setq indent-tabs-mode t)
(setq-default indent-tabs-mode t)
(global-set-key (kbd "TAB") 'self-insert-command)
(setq default-tab-width 4)
(setq tab-width 4)
(setq c-basic-indent 4)
Run Code Online (Sandbox Code Playgroud)

但它的行为与Vim的标签风格不同.

我只是希望它在使用标签时表现得像Vim.这意味着不用空格替换制表符(我认为默认情况下Emacs会这样做).

这样每个人都可以按首选标签宽度编辑文件.我通常使用4作为标签宽度.当我按Backspace时,它将向后移动相同的数字,这意味着如果我将tab设置为4并按Tab键,那么在按下Backspace后它将返回4个字符.它也应该总是使用4个空格作为标签.因为有时在emacs中它不会这样做.

emacs indentation

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

使用文本用户界面的IDE(如ncurses)

是否有任何IDE在shell而不是gui中运行.因为我真的不喜欢使用鼠标(滚动除外,所有内容都更快,例如在使用快捷方式的firefox中).

我真的很喜欢文本用户界面(比如tui模式中的gdb),并且拥有一个完全可以通过键盘控制的ide会很好(我现在正在学习emacs,但它实际上并不像我想的那样设计).

ide curses emacs tui ncurses

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

调用x86的堆栈保存单个字节

我目前正在学习x86汇编与"Linux中的汇编语言指南"和第241页,写道只有16位字或32位字保存到堆栈中,但这是真的吗?我的意思是在C中,一个char数组由单个字节组成,它们被保存到堆栈中,因为C由使用调用堆栈的函数组成,对吧?那我错了什么?

c x86 assembly stack callstack

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

使 fgets 不打印由箭头键或其他控制键引起的 ^G 或 ^D 之类的内容

基本上标题是不言自明的。我正在用 C 编程,并使用 fgets 作为输入函数,但我不希望打印控制字符。

c input fgets

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

在实际应用中需要对数字进行排序

任何人都可以提供一些重要/经常使用的例子,其中需要在实际应用程序中排序(大量)数字编辑:基本上我认为不是那么明显的排序发生的地方,但对用户来说并不是很明显.所以我的问题应该是我认为,排序发生在哪里,人们不期望它.

sorting numbers

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

标签 统计

assembly ×2

c ×2

emacs ×2

x86 ×2

callstack ×1

curses ×1

fgets ×1

ide ×1

indentation ×1

input ×1

loops ×1

ncurses ×1

numbers ×1

sorting ×1

stack ×1

tui ×1