Tenes que especificar el fabricante si es un microcontrolador. Por que ARM es el propietario del nucleo, todo lo demas que lo rodea es propiedad de otro fabricante.
Por ejemplo para que tengas una idea. Estos son los registros que componen los I/O de Tiva de TI:
0x000 GPIODATA RW 0x0000.0000 GPIO Data 759
0x400 GPIODIR RW 0x0000.0000 GPIO Direction 760
0x404 GPIOIS RW 0x0000.0000 GPIO Interrupt Sense 761
0x408 GPIOIBE RW 0x0000.0000 GPIO Interrupt Both Edges 762
0x40C GPIOIEV RW 0x0000.0000 GPIO Interrupt Event 763
0x410 GPIOIM RW 0x0000.0000 GPIO Interrupt Mask 764
0x414 GPIORIS RO 0x0000.0000 GPIO Raw Interrupt Status 765
0x418 GPIOMIS RO 0x0000.0000 GPIO Masked Interrupt Status 767
0x41C GPIOICR W1C 0x0000.0000 GPIO Interrupt Clear 769
0x420 GPIOAFSEL RW - GPIO Alternate Function Select 770
0x500 GPIODR2R RW 0x0000.00FF GPIO 2-mA Drive Select 772
0x504 GPIODR4R RW 0x0000.0000 GPIO 4-mA Drive Select 773
0x508 GPIODR8R RW 0x0000.0000 GPIO 8-mA Drive Select 774
0x50C GPIOODR RW 0x0000.0000 GPIO Open Drain Select 775
0x510 GPIOPUR RW - GPIO Pull-Up Select 776
0x514 GPIOPDR RW 0x0000.0000 GPIO Pull-Down Select 778
0x518 GPIOSLR RW 0x0000.0000 GPIO Slew Rate Control Select 780
0x51C GPIODEN RW - GPIO Digital Enable 781
0x520 GPIOLOCK RW 0x0000.0001 GPIO Lock 783
0x524 GPIOCR - - GPIO Commit 784
0x528 GPIOAMSEL RW 0x0000.0000 GPIO Analog Mode Select 786
0x52C GPIOPCTL RW - GPIO Port Control 787
0x530 GPIOADCCTL RW 0x0000.0000 GPIO ADC Control 789
0x534 GPIODMACTL RW 0x0000.0000 GPIO DMA Control 790
0x538 GPIOSI RW 0x0000.0000 GPIO Select Interrupt 791
0x53C GPIODR12R RW 0x0000.0000 GPIO 12-mA Drive Select 792
0x540 GPIOWAKEPEN RW 0x0000.0000 GPIO Wake Pin Enable 793
0x544 GPIOWAKELVL RW 0x0000.0000 GPIO Wake Level 795
0x548 GPIOWAKESTAT RO 0x0000.0000 GPIO Wake Status 797
0xFC0 GPIOPP RO 0x0000.0001 GPIO Peripheral Property 799
0xFC4 GPIOPC RW 0x0000.0000 GPIO Peripheral Configuration 800
0xFD0 GPIOPeriphID4 RO 0x0000.0000 GPIO Peripheral Identification 4 803
0xFD4 GPIOPeriphID5 RO 0x0000.0000 GPIO Peripheral Identification 5 804
0xFD8 GPIOPeriphID6 RO 0x0000.0000 GPIO Peripheral Identification 6 805
0xFDC GPIOPeriphID7 RO 0x0000.0000 GPIO Peripheral Identification 7 806
0xFE0 GPIOPeriphID0 RO 0x0000.0061 GPIO Peripheral Identification 0 807
0xFE4 GPIOPeriphID1 RO 0x0000.0000 GPIO Peripheral Identification 1 808
0xFE8 GPIOPeriphID2 RO 0x0000.0018 GPIO Peripheral Identification 2 809
0xFEC GPIOPeriphID3 RO 0x0000.0001 GPIO Peripheral Identification 3 810
0xFF0 GPIOPCellID0 RO 0x0000.000D GPIO PrimeCell Identification 0 811
0xFF4 GPIOPCellID1 RO 0x0000.00F0 GPIO PrimeCell Identification 1 812
0xFF8 GPIOPCellID2 RO 0x0000.0005 GPIO PrimeCell Identification 2 813
0xFFC GPIOPCellID3 RO 0x0000.00B1 GPIO PrimeCell Identification 3 814
Estos de un STM32F030
GPIOx_MODER
GPIOx_OTYPER
GPIOx_OSPEEDR
GPIOA_PUPDR
GPIOA_IDR
GPIOA_ODR
GPIOA_BSRR
GPIOA_LCKR
GPIOA_AFRL
GPIOA_AFRH
GPIOA_BRR
Y asi podemos seguir buscando mas.
EDITO: Parece ser que estas usando un Kinetis de Freescale.
Buscando un algun Cortex-M4 como la flia K60, en su reference manual, tenes que:
GPIOx_PDOR = Port Data Output Register
GPIOx_PSOR = Port Set Output Register
GPIOx_PCOR = Port Clear Output Register
GPIOx_PTOR = Port Toggle Output Register
¿ Cuales son las diferencias entre uno y otro ? En si el estado de las salidas siempre esta en PDOR, la logica seria cambiar estos mismos, pero como sabes al usar ASM, para cambiarlo tenes que llevarlo a uno de los registros internos, cambiarlo y luego escribirlo, esto no solo involucra tiempo ya que tenes que cargar- modificar - guardar, sino que ademas si hay alguna interrupcion que tambien cambie el estado del puerto, puede ocurrir que termines eliminando lo ocurrido de la interrupcion, me explico con un ejemplo de 8 bits:
Tomo del puerto el valor 0x10
Lo cambio a 0x30
----- Ocurre interrupcion, en la interrupcion tomo el puerto 0x10, cambio a 0x11, guardo y salgo. Aca el puerto esta en 0x11
Continuando, Procedo a guardar el nuevo valor, el puerto me queda en 0x30 y no en 0x31.
Como solucionas eso? podes usar los otros 3 registros. Tenes un registro para Set, uno para Clear, uno para Toggle.
En cualquiera el bit escrito con 0 no produce cambios en PDOR, volviendo a otro ejemplo.... esto ocurriria:
PDOR = 0b1010 1010
Envio a PSOR = 0b0000 0001, PDOR queda 0b1010 1011
Envio a PCOR = 0b1000 0000, PDOR queda 0b0010 1011
Envio a PTOR = 0b0000 1111, PDOR queda 0b0010 0100
Ahora si quisiera hacer el mismo ejemplo que antes con la interrupcion, ya no tendria problemas a no ser que ambos cambien el mismo pin.
¿Es insensato usar PDOR? No, si no tuviera el caso de la interrupcion, tranquilamente lo podria usar. Todo depende de lo que se intente hacer.
De todas formas todos los fabricantes ya de ARM proveen algo de este estilo, en los STM se llaman BRR y BSRR, TI no posee un registro directo, sino que lo hace a traves la direccion de acceso y con este produce una especie de "mascara", lo cual podes setear y limpiar cualquier bit.
En fin todo esto es para tratar de eleminar la operacion read-modify-write que se usa comunmente.