Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // lab1.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- using namespace std;
- int main()
- {
- //unsigned char x=1;
- unsigned char licz = 0;
- unsigned char y = 15;
- __asm {
- //zad1
- //11100
- //XOR AL, AL
- //XOR AH, AH
- //MOV AH, x
- //SHL AH, 2
- //ADD AL, AH
- //SHL AH, 1
- //ADD AL, AH
- //SHL AH, 1
- //ADD AL, AH
- //MOV y, AL
- //zad2
- //XOR AL, AL
- //XOR AH, AH
- //MOV AH, x
- //SHL AH, 5
- //MOV AL, AH
- //SHR AH, 3
- //SUB AL, AH
- //MOV y, AL
- //zad3
- //XOR BX, BX
- //XOR AL, AL
- //XOR AX, AX
- //MOV AL, x
- //SHL AX, 5
- //MOV BX, AX
- //SHR AX, 3
- //SUB BX, AX
- //MOV y, BX
- //while(y!=5)y+=1
- /*XOR EAX, EAX
- MOV EAX, y
- petla:
- CMP EAX, 5
- JZ koniec
- ADD EAX, 1
- JNZ petla
- koniec:
- MOV y, EAX*/
- /*XOR EAX, EAX
- XOR EDX, EDX
- MOV EAX, y
- petla :
- SUB EDX, 5
- JZ koniec
- ADD EAX, 1
- MOV EDX, EAX
- JNZ petla
- koniec :
- MOV y, EAX*/
- /*XOR EAX, EAX
- MOV EAX, y
- petla:
- ADD EAX, 1
- CMP EAX, 5
- JZ koniec
- JMP petla
- koniec:
- MOV y, EAX*/
- /*//Zad 5
- //b7b6b5b4b3b2b1b0
- //b6b7b4b5b2b3b0b1
- XOR AH, AH
- XOR AL, AL
- MOV AH, y
- MOV AL, y
- //76543210
- //10101010
- //01010101
- AND AL, 0xAA
- AND AH, 0x55
- SHR AL, 1
- SHL AH, 1
- OR AL, AH
- MOV y, AL*/
- //Zad 6
- /*XOR AH, AH
- XOR AL, AL
- //if(AL&0x01) licz+=1
- MOV AL, 0
- MOV AH,y
- AND AH,0x01
- ADD AL, AH
- SHR y,1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV AH, y
- AND AH, 0x01
- ADD AL, AH
- SHR y, 1
- MOV BL,8
- SUB BL,AL
- MOV y,BL*/
- /*MOV AH,y
- AND AH, 0x01
- SUB AH, 0x01
- JNZ przeskocz_prawda
- ADD AL, 1
- przeskocz_prawda:
- MOV AH, y
- AND AH, 0x02
- SUB AH, 0x02
- JNZ przeskocz_prawda1
- ADD AL, 1
- przeskocz_prawda1:
- MOV AH, y
- AND AH, 0x04
- SUB AH, 0x04
- JNZ przeskocz_prawda2
- ADD AL, 1
- przeskocz_prawda2:
- MOV AH, y
- AND AH, 0x08
- SUB AH, 0x08
- JNZ przeskocz_prawda3
- ADD AL, 1
- przeskocz_prawda3:
- MOV y, AL*/
- //Zad 6
- /*XOR AL, AL
- XOR AH, AH
- XOR DL, DL
- MOV DL, 9//
- petla:
- MOV AL, y;
- SUB DL, 1//CMP DL, 8
- JZ koniec
- AND AL,0x01
- ADD AH, AL
- SHR y, 1
- //ADD DL, 1
- JMP petla
- koniec:
- MOV y, AH
- //00001111*/
- //Zad 7
- //Sprawdzenie czy liczba jedynek jest parzysta
- /*XOR AL, AL
- XOR AH, AH
- XOR DL, DL
- petla:
- MOV AL, y;
- CMP DL, 8
- JZ koniec
- AND AL, 0x01
- ADD AH, AL
- ADD DL, 1
- SHR y, 1
- JMP petla
- koniec :
- AND AH, 0x01
- MOV DL, AH
- MOV y, DL
- //00000001
- //00000110 = 1*/
- //Zad 8
- /*XOR AL, AL
- XOR BL, BL
- //00001111 = al=15
- //00000001 = 0x01 and
- //00000001
- MOV AL, y
- AND AL, 0x01
- SHL AL, 7
- OR BL, AL
- MOV AL, y
- AND AL, 0x02
- SHL AL, 5
- OR BL, AL
- MOV AL, y
- AND AL, 0x04
- SHL AL, 3
- OR BL, AL
- MOV AL, y
- AND AL, 0x08
- SHL AL, 1
- OR BL, AL
- MOV AL, y
- AND AL, 0x10
- SHR AL, 1
- OR BL, AL
- MOV AL, y
- AND AL, 0x20
- SHR AL, 3
- OR BL, AL
- MOV AL, y
- AND AL, 0x40
- SHR AL, 5
- OR BL, AL
- MOV AL, y
- AND AL, 0x80
- SHR AL, 7
- OR BL, AL
- MOV y, BL*/
- //Zad 9 Zamiana bitow miejscami w danej kolejnosci
- XOR AL, AL
- MOV AL, y
- XOR BL, BL
- MOV BL, 0x80
- AND AL,
- }
- printf("%d", y);
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement