notices
This commit is contained in:
		
							parent
							
								
									f5a87e3e0a
								
							
						
					
					
						commit
						1c59c1d541
					
				
					 1 changed files with 29 additions and 0 deletions
				
			
		
							
								
								
									
										29
									
								
								nasm/notices.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								nasm/notices.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| # Notices | ||||
| 
 | ||||
| ## X86 | ||||
| 
 | ||||
| * cmovXX (перемещение с условием) | ||||
| * setXX (установка бита с условием) | ||||
| * аргументы через стек в обратном порядке | ||||
| * удаление из стека лежит на вызывающем | ||||
| * результат работы - в al, ax, eax (стандартные типы) | ||||
| * дробные - в регистрах сопроцессора | ||||
| * cdecl (декларация языка Си)   | ||||
| * push/pop - стек | ||||
| * base pointer - для доступа к локальным переменным | ||||
| 
 | ||||
| ``` | ||||
| printf(str, x, y) | ||||
| --- | ||||
| push L1 | ||||
| push dword [y] | ||||
| push dword [x] | ||||
| push str | ||||
| call printf | ||||
| --- | ||||
| after call: | ||||
| L1: add esp, 12 ; 3 * 4  | ||||
| --- | ||||
| result in eax register (number of printed arguments) | ||||
| ``` | ||||
| * в стек помещается сначала адрес возврата (адрес, откуда вызвали, плюс длина данной инструкции)    | ||||
		Reference in a new issue