How do I write a subroutine that tests if the registers are odd or even and store the result?
We have to write a subroutine testeven that tests if the integer in register r0 is even and if so sets r1 to 1 or to 0 otherwise. Write a second subroutine testdata that uses the start address, given in register r2, of a memory area
at which there is a series of integers. The subroutine assumes that r3 holds the number of integers in the memory area. The subroutine stores in r4 the number of even integers it finds in the memory area. The testdata subroutine must use the testeven subroutine to identify individual even numbers.Write controlling code to copy the address data_to_test to r2 and to determine the number of dataitems to be tested and store this value in r3. The controlling code must use testdata to determine the number of even values in the data area and then to store the number of even numbers that is found in
the memory location data_even_count.
Here is my code so far not got very far though
THUMB
AREA RESET, CODE, READONLY
EXPORT __Vectors
EXPORT Reset_Handler
__Vectors
DCD 0x20001000 ; top of the stack
DCD Reset_Handler ; reset vector - where the program starts
AREA Task3Code, CODE, READONLY
ENTRY
Reset_Handler
num EQU 16
MOV r1,#0 ;loop counter
MOV r2,#0 ;compare store 1
MOV r3,#0 ;compare store 2
MOV r4,#0 ;compare store 3
MOV r5,#0 ;sum of values
MOV r6,#0 ;which was greater in value
LDR r8,=data_values ;the list of values
AREA Task4DataRO, DATA, READONLY ; data that doesn’t need to be changed
data_to_test
DCD 23, 34, 57, 89, 92 ; example values
AREA Task4DataRW, DATA, READWRITE ; result of operation stored here
data_even_count
DCD 0 ; number of even values found
END
Thank you for your time and any help would be much appreciated.
assembly arm thumb
add a comment |
We have to write a subroutine testeven that tests if the integer in register r0 is even and if so sets r1 to 1 or to 0 otherwise. Write a second subroutine testdata that uses the start address, given in register r2, of a memory area
at which there is a series of integers. The subroutine assumes that r3 holds the number of integers in the memory area. The subroutine stores in r4 the number of even integers it finds in the memory area. The testdata subroutine must use the testeven subroutine to identify individual even numbers.Write controlling code to copy the address data_to_test to r2 and to determine the number of dataitems to be tested and store this value in r3. The controlling code must use testdata to determine the number of even values in the data area and then to store the number of even numbers that is found in
the memory location data_even_count.
Here is my code so far not got very far though
THUMB
AREA RESET, CODE, READONLY
EXPORT __Vectors
EXPORT Reset_Handler
__Vectors
DCD 0x20001000 ; top of the stack
DCD Reset_Handler ; reset vector - where the program starts
AREA Task3Code, CODE, READONLY
ENTRY
Reset_Handler
num EQU 16
MOV r1,#0 ;loop counter
MOV r2,#0 ;compare store 1
MOV r3,#0 ;compare store 2
MOV r4,#0 ;compare store 3
MOV r5,#0 ;sum of values
MOV r6,#0 ;which was greater in value
LDR r8,=data_values ;the list of values
AREA Task4DataRO, DATA, READONLY ; data that doesn’t need to be changed
data_to_test
DCD 23, 34, 57, 89, 92 ; example values
AREA Task4DataRW, DATA, READWRITE ; result of operation stored here
data_even_count
DCD 0 ; number of even values found
END
Thank you for your time and any help would be much appreciated.
assembly arm thumb
2
You need to at least try to write the functions testeven and testdata in order to get help here.
– prl
Jan 18 at 22:34
Did you google forinteger odd even arm assembly
? That should show you how to use AND to check the low bit. Since you need1
for even, just flip that withxor
.
– Peter Cordes
Jan 19 at 3:54
add a comment |
We have to write a subroutine testeven that tests if the integer in register r0 is even and if so sets r1 to 1 or to 0 otherwise. Write a second subroutine testdata that uses the start address, given in register r2, of a memory area
at which there is a series of integers. The subroutine assumes that r3 holds the number of integers in the memory area. The subroutine stores in r4 the number of even integers it finds in the memory area. The testdata subroutine must use the testeven subroutine to identify individual even numbers.Write controlling code to copy the address data_to_test to r2 and to determine the number of dataitems to be tested and store this value in r3. The controlling code must use testdata to determine the number of even values in the data area and then to store the number of even numbers that is found in
the memory location data_even_count.
Here is my code so far not got very far though
THUMB
AREA RESET, CODE, READONLY
EXPORT __Vectors
EXPORT Reset_Handler
__Vectors
DCD 0x20001000 ; top of the stack
DCD Reset_Handler ; reset vector - where the program starts
AREA Task3Code, CODE, READONLY
ENTRY
Reset_Handler
num EQU 16
MOV r1,#0 ;loop counter
MOV r2,#0 ;compare store 1
MOV r3,#0 ;compare store 2
MOV r4,#0 ;compare store 3
MOV r5,#0 ;sum of values
MOV r6,#0 ;which was greater in value
LDR r8,=data_values ;the list of values
AREA Task4DataRO, DATA, READONLY ; data that doesn’t need to be changed
data_to_test
DCD 23, 34, 57, 89, 92 ; example values
AREA Task4DataRW, DATA, READWRITE ; result of operation stored here
data_even_count
DCD 0 ; number of even values found
END
Thank you for your time and any help would be much appreciated.
assembly arm thumb
We have to write a subroutine testeven that tests if the integer in register r0 is even and if so sets r1 to 1 or to 0 otherwise. Write a second subroutine testdata that uses the start address, given in register r2, of a memory area
at which there is a series of integers. The subroutine assumes that r3 holds the number of integers in the memory area. The subroutine stores in r4 the number of even integers it finds in the memory area. The testdata subroutine must use the testeven subroutine to identify individual even numbers.Write controlling code to copy the address data_to_test to r2 and to determine the number of dataitems to be tested and store this value in r3. The controlling code must use testdata to determine the number of even values in the data area and then to store the number of even numbers that is found in
the memory location data_even_count.
Here is my code so far not got very far though
THUMB
AREA RESET, CODE, READONLY
EXPORT __Vectors
EXPORT Reset_Handler
__Vectors
DCD 0x20001000 ; top of the stack
DCD Reset_Handler ; reset vector - where the program starts
AREA Task3Code, CODE, READONLY
ENTRY
Reset_Handler
num EQU 16
MOV r1,#0 ;loop counter
MOV r2,#0 ;compare store 1
MOV r3,#0 ;compare store 2
MOV r4,#0 ;compare store 3
MOV r5,#0 ;sum of values
MOV r6,#0 ;which was greater in value
LDR r8,=data_values ;the list of values
AREA Task4DataRO, DATA, READONLY ; data that doesn’t need to be changed
data_to_test
DCD 23, 34, 57, 89, 92 ; example values
AREA Task4DataRW, DATA, READWRITE ; result of operation stored here
data_even_count
DCD 0 ; number of even values found
END
Thank you for your time and any help would be much appreciated.
assembly arm thumb
assembly arm thumb
asked Jan 18 at 16:22
Hysteria103Hysteria103
62
62
2
You need to at least try to write the functions testeven and testdata in order to get help here.
– prl
Jan 18 at 22:34
Did you google forinteger odd even arm assembly
? That should show you how to use AND to check the low bit. Since you need1
for even, just flip that withxor
.
– Peter Cordes
Jan 19 at 3:54
add a comment |
2
You need to at least try to write the functions testeven and testdata in order to get help here.
– prl
Jan 18 at 22:34
Did you google forinteger odd even arm assembly
? That should show you how to use AND to check the low bit. Since you need1
for even, just flip that withxor
.
– Peter Cordes
Jan 19 at 3:54
2
2
You need to at least try to write the functions testeven and testdata in order to get help here.
– prl
Jan 18 at 22:34
You need to at least try to write the functions testeven and testdata in order to get help here.
– prl
Jan 18 at 22:34
Did you google for
integer odd even arm assembly
? That should show you how to use AND to check the low bit. Since you need 1
for even, just flip that with xor
.– Peter Cordes
Jan 19 at 3:54
Did you google for
integer odd even arm assembly
? That should show you how to use AND to check the low bit. Since you need 1
for even, just flip that with xor
.– Peter Cordes
Jan 19 at 3:54
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54257834%2fhow-do-i-write-a-subroutine-that-tests-if-the-registers-are-odd-or-even-and-stor%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54257834%2fhow-do-i-write-a-subroutine-that-tests-if-the-registers-are-odd-or-even-and-stor%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
You need to at least try to write the functions testeven and testdata in order to get help here.
– prl
Jan 18 at 22:34
Did you google for
integer odd even arm assembly
? That should show you how to use AND to check the low bit. Since you need1
for even, just flip that withxor
.– Peter Cordes
Jan 19 at 3:54