add什么意思| 黑色的玫瑰花代表什么| 泛是什么意思| 一眼万年什么意思| 探索是什么意思| 喝茶为什么睡不着觉| 什么药吃了死的快| 97年的牛是什么命| 碎片化是什么意思| 女人吃葛根粉有什么好处| 中国精神是什么| 肺气不足吃什么食物可以补肺气| 心绞痛吃什么药最管用| 人加三笔是什么字| 4级残疾证有什么优惠政策| 八婆是什么意思| 1991年属什么| 花荣的绰号是什么| 尿酸高说明什么问题| 高血压是什么原因引起的| 欺凌是什么意思| 4月9日什么星座| 一个巾一个占念什么| 肠鸣是什么原因引起的| 产后42天复查挂什么科| 长疖子用什么药| 2012年什么年| 贵州有什么好吃的| 怀孕几天后有什么反应| 杀了神经的牙为什么还疼| 钯金是什么金| 什么是息肉| 百日咳吃什么药| 无垠是什么意思| 柠檬泡水喝有什么功效| 成龙真名叫什么名字| 腰间盘突出有什么好的治疗方法| 产褥热是什么病| 15一16岁青少年腰疼是什么病| 叶公好什么| 什么行业最赚钱| 越南古代叫什么| 春什么秋什么| 手术后为什么要平躺6小时| c4是什么意思| 阿玛施属于什么档次| 病毒发烧吃什么药| 失眠吃什么| 一千年前是什么朝代| ab型rh阳性是什么意思| 治骨质疏松打什么针| 睡不着觉吃什么药效果好| 怀孕养猫对胎儿有什么影响| 即使什么也什么| 大限将至什么意思| 慈禧属什么生肖| 变形虫是什么生物| 天雨粟鬼夜哭什么意思| 憩是什么意思| 奕五行属什么| 驳什么意思| 羊肉不能和什么一起吃| 天体是什么| 嘴苦是什么病的征兆| 减脂喝什么茶最有效| 尿痛什么原因引起的| 三个山是什么字| 干咳吃什么药最有效| 爱情是什么| 弱冠是什么意思| 预计是什么意思| 什么叫正盐| 女为念什么| 纸老虎是什么意思| 麻小是什么意思| 空调什么度数最省电| 什么的青蛙| 进贡是什么意思| 日语一个一个是什么意思| 破伤风有什么症状| 舌头麻是什么原因| 脚转筋是什么原因引起的| 白虎关是什么意思| 霍乱是什么| 石敢当是什么神| 双源ct主要检查什么| 舅舅和外甥女是什么关系| 嘱托是什么意思| 骶椎腰化什么意思| 慢性咽喉炎吃什么药好| gn什么意思| 海清是什么意思| 喝酒前吃什么不容易醉又不伤胃| 番石榴是什么| 黄色加红色是什么颜色| 氩气是什么气体| 心机血缺血吃什么药最好| 头孢全名叫什么| 口臭是什么原因造成的| 8.19是什么星座| 结缡什么意思| 为什么睡觉流口水很臭| 七月十五是什么节| 菊花的功效是什么| 什么花可以吃| 属牛的守护神是什么菩萨| 骨髓抑制什么意思| 肌酐是什么病| 豆腐干炒什么菜好吃| 黄色裤子配什么上衣| 菊花是什么季节开的| 刺猬为什么叫白仙| 教师节属什么生肖| 4月份是什么星座| 口了又一是什么字| 什么是梨形身材| 夏天刮什么风| 不置可否是什么意思| 倾情是什么意思| 泥鳅喜欢吃什么食物| 老妹是什么意思| 奕字五行属什么| 屁眼疼痛什么原因| 大腿前侧肌肉叫什么| 阑尾炎吃什么水果| cn什么意思| 凿是什么意思| 鲱鱼是什么鱼| 元宵节干什么| 4月23日是什么星座| 嗓子突然哑了是什么原因引起的| 腊月初八是什么星座| hpv阳性有什么症状| 六十天打一字是什么字| 吃生洋葱有什么好处| 糖尿病人早餐吃什么好| 什么原因引起痛风| 11月9号是什么日子| 身宫是什么意思| 低压高是什么引起的| 葱长什么样| 大咖是什么意思| 头皮发麻是什么病的前兆| 推什么出什么| 肾动脉彩超主要查什么| 为什么会长黑痣| 接济是什么意思| 长沙为什么叫星城| 女人熬夜吃什么抗衰老| 什么是白细胞| 乳腺炎吃什么消炎药| 钾离子低的原因是什么| 一直流鼻血是什么原因| 血脂高吃什么降血脂| 晒伤了涂什么药| 农历4月是什么星座| 甘油三酯高是什么| 牙龈发炎是什么原因引起的| 割韭菜什么意思| 抽烟为什么会头晕| 银黑了用什么可以洗白| 每天什么时间锻炼最好| 共济会是什么| 咽颊炎吃什么药| 塔塔粉是什么粉| 盐的主要成分是什么| 语文是什么| 接吻有什么好处| 脸上为什么会长痣| 什么东西越洗越脏答案| 什么金属最贵| 水彩笔用什么能洗掉| 腿抽筋什么原因| 口蜜什么剑| 有甲状腺结节不能吃什么| 孜然是什么植物| 皮肤癣用什么药最好| 槐树什么时候开花| 女性脂肪率偏高说明什么| 九八年属什么生肖| 504是什么意思| 卫戍部队是什么意思| 脸基尼是什么意思| 糖化血红蛋白高是什么意思| 儿童肥胖挂什么科| 不建议什么意思| 碘酸钾是什么| 乙醇是什么| lll是什么意思| 官鬼是什么意思| 末梢血是什么意思| 热惊厥病发是什么症状| 吃什么清肺养肺| 女真人是什么民族| 女人梦见鞋子什么预兆| 鱼胶是鱼的什么部位| 什么叫钙化| 发挥是什么意思| 三人死亡属于什么事故| 蜂窝网络是什么| 为什么会长黑痣| 结晶是什么意思| 免疫抑制是什么意思| 合肥以前叫什么| 耳垂有折痕是什么原因| 什么叫猥亵| 洗内裤用什么洗比较好| 心经是什么意思| 手脱皮擦什么药膏| sv是什么意思| 胸口痛挂什么科| 心梗用什么药最好| 月亮为什么会有圆缺变化| 牡丹什么意思| 石斛什么功效| 野鸡吃什么食物| 台甫是什么意思| 海松茸是什么| 蓝瘦香菇是什么意思| 五彩斑斓是什么意思| 什么是心脑血管疾病| 爆栗什么意思| 女人吃什么补元气最快| 历久弥新什么意思| 恶趣味什么意思| 拔了尿管尿不出来有什么好办法| 白萝卜什么时候种| hcg是什么| 存在是什么| 什么人不适合做收银员| 朋友梦到我怀孕了是什么意思| 煲仔饭用什么米最好| 华字五行属什么| 红疮狼斑是什么引起的| 吃金针菇有什么好处| 拔牙后喝酒有什么危害| 黄是什么| rad是什么意思| 心率高是什么原因| 最是什么意思| 心脏支架后吃什么药| 人的反义词是什么| 英气是什么意思| 血糖高喝什么茶好| 什么人不能吃洋葱| 罗红霉素胶囊治什么病| 霉菌性阴炎用什么药好得快| 造血干细胞是什么| 脑堵塞有什么症状| 月经很少什么原因| 前列腺肿瘤有什么症状| 义子是什么意思| 十月二十五是什么星座| 天理是什么意思| 命卦是什么意思| 莲花有什么寓意| 粥样动脉硬化是什么意思| 炸东西用什么淀粉| 菊花和枸杞泡水喝有什么功效| 秋葵什么人不能吃| 01年属什么| 霏是什么意思| 五指姑娘是什么意思| 什么补铁| 百度

小孩肚子疼吃什么药好

百度 最后,把这三个方面的评价综合起来,进行科学的分析研究,得出对这项工程、这个方案的全面评价。

A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture, memory or underlying physical hardware; commands or functions in the language are structurally similar to a processor's instructions. These languages provide the programmer with full control over program memory and the underlying machine code instructions. Because of the low level of abstraction (hence the term "low-level") between the language and machine language, low-level languages are sometimes described as being "close to the hardware". Programs written in low-level languages tend to be relatively non-portable, due to being optimized for a certain type of system architecture.[1][2][3][4]

Low-level languages are directly converted to machine code with or without a compiler or interpretersecond-generation programming languages[5][6] depending on programming language. A program written in a low-level language can be made to run very quickly, with a small memory footprint. Such programs may be architecture dependent or operating system dependent, due to using low level APIs.[1]

Machine code

edit
 
Front panel of a PDP-8/e minicomputer. The row of switches at the bottom can be used to toggle in a machine language program.

Machine code is the form in which code that can be directly executed is stored on a computer. It consists of machine language instructions, stored in memory, that perform operations such as moving values in and out of memory locations, arithmetic and Boolean logic, and testing values and, based on the test, either executing the next instruction in memory or executing an instruction at another location.

Machine code is usually stored in memory as binary data. Programmers almost never write programs directly in machine code; instead, they write code in assembly language or higher-level programming languages.[1]

Although few programs are written in machine languages, programmers often become adept at reading it through working with core dumps or debugging from the front panel.

Example of a function in hexadecimal representation of x86-64 machine code to calculate the nth Fibonacci number, with each line corresponding to one instruction:

89 f8
85 ff
74 26
83 ff 02
76 1c
89 f9
ba 01 00 00 00
be 01 00 00 00
8d 04 16
83 f9 02
74 0d
89 d6
ff c9
89 c2
eb f0
b8 01 00 00
c3

Assembly language

edit

Second-generation languages provide one abstraction level on top of the machine code. In the early days of coding on computers like TX-0 and PDP-1, the first thing MIT hackers did was to write assemblers.[7] Assembly language has little semantics or formal specification, being only a mapping of human-readable symbols, including symbolic addresses, to opcodes, addresses, numeric constants, strings and so on. Typically, one machine instruction is represented as one line of assembly code, commonly called a mnemonic.[8] Assemblers produce object files that can link with other object files or be loaded on their own.

Most assemblers provide macros to generate common sequences of instructions.

Example: The same Fibonacci number calculator as above, but in x86-64 assembly language using Intel syntax:

fib:
    mov rax, rdi               ; The argument is stored in rdi, put it into rax
    test rdi, rdi              ; Is the argument zero?
    je .return_from_fib        ; Yes - return 0, which is already in rax
    cmp rdi, 2                 ; No - compare the argument to 2
    jbe .return_1_from_fib     ; If it is less than or equal to 2, return 1
    mov rcx, rdi               ; Otherwise, put it in rcx, for use as a counter
    mov rdx, 1                 ; The first previous number starts out as 1, put it in rdx
    mov rsi, 1                 ; The second previous number also starts out as 1, put it in rsi
.fib_loop:
    lea rax, [rsi + rdx]       ; Put the sum of the previous two numbers into rax
    cmp rcx, 2                 ; Is the counter 2?
    je .return_from_fib        ; Yes - rax contains the result
    mov rsi, rdx               ; No - make the first previous number the second previous number
    dec rcx                    ; Decrement the counter
    mov rdx, rax               ; Make the current number the first previous number
    jmp .fib_loop              ; Keep going
.return_1_from_fib:
    mov rax, 1                 ; Set the return value to 1
.return_from_fib:
    ret                        ; Return

In this code example, the registers of the x86-64 processor are named and manipulated directly. The function loads its 64-bit argument from rdi in accordance to the System V application binary interface for x86-64 and performs its calculation by manipulating values in the rax, rcx, rsi, and rdi registers until it has finished and returns. Note that in this assembly language, there is no concept of returning a value. The result having been stored in the rax register, again in accordance with System V application binary interface, the ret instruction simply removes the top 64-bit element on the stack and causes the next instruction to be fetched from that location (that instruction is usually the instruction immediately after the one that called this function), with the result of the function being stored in rax. x86-64 assembly language imposes no standard for passing values to a function or returning values from a function (and in fact, has no concept of a function); those are defined by an application binary interface (ABI), such as the System V ABI for a particular instruction set.

Compare this with the same function in C:

unsigned int fib(unsigned int n)
{
    if (!n)
    {
        return 0;
    }
    else if (n <= 2)
    {
        return 1;
    }
    else
    {
        unsigned int f_nminus2, f_nminus1, f_n;       
        for (f_nminus2 = f_nminus1 = 1, f_n = 0; ; --n)
        {
            f_n = f_nminus2 + f_nminus1;
            if (n <= 2)
            {
                return f_n;
            }
            f_nminus2 = f_nminus1;
            f_nminus1 = f_n;
        }
    }
}

This code is similar in structure to the assembly language example but there are significant differences in terms of abstraction:

  • The input (parameter n) is an abstraction that does not specify any storage location on the hardware. In practice, the C compiler follows one of many possible calling conventions to determine a storage location for the input.
  • The local variables f_nminus2, f_nminus1, and f_n are abstractions that do not specify any specific storage location on the hardware. The C compiler decides how to actually store them for the target architecture.
  • The return function specifies the value to return, but does not dictate how it is returned. The C compiler for any specific architecture implements a standard mechanism for returning the value. Compilers for the x86-64 architecture typically (but not always) use the rax register to return a value, as in the assembly language example (the author of the assembly language example has chosen to use the System V application binary interface for x86-64 convention but assembly language does not require this).

These abstractions make the C code compilable without modification on any architecture for which a C compiler has been written, whereas the assembly language code above will only run on processors using the x86-64 architecture.

C programming language

edit

C has variously been described as low-level and high-level.[9] Traditionally considered high-level, C’s level of abstraction from the hardware is far lower than many subsequently developed languages, particularly interpreted languages. The direct interface C provides between the programmer and hardware memory allocation and management make C the lowest-level language of the 10 most popular languages currently in use.

C is architecture independent — the same C code may, in most cases, be compiled (by different machine-specific compilers) for use on a wide breadth of machine platforms. In many respects (including directory operations and memory allocation), C provides “an interface to system-dependent objects that is itself relatively system independent”.[10] This feature is considered “high-level” in comparison of platform-specific assembly languages.

