버스가 16비트인지 아니면 32비트 인지에 대한것은

메모리 컨트롤러와 관계가 있읍니다.

내부 arm core 의 실행에서 대부분 32비트 처리가 됩니다.

물론 특별히 16비트 처리용 명령을 두기도 하지만
원칙적으로 외부버스 폭의 제어는 메모리 컨트롤러에
일임했기 때문에 프로그램 상에서 16비트가 되었건
32비트가 되었건 상관이 없죠...

그래서 질문 주신 코드가 동작되는 것입니다.