Chapter 10 - eZ430X

# Chapter 10 - eZ430X - Chapter 10 eZ430X Coding Assembler...

This preview shows pages 1–9. Sign up to view the full content.

Chapter 10 – eZ430X +

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
BYU CS/ECEn 124 Chapter 10 - eZ430X 2 How To Code Assembler… Understand the problem (obviously) Until you are comfortable in assembly, (and even afterwards), write out your solution in something familiar English Flowchart Pseudo-code Java, C, Ruby – the pseudo-code doesn’t really matter! Then, translate to assembler Coding Assembler
BYU CS/ECEn 124 Chapter 10 - eZ430X 3 Three Basic Constructs Task Subtask 1 Subtask 2 Subtask 1 Subtask 2 Test condition Subtask Test condition Sequential Conditional Iterative True True False False Coding Assembler

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
BYU CS/ECEn 124 Chapter 10 - eZ430X 4 if-then-else Translation if-then-else if (buzzerON == 1) { pulse_buzzer(); turn_on_LED(); } else { turn_off_LED(); } cmp.w #1,&buzzerON ; jne myElse ; xor.b #0x20,&P4OUT ; bis.b #0x02,&P1OUT ; jmp myNext ; myElse: ; bic.b #0x02,&P1OUT ; ; myNext: ; Coding Assembler
BYU CS/ECEn 124 Chapter 10 - eZ430X 5 while Translation while loop… #define TRUE 1 int blink = TRUE; while (blink) { LED_ON(); delay(); LED_OFF(); delay(); } TRUE .set 1 .bss blink,2 ; mov.w #TRUE,&blink ; while_loop: ; cmp.w #0,&blink ; jeq while_done ; call #LED_ON ; call #delay ; call #LED_OFF ; call #delay ; jmp while_loop ; while_done: ; Coding Assembler

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
BYU CS/ECEn 124 Chapter 10 - eZ430X 6 for-loop Translation for-loop int i; for(i=0; i<10; i++) { do_dot(); delay(); do_dash(); delay(); } .bss i,2 ; mov.w #0,&i ; for_ck: cmp.w #10,&i ; jge for_done ; call #do_dot ; call #delay ; call #do_dash ; call #delay ; add.w #1,&i ; jmp for_ck ; for_done: ; Coding Assembler
BYU CS/ECEn 124 Chapter 10 - eZ430X 7 switch/case Translation switch/case switch (myByte) { case DOT: do_dot(); break; case DASH: do_dash(); break; default: } cmp.w #DOT,&myByte ; jne sw_01 ; call #do_dot ; jmp sw_end ; sw_01: cmp.w #DASH,&myByte ; jne default ; call #do_dash ; jmp sw_end ; ; default: ; sw_end: ; Coding Assembler

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
BYU CS/ECEn 124 Chapter 10 - eZ430X 8 Handheld Measurement Air Flow measurement Alcohol meter Barometer Data loggers Emission/Gas analyser Humidity measurement Temperature measurement Weight scales Medical Instruments Blood pressure meter Blood sugar meter Breath measurement EKG system Home environment Air conditioning Control unit Thermostat Boiler control Shutter control Irrigation system White goods (Washing machine,. .) Misc Smart card reader Taxi meter
This is the end of the preview. Sign up to access the rest of the document.

## This document was uploaded on 02/06/2012.

### Page1 / 27

Chapter 10 - eZ430X - Chapter 10 eZ430X Coding Assembler...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online