Low-level programming in high-level languages

edit

During the late 1960s and 1970s, high-level languages that included some degree of access to low-level programming functions, such as PL/S, BLISS, BCPL, extended ALGOL and NEWP (for Burroughs large systems/Unisys Clearpath MCP systems), and C, were introduced. One method for this is inline assembly, in which assembly code is embedded in a high-level language that supports this feature. Some of these languages also allow architecture-dependent compiler optimization directives to adjust the way a compiler uses the target processor architecture.

Furthermore, as referenced above, the following block of C is from the GNU Compiler and shows the inline assembly ability of C. Per the GCC documentation this is a simple copy and addition code. This code displays the interaction between a generally high level language like C and its middle/low level counter part Assembly. Although this may not make C a natively low level language these facilities express the interactions in a more direct way.[11]

int src = 1;
int dst;   

asm ("mov %1, %0\n\t"
    "add $1, %0"
    : "=r" (dst) 
    : "r" (src));

printf("%d\n", dst);

References

edit
  1. ^ a b c "3.1: Structure of low-level programs". Workforce LibreTexts. 2025-08-07. Retrieved 2025-08-07.
  2. ^ "What is a Low Level Language?". GeeksforGeeks. 2025-08-07. Retrieved 2025-08-07.
  3. ^ "Low Level Language? What You Need to Know | Lenovo US". www.lenovo.com. Retrieved 2025-08-07.
  4. ^ "Low-level languages - Classifying programming languages and translators - AQA - GCSE Computer Science Revision - AQA". BBC Bitesize. Retrieved 2025-08-07.
  5. ^ "Generation of Programming Languages". GeeksforGeeks. 2025-08-07. Retrieved 2025-08-07.
  6. ^ "What is a Generation Languages?". www.computerhope.com. Retrieved 2025-08-07.
  7. ^ Levy, Stephen (1994). Hackers: Heroes of the Computer Revolution. Penguin Books. p. 32. ISBN 0-14-100051-1.
  8. ^ "Machine Language/Assembly Language/High Level Language". www.cs.mtsu.edu. Archived from the original on 2025-08-07. Retrieved 2025-08-07.
  9. ^ Jindal, G.; Khurana, P.; Goel, T. (January 2013). "Comparative study of C, Objective C, C++ programming language". International Journal of Advanced Trends in Computer Science and Engineering. 2 (1): 203.
  10. ^ Kernighan, B.; Ritchie, D. (1988). The C Programming Language, 2nd Edition. p. 163.
  11. ^ "Extended Asm (Using the GNU Compiler Collection (GCC))". gcc.gnu.org. Retrieved 2025-08-07.

Bibliography

edit
  • Zhirkov, Igor (2017). Low-level programming: C, assembly, and program execution on Intel 64 architecture. California: Apress. ISBN 978-1-4842-2402-1.
七个月宝宝可以吃什么水果 嘴唇痒边缘痒用什么药 胃酸分泌过多是什么原因造成的 拔牙后可以吃什么 碱性是什么意思
慢性阑尾炎吃什么药 生意兴隆是什么意思 肛门塞什么东西最舒服 晚上睡不着觉吃什么药 垂体泌乳素高是什么原因
腋窝痒是什么原因 什么是周围神经病 1月21号是什么星座 淋巴结肿大挂什么科 什么药可以降尿酸
家里适合养什么花 朱元璋为什么不杀汤和 飞机选座位什么位置好 溥仪和慈禧什么关系 鼻子干燥用什么药
资讯是什么意思hcv9jop0ns2r.cn 伏什么意思hcv7jop5ns5r.cn 有什么瓜hcv7jop4ns8r.cn 鸡杂是什么hcv8jop1ns5r.cn 秋葵什么时候种植最好hcv8jop7ns5r.cn
宫颈纳囊是什么hcv8jop1ns3r.cn 仲夏是什么时候hcv9jop1ns6r.cn 樱花什么时候开花hcv9jop8ns1r.cn 圣诞节什么时候hcv8jop9ns6r.cn 阿米替林片是治什么病的hcv7jop9ns7r.cn
失眠是什么意思hcv7jop4ns8r.cn 吃什么水果补气血weuuu.com 科学解释什么叫上火hcv8jop9ns8r.cn 圣灵是什么意思hcv8jop4ns4r.cn 灌肠什么感觉hcv8jop5ns9r.cn
幽灵是什么意思fenrenren.com 不一般是什么意思hcv7jop7ns4r.cn 六小龄童的真名叫什么hcv9jop7ns3r.cn 14年是什么年hcv7jop7ns0r.cn 什么样的人不能坐飞机hcv7jop6ns2r.cn
百度