Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to count number of words in a sentence in Assembly.
    text
    copied!<p>Sorry, this is the first time posting on stackoverflow so excuse me for any improper edicts. I've posted my LC-3 assembly code that asks user for a sentence and a word. Then the program checks how many times that <code>word</code> comes up in the sentence; then outputs the counter. I'm pretty sure my issue is that the two strings include ether <code>space</code> or <code>enter</code> so its not a match.</p> <p>Also, I have not implemented the overall counter yet, and thanks in advance for the help.</p> <pre><code>.ORIG X3000 LEA R2, SENTENCE LD R4, COUNTER LD R6, END_COUNTER LEA R3, USER_WORD LEA R0, PROMPT PUTS AND R0, R0, #0 ;---------GET SENTENCE FROM USER------------------------- GET_ANOTHER_CHAR: GETC OUT STR R0, R2, #0 ADD R2, R2, #1 ADD R0, R0, #-10 BRz GET_WORD_FROM_USER BRnp GET_ANOTHER_CHAR ;---------GET WORD FROM USER----------------------------- GET_WORD_FROM_USER: LEA R0, PROMPT_TWO PUTS ANOTHER_LETTER_WORD: AND R0, R0, #0 GETC OUT STR R0, R3, #0 ADD R3, R3, #1 ADD R0, R0, #-10 BRz COMPARE_BOTH ADD R4, R4, #1 BRnp ANOTHER_LETTER_WORD ;-------COMPARE EACH WORD IN THE SENTENCE---------------- COMPARE_BOTH: AND R0, R0, #0 AND R5, R5, #0 LDR R0, R2, #0 BRz END_OF_SENTENCE LDR R5, R3, #0 NOT R5, R5 ADD R5, R5, #1 ADD R5, R0, R5 BRz LETTERS_MATCHED ADD R2, R2, #1 BRnp COMPARE_BOTH BRz END_OF_SENTENCE ;-----COMPARE EACH LETTER------------------------------- LETTERS_MATCHED: ADD R4, R4, #-1 BRz WORD_MATCHES AND R0, R0, #0 AND R5, R5, #0 ADD R2, R2, #1 ADD R3, R3, #1 LDR R0, R2, #0 LDR R5, R3, #0 NOT R5, R5 ADD R5, R5, #1 ADD R5, R0, R5 BRz LETTERS_MATCHED BRnp COMPARE_BOTH ;------WORD MATCHES------------------------------------ WORD_MATCHES: AND R0, R0, #0 ADD R6, R6, #1 ADD R2, R2, #1 LDR R0, R2, #0 BRz PROGRAM_FINISH BRnp COMPARE_BOTH PROGRAM_FINISH: AND R0, R0, #0 LEA R0, PROMPT_THREE PUTS HALT END_OF_SENTENCE: AND R0, R0, #0 LEA R0, PROMPT_FOUR PUTS HALT PROMPT .stringz "Enter some text(max 300 characters) \n" PROMPT_TWO .stringz "What word are you looking for? \n" PROMPT_THREE .stringz "match!" PROMPT_FOUR .stringz "no match!" SPACE .fill #-32 COUNTER .fill #0 END_COUNTER .fill #0 USER_WORD .blkw 10 SENTENCE .blkw 300 .END </code></pre> <hr>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload