Assembly language and computer architecture using C++ and Java (2004)