본문 바로가기

16bit assembly

x86 16bit 어셈블리(Assembly) 예제 정리 - 4 /* written by kaspy (kaspyx@gmail.com)*/ 문득 어셈블리 언어를 보다보면 자주쓰지 않는 만큼 해깔릴수 있는것들이 많은것 같아서 정리해보았다. 특히 주소 연산 mov [100], 10 같은것들많이 사용되지 않는 16bit 어셈블리어지만 레지스터 크기나 명령어 이름만 조금 바꾼 형태로 익힌다면 32bit도 그리 어렵지는 않을것이다. 이번에는 비교 및 분기문, 특수연산 등으로 정리하였다. JG 및 JA 명령어예제)mov bl, 5cmp al, bljg 0188ja 018a ;bl 레지스터에 5를 저장하고 al과 비교하여 클 경우 018a 주소로 번지시킵니다.;여기서 jg 구문에서 점프하지 않고 ja에서 한 이유는 jg는 부호있는 검사를 하여 al의 값은 음수가 됩니다.;이때는 a.. 더보기
x86 16bit 어셈블리(Assembly) 예제 정리 - 2 /* written by kaspy (kaspyx@gmail.com)*/ 문득 어셈블리 언어를 보다보면 자주쓰지 않는 만큼 해깔릴수 있는것들이 많은것 같아서 정리해보았다. 특히 주소 연산 mov [100], 10 같은것들많이 사용되지 않는 16bit 어셈블리어지만 레지스터 크기나 명령어 이름만 조금 바꾼 형태로 익힌다면 32bit도 그리 어렵지는 않을것이다.(ex. 16bit 레지스터 ax -> 32bit는 eax) 이어서 진행~ 문자열 출력예제)mov ah, 9int 21h ;ax의 상위 레지스터 ax에 9를 저장하고 int 21h명령어를 실행시키면 dx에 주소에 저장된 값의 문자가 ;'$' 가 나올 때 까지 출력됩니다. ES 세그먼트 오프셋을 이용한 MOV예제)mov es, axmov ax, [000.. 더보기
x86 16bit 어셈블리(Assembly) 예제 정리 - 1 /* written by kaspy (kaspyx@gmail.com)*/ 문득 어셈블리 언어를 보다보면 자주쓰지 않는 만큼 해깔릴수 있는것들이 많은것 같아서 정리해보았다. 특히 주소 연산 mov [100], 10 같은것들많이 사용되지 않는 16bit 어셈블리어지만 레지스터 크기나 명령어 이름만 조금 바꾼 형태로 익힌다면 32bit도 그리 어렵지는 않을것이다.(ex. 16bit 레지스터 ax -> 32bit는 eax) 우선은 간단한 명령어부터~ MOV 레지스터, 숫자예제); ax 레지스터에 지정된 숫자를 넣어줍니다.mov ax, 3 MOV 레지스터, [주소]예제)mov ax, [0103];mov ax, x(변수) ;ax 레지스터에 지정된 숫자를 넣어줍니다. ;여기서는 0103 번지의 값을 ax에 넣으라는 .. 더보기