H,J,K
This commit is contained in:
		
							parent
							
								
									bd66b63a05
								
							
						
					
					
						commit
						b0ec253b30
					
				
					 3 changed files with 148 additions and 0 deletions
				
			
		
							
								
								
									
										52
									
								
								nasm/H.asm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								nasm/H.asm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | |||
| global main | ||||
| extern printf | ||||
| extern scanf | ||||
| 
 | ||||
| section .text | ||||
| main: | ||||
| 	push x | ||||
| 	push nya | ||||
| 	call scanf | ||||
| 	add esp, 8 | ||||
| 
 | ||||
| 	push y | ||||
| 	push nya | ||||
| 	call scanf | ||||
| 	add esp, 8 | ||||
| 	 | ||||
| 	mov ebx, dword [x] ; a | ||||
| 	mov ecx, dword [y] ; b | ||||
| 
 | ||||
| loop: | ||||
| 	cmp ecx, 0 ; compare b | ||||
| 	je end | ||||
| 
 | ||||
| 	mov eax, ebx ; move a to eax | ||||
| 	cdq | ||||
| 	div ecx ; a / b, remain in edx | ||||
| 	mov ebx, ecx ; a = b | ||||
| 	mov ecx, edx ; b = remain | ||||
| 		 | ||||
| 	jmp loop | ||||
| end: | ||||
| 	 | ||||
| 	mov eax, dword [x] | ||||
| 	mul dword [y] | ||||
| 	cdq | ||||
| 	div ebx | ||||
| 
 | ||||
| 	push eax | ||||
| 	push nya | ||||
| 	call printf | ||||
| 	add esp, 8 | ||||
| 
 | ||||
| 	xor eax, eax | ||||
| 	ret | ||||
| 
 | ||||
| section .data | ||||
| nya db "%u", 0 | ||||
| 
 | ||||
| section .bss | ||||
| x resd 1 | ||||
| y resd 1 | ||||
| 
 | ||||
							
								
								
									
										63
									
								
								nasm/J.asm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								nasm/J.asm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,63 @@ | |||
| global main | ||||
| extern printf | ||||
| extern scanf | ||||
| extern qsort | ||||
| 
 | ||||
| section .text | ||||
| main: | ||||
| 	; read N | ||||
| 	push n | ||||
| 	push readn | ||||
| 	call scanf | ||||
| 	add esp ,8 | ||||
| 
 | ||||
| 	; read loop for x | ||||
| 	xor ebx, ebx | ||||
| 
 | ||||
| loop1: | ||||
| 	cmp bx, word [n] | ||||
| 	je nya1 | ||||
| 	lea eax, [x + 2 * ebx] | ||||
| dbg1:	push eax | ||||
| 	push nya | ||||
| 	call scanf | ||||
| 	add esp, 8	 | ||||
| dbg2:	inc ebx | ||||
| 	jmp loop1 | ||||
| 
 | ||||
| nya1: | ||||
| 	push compare | ||||
| 	push dword 2 | ||||
| 	push dword [n] | ||||
| 	push x | ||||
| 	;push x | ||||
| 	;push dword [n]	 | ||||
| 	;push dword 2 ; size of element | ||||
| 	;push compare | ||||
| 	call qsort | ||||
| 	add esp, 16 | ||||
| 
 | ||||
| 
 | ||||
| 	xor eax, eax | ||||
| 	ret | ||||
| 
 | ||||
| compare: | ||||
| 	;mov ebp, esp | ||||
| 	;sub esp, 16 | ||||
| 	;pop eax | ||||
| 	;pop ebx | ||||
| 	;push ebp | ||||
| 	;mov ebp, esp	 | ||||
| 
 | ||||
| 	mov eax, dword [esp + 4] | ||||
| 	;lea ebx, [ebp - 2] | ||||
| 	;mov ebx, [esp + 8] | ||||
| 	sub eax, [esp + 8] | ||||
| 	ret | ||||
| 
 | ||||
| section .data | ||||
| nya db "%hu", 0 | ||||
| readn db "%d", 0 | ||||
| section .bss | ||||
| n resd 1 | ||||
| x resw 10000 | ||||
							
								
								
									
										33
									
								
								nasm/K.asm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								nasm/K.asm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | |||
| global main | ||||
| extern scanf | ||||
| extern printf  | ||||
| 
 | ||||
| section .text | ||||
| main: | ||||
| 
 | ||||
| 	push y | ||||
| 	push x | ||||
| 	push scan | ||||
| 	call scanf | ||||
| 	add esp, 12 | ||||
| 
 | ||||
| 	fld dword [x] | ||||
| 	fld dword [y] | ||||
| 	fdiv | ||||
| 
 | ||||
| 	sub esp, 8 | ||||
| 	fst qword [esp] | ||||
| 	push nya | ||||
| 	call printf | ||||
| 	add esp, 12 | ||||
| 	xor eax, eax | ||||
| 	ret | ||||
| 
 | ||||
| section .data | ||||
| scan db "%f%f", 0 | ||||
| nya db "%f", 10, 0 | ||||
| 
 | ||||
| section .bss | ||||
| x resd 1 | ||||
| y resd 1 | ||||
| 
 | ||||
		Reference in a new issue