Microprocessors and microcomputer-based system design