Difference between revisions of "CSC231 Addressing Mode Exercises"
(→Exercise 3) |
(→Exercise 4) |
||
Line 61: | Line 61: | ||
Write a program that fills an array of 10 double-words with the first 10 powers of 2. | Write a program that fills an array of 10 double-words with the first 10 powers of 2. | ||
− | < | + | <!-- |
<code><pre> | <code><pre> | ||
Powers dd 0,0,0,0,0,0,0,0,0,0 | Powers dd 0,0,0,0,0,0,0,0,0,0 | ||
Line 76: | Line 76: | ||
loop for ; go 9 times | loop for ; go 9 times | ||
</pre></code> | </pre></code> | ||
− | + | --> | |
==Exercise 5== | ==Exercise 5== |
Revision as of 07:20, 30 September 2014
Contents
Exercises on Addressing Modes
Exercise 1
Write a program that changes all the characters of an all-uppercase string to all-lowercase. We assume the string does not contain blank spaces. You can find an ASCII table here.
Exercise 2
Write a program that fills an array of 8 bytes with the first 8 powers of 2: 1, 2, 4, 8, 16, etc.
Exercise 3
Write a program that fills an array of 16 words with the first 16 fibonacci terms
Exercise 4
Write a program that fills an array of 10 double-words with the first 10 powers of 2.
Exercise 5
Assume Powers is an array of 11 words, and the first word contains a constant. Write the program that stores 1/2 the value of the constant in the 2nd word, 1/4 the value in the 3rd word, 1/8 4th word, 1/16 5th word, etc.
Exercise 6
The example below copies a string into another string, reversing the order of the string to see if they are palindromes. Rewrite it using a based indexed addressing mode.
msg1 db "Esope reste ici et se repose"
msg2 db " "
MSGLEN equ $-msg2
mov esi, msg1
mov edi, msg2
mov ecx, MSGLEN
for mov al, byte[esi]
mov byte[edi], al
inc esi
inc edi
loop for