Because amigo is the masculine singular form.
So:
Notice that mi stays the same for both masculine and feminine singular nouns.
Because dice is the third-person singular present tense form of decir (to say, to tell).
The subject is mi amigo, which is he / my friend, so you use dice.
A few present-tense forms of decir are:
So:
Because decir adiós is a very common Spanish expression meaning to say goodbye.
So adiós works like the thing being said:
This is natural Spanish.
You may also hear similar expressions like:
Here, adiós is an expression meaning goodbye.
In dice adiós, it functions as the word being said:
It is not being used as a verb. The verb is dice.
The accent mark shows that the stress falls on the last syllable:
Without the accent, Spanish stress rules would suggest a different pronunciation.
So the written accent helps show the correct stress.
A simple approximate pronunciation is:
So the full sentence sounds roughly like:
A few notes:
Yes. Spanish often leaves out the subject when it is understood from the verb form or the context.
So instead of:
you might also hear just:
That could mean He says goodbye, She says goodbye, or My friend says goodbye, depending on context.
In your sentence, mi amigo is included to make it clear who is doing the action.
Yes. Spanish word order is more flexible than English.
The most neutral order is:
But other orders are possible for style or emphasis, such as:
That is less neutral and may sound more literary or emphatic, but it is grammatically possible.
For learners, the standard pattern subject + verb + object/expression is the safest one to use.
Usually it means he says goodbye.
If you want to emphasize the exact spoken word, you could write something like:
That makes it feel more like a direct quotation of the word itself.
Without quotation marks, the sentence is normally understood as the action saying goodbye.
Yes. Dice is present tense, so the sentence means:
Spanish present tense often covers both a simple present idea and something happening now, depending on context.