어셈블리 명령어 4

어셈블리어 XOR을 이용하여 값 바꾸기

어셈블리어 명령어 [XOR]XOR 명령어를 사용하면 temp 변수를 사용하지 않고 AX와 BX에 저장되어 있는 값을 바꿀 수 있습니다. 실습 환경 VMware Workstation 15 Player (FREE 버전) Windows XP Professional SP3 (32Bit) 먼저 다음과 같이 입력합니다. -a 100 MOV AX, 1234 MOV BX, 5678 XOR AX, BX XOR BX, AX XOR AX, BX 우선 MOV 명령어를 이용하여 AX=1234, BX=5678의 값을 입력합니다. 그리고 첫 번째 XOR AX, BX을 통하여 AX와 BX의 XOR한 결과 값을 AX에 저장합니다. AX=444C 값이 저장됩니다. 2 번째 XOR BX, AX을 진행하여 BX와 AX의 XOR 결과 값을 ..

어셈블리어 명령어 [AND, OR, XOR]

어셈블리어 명령어 [AND, OR, XOR] AND (Logical AND) Destination과 Source 피연산자의 각 비트가 AND 연산 됩니다. AND 연산은 각 비트가 모두 1일때만 결과 값이 1이 됩니다. 레지스터, 상수, 메모리를 사용할 수 있습니다. AND reg, reg AND reg, imm AND reg, mem AND mem, imm AND mem, reg X Y X (AND) Y 0 0 0 0 1 0 1 0 0 1 1 1 OR (Inclusive OR) Destination과 Source 피연산자의 각 비트가 OR 연산 됩니다. OR 연산은 각 비트가 하나라도 1이면 결과 값이 1이 됩니다. 결과에 따라 CF, OF, ZF 플래그가 세트 될 수 있습니다. 레지스터, 상수, 메모..

어셈블리어 명령어 [MUL, DIV]

어셈블리어 명령어 [MUL, DIV] MUL (Unsigned Integer Multiply) 부호 없는 AL, AX, EAX의 값을 피연산자와 곱합니다. 피연산자가 8Bit이면 AL과 곱해서 AX에 저장되고 16Bit이면 AX와 곱하고 DX:AX에 저장됩니다. 결과에 따라 OF, ZF 플래그가 세트 될 수 있습니다. Ex) MUL BL => BL * AL Ex) MUL BX => BX * AX Ex) MUL EBX => EBX * EAX AX 16Bit, BX 16Bit MUL을 하게 되면 최대 32Bit가 되며, 상위 16Bit는 DX에 값이 저장되고, 하위 16Bit는 AX에 값이 저장됩니다. 실습 환경 VMware Workstation 15 Player (FREE 버전) Windows XP Pro..

어셈블리어 명령어 [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..

반응형