어셈블리언어 13

어셈블리어 명령어 [CMP, JMP, CALL]

어셈블리어 명령어 [CMP, JMP, CALL] CMP (Compare) 두 피연산자를 비교하는 작업을 한다. Destination 피연산자에서 Source 연산자를 묵시적으로 빼서 값을 비교한다. 두 피연산자의 값이 같다면 결과는 0이 되고 ZF가 1로 세트된다. 다르면 ZF가 0으로 세트된다. ZF는 Zero Flag라고 하며 처음 상태일 때는 NZ(Not Zero)로 ZF가 0으로 세트된 상태이며 화면에 표시가 됩니다. 만약 계산 결과의 값이 0일 경우 ZF가 1로 세트되며, NZ가 ZR(Zero)로 변경됩니다. 사용 양식은 다음과 같습니다. CMP Dest, Src CMP reg, reg CMP reg, imm CMP mem, reg CMP mem, imm CMP reg, mem 실습 환경 VMw..

어셈블리어 명령어 [ADD, SUB]

어셈블리어 명령어 [ADD, SUB] 어셈블리어에서 사용하는 명령어 중 ADD, SUB에 대하여 알아보겠습니다. ADD (Add) Destination에 Source 값을 빼서 Destination에 저장하는 명령어이다. 연산 결과에 따라 ZF, OF, CF가 세트 될 수 있다. ZF와 OF, CF(Carry Flag)는 나중에 확인하겠습니다. 사용할 수 있는 양식 ADD Dest, Src ADD reg, imm ADD reg, reg ADD mem, reg ADD mem, imm ADD reg, mem 실습 환경 VMware Workstation 15 Player (FREE 버전) Windows XP Professional SP3 (32Bit) CMD창을 열어 debug 명령어를 입력합니다. -a 10..

어셈블리어 명렁어 [MOV, INC, DEC]

어셈블리어 명령어 [MOV, INC, DEC] 어셈블리어에서 사용하는 명령어 중 MOV, INC, DEC에 대하여 알아보겠습니다. MOV (Move) Source에서 Destination으로 데이터를 복사한다. MOV Dest, Src Src에 있는 값을 Dest로 복사한다고 보시면 됩니다. 복사라고도 할 수 있고 대입이나 입력이라고 보셔도 됩니다. 그리고 Dest에는 상수가 올 수 없습니다. C언어에서 int a = 1 코드는 뒤에 있는 숫자 1을 앞에 있는 변수 a에 저장하듯이 MOV 명령어도 뒤에 있는 값을 앞에 있는 변수(레지스터,메모리)에 저장한다고 이해하시면 됩니다. 사용 양식을 보면 다음과 같이 사용할 수 있습니다. reg : 레지스터, imm : 상수, mem : 메모리 MOV reg, i..

반응형