농소
형변환 1). 큰 -> 작은 저장소 ( 큰 문제는 없다. ) int a = 10 short b =a ex) eax -> ax -> al 별다른 명령어가 필요하지않고 해당 레지스터 크기를 줄여서 사용하지만 줄이는과정에 상위비트의 값의 손실이 발생할 수 있음. 2). 작은 -> 큰 short a =10 int b = a 예를들어 8비트 크기의 레지스터인 dl 값을 16비트인 ax로 옮길려고 할시 컴파일 에러가 발생한다. 바로 8비트를 채우고 나머지 8비트를 무엇으로 채워야 할지 모르기 때문이다.그것을 해결하기 위해선 [ movzx ( zero extend - 나머지를 0으로 채우겠다.) ] [ movsx ( sign extend - 부호가 있는경우 음수일 때 나머지 빈공간을 1로 채우겠다. ] 이 두 명령어..
EL( Expression Language ) - 코드 간소화 EL 표현식 -문자열, 숫자, 논리 - ${ } 내에 표현식으로 표현 - 문자열 : ("")더블쿼트,''단일 쿼트 구분이 없다. ex) ${"abc"} , ${'abc'} - 숫자 : 정수, 실수 ex) ${1234} , ${3.14} - 논리 : true, fause ex) ${4>3} = true EL 연산자 - 산술 연산자 : +, -, /, *, mod - 비교 연산자 : &&, ||, or, and, not, xor - 논리 연산자 : ==, !=, >, 위 내용을 간단하게 EL 내장객체로 손쉽게 표현가능 하다 - EL ${param.id} = String id = request.getParameter("id");${param.pwd..
ADD : 덧셈 어셈블에서는 c와는 다르게 +연산자를 사용하지 않고, add명령어를 통해 덧셈을 한다.mov를 통해 레이블 num의 메모리값에 10을 넣어주고 레지스터 eax에 20을 넣어준다.그 후 add명령어를 통해 ( [num] = [num] + eax ) 덧셈을 해준다.즉, 결과는 10 + 20 = 30이 나오게된다. SUB : 뺄셈 add와 마찬가지로 매커니즘은 동일하고 +연산이 -연산의 차이밖에 없다.위 코드는 좀전에 했던 코드의 add 명령어를 sub로 변경한 코드이다즉 [num] = [num] - eax => -10의 결과값이 나온다. MUL : 곱셈 - MUL( Unsigned ) 부호가 없는 곱셈 처리 - IMUL( Signed ) 부호가 있는 곱셈 처리 1). MUL 만약 2바이트를 ..