1 CPU rozkazy asemblera
2 Źródło: Materiały informacyjne firmy AtmelC51 (AT83C51SND1C) - wycinek listy Źródło: Materiały informacyjne firmy Atmel
3 Źródło: Materiały informacyjne firmy AtmelC51 (AT83C51SND1C) - wycinek opisu jednej instrukcji Źródło: Materiały informacyjne firmy Atmel
4 Źródło: Materiały informacyjne firmy AtmelAVR (ATmega128) - wycinek listy Źródło: Materiały informacyjne firmy Atmel
5 Źródło: Materiały informacyjne firmy AtmelAVR (ATmega128) - wycinek opisu jednej instrukcji Źródło: Materiały informacyjne firmy Atmel
6 PIC (PIC16F84A) - wycinek listyŹródło: Materiały informacyjne firmy Microchip
7 PIC (PIC16F84A) - wycinek opisu instrukcjiŹródło: Materiały informacyjne firmy Microchip
8 Źródło: Materiały informacyjne firmy Texas InstrumentsMSP430 (MSP430F1xx) - lista rozkazów Źródło: Materiały informacyjne firmy Texas Instruments
9 Źródło: Materiały informacyjne firmy Texas InstrumentsMSP430 (MSP430F1xx) - wycinek opisu jednej instrukcji Źródło: Materiały informacyjne firmy Texas Instruments
10 Źródło: Materiały informacyjne firmy ARMCPU z rdzeniem ARM - wycinek listy Źródło: Materiały informacyjne firmy ARM
11 Źródło: Materiały informacyjne firmy ARMCPU z rdzeniem ARM - wycinek opisu jednej instrukcji Źródło: Materiały informacyjne firmy ARM
12 Łączenie asemblera z C Po pre-procesingu, kompilacji i linkowaniu:#define BIT(n) PORTD=clrClkAndData;\ asm __volatile__ ( \ "sbrc %2," #n \ "sbi 18,3" \ "sbi 18,5" \ "sbic 16,2" \ "ori %0,1<<" #n \ : "=d" (spiIn) : "0" (spiIn), \ "r" (spiOut)) uint8_t spi(uint8_t spiOut) { uint8_t spiIn = 0; uint8_t clrClkAndData; BIT(7); BIT(6); ... BIT(0); return spiIn; } Po pre-procesingu, kompilacji i linkowaniu: //BIT(7) ldi r30, 0x32 ldi r31, 0x00 ldd r24, Y+1 st Z, r24 ldd r24, Y+2 ldd r25, Y+3 sbrc r25, 7 sbi 0x12, 3 ;0x12=18 sbi 0x12, 5 ;0x12=18 sbic 0x10, 2 ;0x10=16 ori r24, 0x80 ;0x80=1<<7 std Y+2, r24 //BIT(6) sbrc r25, 6 sbi 0x12, 3 sbi 0x12, 5 sbic 0x10, 2 ori r24, 0x40 ;0x40=1<<6