Difference between revisions of "CSC231 Addressing Mode Exercises"
(→Exercise 2) |
(→Exercise 1) |
||
Line 4: | Line 4: | ||
==Exercise 1== | ==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 | + | 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 [http://www.asciitable.com/ here]. |
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