본문 바로가기

전체

[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.. 더보기
[Assembly] 어셈블리 Test10 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 한 문자를 입력한 후 숫자이면 "number", 알파벳 대문자이면 "capital letter" 소문자이면 "small letter", 기호이면 "symbol" 출력 ex) 6 ->number test10.asmsection .data x db 'x :' lx equ $ -x n db 'number',0x0A ln equ $ -n b db 'capital letter',0x0A lb e.. 더보기
[Assembly] 어셈블리 Test9 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 알파벳 한 글자를 입력한 후 소문자이면 대문자로, 대문자이면 소문자로 변환하여 출력 ex) a -> A test9.asmsection .data x db 'x :'len equ $ -xent db 0x0A section .bss xn resb 2 section .text global _start %macro write 2 mov eax,4 mov ebx,1 mov ecx,%1 mov e.. 더보기
[Assembly] 파일입출력 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. fileio.asmsection .data file_name db 'testio',0 len equ $ -file_name file_text db 'my name is jung' len1 equ $ -file_text newLine db 0x0a section .bss file_out resb 1;내가 열어본 파일의 정보의 디스크립트를 가지고 있는 변수 file_in resb 1 data res.. 더보기
[Assembly] 어셈블리 Test8 실행환경- cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS 설치방법- sudo apt-get install nasm 컴파일- nasm -f elf64 파일명.asm -o 파일명.o --> 목적파일을 만든다.- ld 파일명.o -o 파일명 --> 실행파일을 만든다. 문제 : 0~24 수를 입력한 후 오전 혹은 오후 몇 시의 형태로 출력 ex) 15 --> 오후 : 3 test8.asmsection .datax db 'x :'len equ $ -x a db '오전 : 'la equ $ -a p db '오후 : 'lp equ $ -p e db 'error'le equ $ -e ent db 0x0A section .bssnum resb 3t resb 3 sect.. 더보기