dnaugsuz
从编译原理的角度这句话没说错,但呃其实我也只是好奇 嵌入式hook也就是了解abi的程度 不会学汇编 从软件看,汇编只是机器暴露的算力/io接口,不是微码等内部细节,对数据处理来说goto和int长度这些没意义,CISC里rep movsb这样的也不如strcpy()可移植(我们定义此复用不需要"学"汇编);如果所有函数是 static inline,再 -O3 -nostdlib ,就等于手写汇编( godbolt.org 无结构编程可以用很多hack,比如跳转到半条指令或把.code .rodat…
https://t.me/im_RORIRI/1560 大概我就是这种专业主义……🌚 #ce 关于这个呢我的观点是
汇编器 #assembler 如 gAS,nasm 是支持指令集(ISA)编码的序列化器,输入含伪指令如 .int 0 .long 1。但是汇编也有些套路(比如 call-pushbp栈帧-ret)
汇编本质上和 Lua虚拟机,PyVM,JVM(但-计算栈),LLVM-IR(但-值节点)是一样的,
只是数据可混入代码且指令长不定,也没有规范的for-loop(decl;cond;tail) 、乃至子程序(函数调用)等结构,
所以我在学汇编时并不是掌握intel等会提供的ISA手册,只是被迫理解既有代码的套路。我认为「抽象概况」的汇编足够了,
你可以了解C的元编程(vararg咋弄,报错unwind,cffi)、C++虚方法实现等,没有必要涉及具体的 jmp jz/je jnz jg/jle, cmp, mov [rbp-8],1 ,add sub ror movzx 指令或者 arm 的 b,bl/call,blx 和thumb指令集模式;编译原理乃至编程不是汇编的附庸——Fortran的设计者 John Backus说的,脱离ISA我们仍能汇编🧐。
确实不是所有编程都为使用,但如果想理解汇编,也不该对 x86_64 CDEF调用约定、有无mem2reg 下的汇编全盘接收,实际上编程语言的虚拟机也只是比汇编调用/指令编码更规范、没有统一的objdump ELF format .o/.so地址符号、支持闭包函数据、用常量池而非 .rodata .bss 啥的,而那些加壳器用的花指令(跳转半指令),可在 #reveng 的范畴讨论
如果只是感兴趣,这种思路可以更好的理解汇编,而不是“XX汇编”
汇编器 #assembler 如 gAS,nasm 是支持指令集(ISA)编码的序列化器,输入含伪指令如 .int 0 .long 1。但是汇编也有些套路(比如 call-pushbp栈帧-ret)
汇编本质上和 Lua虚拟机,PyVM,JVM(但-计算栈),LLVM-IR(但-值节点)是一样的,
只是数据可混入代码且指令长不定,也没有规范的for-loop(decl;cond;tail) 、乃至子程序(函数调用)等结构,
所以我在学汇编时并不是掌握intel等会提供的ISA手册,只是被迫理解既有代码的套路。我认为「抽象概况」的汇编足够了,
你可以了解C的元编程(vararg咋弄,报错unwind,cffi)、C++虚方法实现等,没有必要涉及具体的 jmp jz/je jnz jg/jle, cmp, mov [rbp-8],1 ,add sub ror movzx 指令或者 arm 的 b,bl/call,blx 和thumb指令集模式;编译原理乃至编程不是汇编的附庸——Fortran的设计者 John Backus说的,脱离ISA我们仍能汇编🧐。
确实不是所有编程都为使用,但如果想理解汇编,也不该对 x86_64 CDEF调用约定、有无mem2reg 下的汇编全盘接收,实际上编程语言的虚拟机也只是比汇编调用/指令编码更规范、没有统一的objdump ELF format .o/.so地址符号、支持闭包函数据、用常量池而非 .rodata .bss 啥的,而那些加壳器用的花指令(跳转半指令),可在 #reveng 的范畴讨论
如果只是感兴趣,这种思路可以更好的理解汇编,而不是“XX汇编”
Telegram
螺莉莉的黑板报
摘自 : 张医生被批判,背后是专业主义的危机 newslab
什么是专业主义?按照政论杂志《国家事务》(National Affairs)一篇文章的说法,专业主义意味着:在从业者之间形成强大的内部观念,有一套经过一代代总结传承的做事情的最佳方法和专业守则,目的是为了实现一些具体的目标,而不是为了个人的名利或者为了派别的利益。当不确定的情况发生时,一个具备专业主义的人会问自己:“根据我的专业职责,我在这种情况下应该做些什么?”而专业主义一般会给这样的问题提供答案。
专业主义是以本专业的守则为最高准则…
什么是专业主义?按照政论杂志《国家事务》(National Affairs)一篇文章的说法,专业主义意味着:在从业者之间形成强大的内部观念,有一套经过一代代总结传承的做事情的最佳方法和专业守则,目的是为了实现一些具体的目标,而不是为了个人的名利或者为了派别的利益。当不确定的情况发生时,一个具备专业主义的人会问自己:“根据我的专业职责,我在这种情况下应该做些什么?”而专业主义一般会给这样的问题提供答案。
专业主义是以本专业的守则为最高准则…
duangsuse::Echo pinned «圣诞快乐🎄!(确信,可圣诞节过好久了) #code #js s=你的字,sB=字符画; i=0,N=s.length;[...sB].map(x=>x!=" "?s[i=(i+1)%N]:x).join("") 提示:不直观的流组合,像zip(filter, 。sB可用亮度lum-像素过滤从位图生成»
duangsuse::Echo
https://t.me/im_RORIRI/1560 大概我就是这种专业主义……🌚 #ce 关于这个呢我的观点是 汇编器 #assembler 如 gAS,nasm 是支持指令集(ISA)编码的序列化器,输入含伪指令如 .int 0 .long 1。但是汇编也有些套路(比如 call-pushbp栈帧-ret) 汇编本质上和 Lua虚拟机,PyVM,JVM(但-计算栈),LLVM-IR(但-值节点)是一样的, 只是数据可混入代码且指令长不定,也没有规范的for-loop(decl;cond;tail)…
#ce #plt #cplusplus 那我就补点引文
#recommend https://lecoding.com/post/2018/implement-naive-jit-calc/ 快的LLVM JIT四则
#dalao 不是llvmIR,是x86 push val/litconst pop2:binop模板。
https://zhuanlan.zhihu.com/p/373584239 长的 BF jit/代码模板
https://github.com/hello2dj/blog/issues/15 #js 实现AST计算器、汇编
https://zhuanlan.zhihu.com/p/161722203 QuickJS 要支持 with operators from tf 重载和 BigDecimal
https://github.com/codehz/tjs 性能问题可用cffi解决(群除我佬). 赫兹还有 C++ func_ptr-data 的实现
#recommend https://lecoding.com/post/2018/implement-naive-jit-calc/ 快的LLVM JIT四则
#dalao 不是llvmIR,是x86 push val/litconst pop2:binop模板。
https://zhuanlan.zhihu.com/p/373584239 长的 BF jit/代码模板
https://github.com/hello2dj/blog/issues/15 #js 实现AST计算器、汇编
https://zhuanlan.zhihu.com/p/161722203 QuickJS 要支持 with operators from tf 重载和 BigDecimal
https://github.com/codehz/tjs 性能问题可用cffi解决(群除我佬). 赫兹还有 C++ func_ptr-data 的实现
知乎专栏
JIT Compilation:理解与实现
(搬运自个人博客,原文: JIT Compilation:理解与实现)本文主要介绍了基础编译技术中的 JIT Compilation 技术,以及如何使用 C++ 快速构建一个简单的 JIT Compiler。 大约是在一年以前,“ 写一篇文章介绍 JIT …
你觉得『中文编程』是民科吗
Anonymous Poll
60%
是,因为中文是噱头而且有易语言烂的前例
0%
是,因为中文包涵不了严谨性,只能作实验和文言天书
40%
非,我就觉得这只是种写法 没有优劣 只有现况
0%
非,有实验经历的话不算
#typescript #typing Pick,Omit..
https://github.com/codehz/tjs/blob/%F0%9F%92%A5/tjs.d.ts#L60
噢原来是 unification .. T extends'x{infer rest} ' ... 不愧ts 强类型(其实术语是渐进类型 gradual
https://t.me/im_RORIRI/1647 tsc补齐游戏
https://github.com/sinclairzx81/typebox
https://github.com/codehz/tjs/blob/%F0%9F%92%A5/tjs.d.ts#L60
噢原来是 unification .. T extends'x{infer rest} ' ... 不愧ts 强类型(其实术语是渐进类型 gradual
https://t.me/im_RORIRI/1647 tsc补齐游戏
https://github.com/sinclairzx81/typebox
GitHub
tjs/tjs.d.ts at 💥 · codehz/tjs
TJS = tinyc compiler + quickjs. Contribute to codehz/tjs development by creating an account on GitHub.
Forwarded from 螺莉莉的黑板报
Forwarded from 螺莉莉的黑板报
Forwarded from 螺莉莉的黑板报
西红柿炒鸡蛋:
<div>法式有机田园圣女果佐低温油浴鹌鹑蛋:
<a href="https://google.com">
<img src="https://wtf.com/a.svg" alt="Logo" />
</a>
</div>
<document-division>
<anchor hypertext-reference="https://google.com">
<image source="https://wtf.com/a.svg" alernative-text="Logo" />
</anchor>
</document-division>
Forwarded from 螺莉莉的黑板报
This media is not supported in your browser
VIEW IN TELEGRAM
大家好我是用非等宽字体写代码的恶魔