# assembly

55개의 포스트
post-thumbnail

Assembly - 2

About Opcode in detail

2022년 7월 3일
·
0개의 댓글
·
post-thumbnail

CPP_RO_배열과 주소

우리는 간단하게 맛보기만 하고 넘어갈 것이다.나중에 CPP에서 더 알아 볼것이다.배열과 리스트: 동일한 특성의 데이터들의 집합을 가리키는 자료구조둘의 가장 큰 차이는 구조적 차이라고 생각한다.배열의 경우 연속된 메모리 공간에 할당되고, 리스트의 경우 메모리가 연속적인

2022년 7월 2일
·
0개의 댓글
·
post-thumbnail

CPP_RO_반복문

메모리에 문자열 올리면 0x00 으로 끝을 명시 해주어야함! 반복문 구현 어셈블리에서 반복문은 cmp, jumo를 이용해서 구현이 가능하다. 연습문제 1~100까지의 합 구하기 내가 구현 논리연산자 활용 👍 나는 지금 mov ax, 0했는데 0으로 밀

2022년 7월 2일
·
0개의 댓글
·
post-thumbnail

CPP_RO_분기문

어셈블리에서는 if문이 딱하나의 문법으로 존재 하지 않아서 여러개 조합해서 만들어야한다.조건 -> 흐름문법CMP dst, src (dst가 기준)이렇게 계산을 하면 결과가 어딘가에는 저장이 되어있다.곱셈이나 나눗셈의 경우 "지정한" 레지스터에 저장이 됨.우리가 이전에

2022년 7월 2일
·
0개의 댓글
·
post-thumbnail

Assembly - 1

About Operation Code & Operand

2022년 6월 30일
·
0개의 댓글
·

[Assembly] 숫자 3개를 입력받아 가장 큰수를 16진수로 출력하기

문제 화면에서 10진수 숫자(0~65535 사이의 값) 3개를, 차례로 입력 받은 뒤, 그 중에 가장 큰 값을 16진수로 화면에 출력한다 풀이 1. 숫자를 입력받아 저장 어셈블리어는 입력을 받을시 문자열로 저장하기 때문에 입력을 받아서 숫자로 변환을 해주어야 한다

2022년 5월 17일
·
0개의 댓글
·

[Assembly]숫자를 2진수로 출력하기

문제 저장된 변수를 2진수로 출력해보자 풀이 먼저 2진수로 출력할 숫자를 데이터 세그먼트에 변수로 저장할 수 있다 그리고 코드 세그먼트에서 데이터를 DS에 넣어주고 프로그램 형식을 만들어 줄 수 있다 다음으로 AL에 출력할

2022년 5월 16일
·
0개의 댓글
·

[Assembly] 두 수의 덧셈

두 변수에 저장된 값을 더해서 출력해보자먼저 데이터 세그먼트에 값을 저장해둘 변수들을 만들 수 있다미리 값을 줄 수도 있고 ?를 줘서 주지 않을 수도 있다위 데이터를 사용하려면 코드 세그먼트에서 데이터를 DS에 넣어주어야 한다이때 세그먼트끼리의 직접 연산은 불가하므로

2022년 5월 15일
·
0개의 댓글
·

[Assembly] 조건문

어셈블리에서 조건문은 점프를 이용한 분기로 이루어진다이때 두 피연산자를 비교해주는 CMP 명령어를 주로 사용한다CMP 명령어는 두개의 피연산자를 비교해준다한 피연산자에서 다른 피연산자를 빼주면서 둘을 비교한다이때 두 피연산자의 값에는 영향을 주지 않는다형식JMP 명령어

2022년 5월 14일
·
0개의 댓글
·

[Assembly] 산술 연산

어셈블리어에서 사칙연산에 사용하는 기호는 주소표현 내에서만 사용합니다.따라서 각 연산에 해당하는 명령어를 사용하여야 한다.INC 명령어는 피연산자의 값을 1만큼 증가시켜준다형식예제DEC 명령어는 피연산자의 값을 1만큼 감소시켜준다형식예제ADD 명령어는 데이터의 더하기

2022년 5월 14일
·
0개의 댓글
·

[Assembly] 8086 계열 기본 레지스터와 주소 지정 방식

8086 계열 기본 레지스터 레지스터란? 데이터 저장, 연산 등을 위한 임시 기억장치 각 레지스터는 자체의 특수한 용도와 제한점이 있다 장점: 메모리보다 엑세스 속도가 빠르다 단점: 개수가 한정되어 있고, 용도가 제한적이다. 종류 범용 레지스터: 8개 세그먼트 레지스터

2022년 5월 14일
·
0개의 댓글
·
post-thumbnail

ARM Instruction Set Architecture (1)

대부분의 어셈블러는 source file을 두 번 읽는다.1\. First pass : symbol table을 만든다. 각 symbol에 대해 second pass에서 사용할 value를 계산하고 기록한다 \- symbols : global variables, fu

2022년 4월 19일
·
0개의 댓글
·
post-thumbnail

[risc-v]C를 risc-v assembly로 변환하기

어셈블리어(assembly language) 또는 어셈블러 언어(assembler language)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다. (wiki)어샘블리어를 소개하기 전에 개발자가 C언어로 작성한 소스코드가 실제로 어떻게 실행되는지 알아

2022년 4월 17일
·
0개의 댓글
·

gcc - warning: stack frame size of xxxx 이해하기

stack frame 은 함수 call이 발생할때 stack 저장공간에 쌓이는 데이터다. Activation record 라고 부르기도한다. stack frame 사이즈는 컴파일 타임에 계산된다. 로컬변수, 리턴addr, 매개변수 등이 저장되어있다. stack over

2022년 3월 24일
·
0개의 댓글
·

[Assembly] Quiz: x86 Assembly 2

Dreamhack Quiz: x86 Assembly2를 풀며 정리하였습니다.

2022년 3월 20일
·
0개의 댓글
·

[Assembly] Quiz: x86 Assembly 1

Dreamhack x86 Assembly 강의를 듣고 푼 Quiz를 정리하였습니다.

2022년 2월 28일
·
0개의 댓글
·

[Assembly] 어셈블리어

어셈블리를 공부하며 정리하였습니다.

2022년 2월 28일
·
0개의 댓글
·

[포인터] 함수포인터 동작 원리

함수포인터의 작동원리를 이해하기 위해서는 컴파일의 과정을 먼저 이해해야 한다.clang 컴파일러는 4가지 단계를 거쳐 소스코드를 실행파일로 만든다. "컴파일"은 넓은 의미에서 이 과정을 포괄하는 말이다. 하지만 좁은 의미의 컴파일은 전처리 다음단계인 translatio

2022년 2월 21일
·
0개의 댓글
·
post-thumbnail

[Book] 어셈블리 언어 튜토리얼

C 프로그래밍이 괴롭고 힘들 때 이 책을 본다. 그럼 더 괴로워진다. 그러나 이 책을 덮는 순간 급격하게 행복해지며 C 언어가 얼마나 뛰어난 언어인지 다시금 깨닫는다.책 이름: 어셈블리 언어 튜토리얼저자: 원일용출판사: 북스홀릭

2022년 2월 15일
·
0개의 댓글
·

.NET assembly 강제지정

Oracle.DataAccess를 사용하는상황에서 PC에 다른버전에 ODAC가 설치 되어 있었다.C:\\Windows\\assembly(GAC)에 사용하던 버전보다 더 높은 버전의 ODAC가 설치되어 있었고 어플리케이션은 높은 버전의 GAC에 등록된 Oracle.Dat

2022년 2월 11일
·
0개의 댓글
·