偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux下的匯編語言之系統(tǒng)調(diào)用

運(yùn)維 系統(tǒng)運(yùn)維
匯編語言是基本的語言之一,他的明顯優(yōu)勢(shì)是速度快,可以直接對(duì)硬件進(jìn)行操作。Linux下如何使用匯編語言,語法格式有哪些?需要使用哪些開發(fā)工具?本文將會(huì)為大家詳細(xì)道來。

      作為最基本的編程語言之一,匯編語言雖然應(yīng)用的范圍不算很廣,但重要性卻勿庸置疑,因?yàn)樗軌蛲瓿稍S多其它語言所無法完成的功能。就拿 Linux 內(nèi)核來講,雖然絕大部分代碼是用 C 語言編寫的,但仍然不可避免地在某些關(guān)鍵地方使用了匯編代碼,其中主要是在 Linux 的啟動(dòng)部分。由于這部分代碼與硬件的關(guān)系非常密切,即使是 C 語言也會(huì)有些力不從心,而匯編語言則能夠很好揚(yáng)長避短,最大限度地發(fā)揮硬件的性能。

第四課時(shí):Linux 命令行參數(shù)

   在 Linux 操作系統(tǒng)中,當(dāng)一個(gè)可執(zhí)行程序通過命令行啟動(dòng)時(shí),其所需的參數(shù)將被保存到棧中:首先是 argc,然后是指向各個(gè)命令行參數(shù)的指針數(shù)組 argv,最后是指向環(huán)境變量的指針數(shù)據(jù) envp。在編寫匯編語言程序時(shí),很多時(shí)候需要對(duì)這些參數(shù)進(jìn)行處理,下面的代碼示范了如何在匯編代碼中進(jìn)行命令行參數(shù)的處理:

  例3. 處理命令行參數(shù)

  

  1. # args.s  
  2.  
  3.   .text  
  4.  
  5.   .globl _start  
  6.  
  7.   _start:  
  8.  
  9.   popl %ecx # argc  
  10.  
  11.   vnext:  
  12.  
  13.   popl %ecx # argv  
  14.  
  15.   test %ecx, %ecx # 空指針表明結(jié)束  
  16.  
  17.   jz exit  
  18.  
  19.   movl %ecx, %ebx  
  20.  
  21.   xorl %edx, %edx  
  22.  
  23.   strlen:  
  24.  
  25.   movb (%ebx), %al  
  26.  
  27.   inc %edx  
  28.  
  29.   inc %ebx  
  30.  
  31.   test %al, %al  
  32.  
  33.   jnz strlen  
  34.  
  35.   movb $10, -1(%ebx)  
  36.  
  37.   movl $4, %eax # 系統(tǒng)調(diào)用號(hào)(sys_write)  
  38.  
  39.   movl $1, %ebx # 文件描述符(stdout)  
  40.  
  41.   int $0x80  
  42.  
  43.   jmp vnext  
  44.  
  45.   exit:  
  46.  
  47.   movl $1,%eax # 系統(tǒng)調(diào)用號(hào)(sys_exit)  
  48.  
  49.   xorl %ebx, %ebx # 退出代碼  
  50.  
  51.   int $0x80  
  52.  
  53.   ret  
  54.  

【編輯推薦】

  1. 2.3 用匯編語言編寫程序
  2. 術(shù)語匯編 基本CSS濾鏡概述
  3. 琢石成器—Windows環(huán)境下32位匯編語言程序設(shè)計(jì)
  4. 3.1.3 as86匯編語言程序的編譯和鏈接
  5. 3.1.2 as86匯編語言程序
  6. 3.1.1 as86匯編語言語法
  7. 3.2.6 as匯編命令
責(zé)任編輯:zhaolei 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2011-01-14 14:15:11

Linux匯編語言

2011-01-14 14:08:17

Linux匯編語言

2011-01-14 14:39:32

Linux匯編語言

2011-01-14 13:44:45

Linux匯編語言

2018-01-11 14:58:40

2021-03-25 13:05:56

網(wǎng)絡(luò)安全寄存器匯編語言

2012-02-09 09:00:54

匯編語言

2011-01-04 17:08:10

匯編語言

2021-06-11 10:02:39

語言編程開發(fā)

2010-11-09 09:51:52

匯編語言

2022-10-31 14:02:24

匯編語言神經(jīng)網(wǎng)絡(luò)

2023-11-23 08:25:40

開發(fā)人員SmaliAndroid

2011-07-21 09:59:26

JavaScript

2009-06-14 21:54:37

動(dòng)態(tài)語言Java腳本API

2017-01-12 22:36:30

2023-06-01 16:27:34

匯編語言函數(shù)

2022-04-22 15:06:59

C++PythonJava

2010-06-04 17:56:22

Linux 常用工具

2012-08-13 14:13:46

2010-06-13 15:35:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)