在int$0x80 Linux SYS\u退出之前,“movl$0,%ebx”或將0放入ebx的目的是什么?

我知道它讓0進入ebx,但為什么?如果對你來說這是一個no-brainer問題,我很抱歉,這是我學習匯編和幾個月編程的第一周。

我沒有包括下面的所有內容,因為這是一個相當長的lmk,如果必要的話

該組件來自《從頭開始編程第6章》一書

組裝總結:

打開輸入和輸出文件,從輸入中讀取記錄,增加時間,將新記錄寫入輸出文件

SYS_EXIT is 1
LINUX_SYSCALL is 0x80

loop_begin:
pushl ST_INPUT_DESCRIPTOR(%ebp)
pushl $record_buffer
call read_record
addl $8, %esp 

# Returns the number of bytes read. If it isn’t the same number we requested, then it’s either an end-of-file, or an error, so we’re quitting
cmpl $RECORD_SIZE, %eax
jne loop_end

#Increment the age
incl record_buffer + RECORD_AGE

#Write the record out
pushl ST_OUTPUT_DESCRIPTOR(%ebp)
pushl $record_buffer
call write_record
addl $8, %esp
jmp loop_begin

loop_end:
movl $SYS_EXIT, %eax
movl $0, %ebx                             <------------------------ THE INSTRUCTION'S PURPOSE THAT IM ASKING FOR
int $LINUX_SYSCALL
? 最佳回答:

這相當于C中的_exit(0);;除了Linux內核使用不同的調用約定(參數在寄存器中傳遞,而不是在堆棧上傳遞)。

movl $0, %ebx正在將第二個參數(0)加載到內核調用約定的右側寄存器中。第一個參數是函數號(SYS_EXIT)。

主站蜘蛛池模板: 亚洲国产一区二区视频网站| 亚洲第一区精品日韩在线播放| 精品免费AV一区二区三区| 一区二区三区电影网| 日韩人妻一区二区三区免费 | 天堂不卡一区二区视频在线观看 | AV怡红院一区二区三区| 一区二区视频免费观看| 成人精品一区久久久久| 在线中文字幕一区| 精品无码日韩一区二区三区不卡 | 东京热无码一区二区三区av| 精品国产高清自在线一区二区三区| 无码囯产精品一区二区免费| 99久久精品国产免看国产一区| 爆乳熟妇一区二区三区霸乳| 亚洲AV永久无码精品一区二区国产 | 亚洲av乱码一区二区三区| 日韩精品一区二区三区大桥未久| 精品福利一区二区三区精品国产第一国产综合精品 | 亚洲码一区二区三区| 91在线看片一区国产| 日本免费一区二区三区四区五六区 | 国产成人无码AV一区二区在线观看 | 国产成人AV区一区二区三| bt7086福利一区国产| 国产一区二区三区播放心情潘金莲 | 欲色aV无码一区二区人妻 | 激情内射亚洲一区二区三区爱妻| 亚洲一区爱区精品无码| 久久国产精品一区免费下载| 无码少妇一区二区| 日本视频一区在线观看免费 | 一区二区三区在线视频播放| 一区二区三区四区精品| 亚洲一区AV无码少妇电影☆| 久久精品视频一区二区三区| 亚洲一区二区观看播放| 日韩精品一区二区三区国语自制| 精品一区二区三区无码视频| 日本亚洲国产一区二区三区|