본문 바로가기

Programming Language

[Assembly] 어셈블리 Test20 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : n을 입력 받아 1부터 n까지의 합 test20.asmsection .data inp db '정수 입력 : ' li equ $ -inp s db '합계 = ' ls equ $ -s ent db 0x0A section .bss num resb 1 sum resb 2 t resb 1 section .text global _start %macro write 2 mov eax,4 mov ebx.. 더보기
[Assembly] 어셈블리 Test19 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 1부터 100까지의 수 중 짝수의 합과 홀수의 합, 그리고 3의 배수의 합 test19.asmsection .data e db 'even sum : ' le equ $ -e o db 'odd sum : ' lo equ $ -o t db '3 sum : ' lt equ $ -t ent db 0x0A section .bss esum resb 4 osum resb 4 tsum resb 4 t.. 더보기
[Assembly] 어셈블리 Test18 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 사용자가 입력하는 정수를 계속 더한다. 만약 0을 입력하면 입력된 합의 결과 및 평균를 출력하고 프로그램 종료 정수 입력 : 1 정수 입력 : 3 정수 입력 : 0 합계 = 4 평균 = 2 test18.asmsection .data inp db '정수 입력 : ' li equ $ -inp s db '합계 = ' ls equ $ -s a db '평균 = ' la equ $ -a ent d.. 더보기
[Assembly] 어셈블리 Test17 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 출력하고자 하는 구구단 단수를 입력받아 해당 단수의 구구단을 출력 반복적인 구구단 출력을 하고, 0을 입력하면 프로그램 종료 test17.asmsection .data x db ' x ' lx equ $ -x eq db ' = ' le equ $ -eq ent db 0x0A section .bss num1 resb 1 num2 resb 1 res resb 2 t resb 1 sectio.. 더보기
[Assembly] 어셈블리 Test16 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 구구단 중 5단을 출력 test16.asmsection .data x db ' x ' lx equ $ -x eq db ' = ' le equ $ -eq ent db 0x0A section .bss num1 resb 1 num2 resb 1 res resb 2 t resb 1 section .text global _start %macro write 2 mov eax,4 mov ebx,1 .. 더보기
[Assembly] 어셈블리 Test15 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 문자 'x' 를 입력할 때 까지 계속해서 문자 입력을 받아 화면에 출력 단, 종료문자 'x'는 대소문자 구분 없다.) 출력 예) 문자 입력 : a 문자 입력 : b 문자 입력 : X test15.asmsection .datamsg db '문자 입력 : 'lm equ $ -msg ent db 0x0A section .bsscha resb 1t resb 1section .textglobal.. 더보기
[Assembly] 어셈블리 Test14 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 사용자로부터 숫자를 입력 받아, 그 수만큼 Hello World! 를 출력 test14.asmsection .data hi db 'Hello World!' lh equ $ -hi ent db 0x0A section .bss num resb 2 section .text global _start %macro write 2 mov eax,4 mov ebx,1 mov ecx,%1 mov edx.. 더보기
[Assembly] 어셈블리 Test13 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : loop문을 이용하여 Hello World!를 10번 출력 test13.asmsection .data hi db 'Hello World!' lh equ $ -hi ent db 0x0A section .bss section .text global _start %macro write 2 mov eax,4 mov ebx,1 mov ecx,%1 mov edx,%2 int 0x80 %endmac.. 더보기
[Assembly] 어셈블리 Test12 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 3개의 수를 입력한 후 최대값 최소값을 출력 test12.asmsection .data n1 db 'num1 :' ln1 equ $ -n1 n2 db 'num2 :' ln2 equ $ -n2 n3 db 'num3 :' ln3 equ $ -n3 ma db 'max :' lma equ $ -ma mi db 'min :' lmi equ $ -mi ent db 0x0A section .bss .. 더보기
[Assembly] 어셈블리 Test11 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 출력예에 맞는 4칙연산을 완성ex) My Calculator 1. 더하기 2. 빼기 3. 곱하기 4. 나누기 선택하세요 1 첫번째 수 : 5 두번째 수 : 7 두 수의 합 = 12 test11.asmsection .data msg db 'My Calculator',0x0A lmsg equ $ -msg a db '1. 더하기',0x0A la equ $ -a s db '2. 빼기',0x0A.. 더보기