Предварительный ответ, пока я жду вашей информации:
char* foo = (char*)...pointer from assembly...;
*foo = 'a'; /* write a to the address pointed at by foo */
foo++; /* increment the address of foo by 1 */
*foo = 'b'; /* write b to that address. foo now contains ab, if it points at RAM. */
Этот ответ ориентирован на встроенные системы. Если вам нужен указатель на что-то вроде периферийного регистра, используйте volatile, чтобы избежать оптимизации компилятора.
volatile char* foo = (char*)...pointer from assembly...;
*foo = 'a'; /* write a to the address pointed at by foo */
foo++; /* increment the address of foo by 1 */
*foo = 'b'; /* write b to that address. foo now contains ab, if it points at RAM. */