How to change the function of the adding, by one of multiplication or / and division? in FASM
I have made an adding function with two digit numbers, but also I want to multiply and divide two digit numbers.
Here is an abstract of the code that I got.
mov dx, result
mov ah,9 ;Prints a message for the result
int 21h
add bl,cl ;Gets the result of the addition of the first digit
sub bl,30h
add bh,ch ;Gets the result of the addition of the second digit
sub bh,30h
assembly fasm flatassembler
add a comment |
I have made an adding function with two digit numbers, but also I want to multiply and divide two digit numbers.
Here is an abstract of the code that I got.
mov dx, result
mov ah,9 ;Prints a message for the result
int 21h
add bl,cl ;Gets the result of the addition of the first digit
sub bl,30h
add bh,ch ;Gets the result of the addition of the second digit
sub bh,30h
assembly fasm flatassembler
So what's your question? The x86 instruction set has the instructions you need, right?
– David Wohlferd
Nov 14 '18 at 6:32
I am too new for this, I don't know how to do it
– Vinicio López
Nov 14 '18 at 6:48
The question is, how can I make a multiplication of two numbers with two digits?
– Vinicio López
Nov 14 '18 at 6:58
This code doesn't work for25 + 25
, you'd get4:
instead of50
because you don't detect carry-out from the low digit. Normally you'd convert to a binary integer instead of dealing with ASCII decimal digits, and then multiply withimul bx, cx
is trivial.
– Peter Cordes
Nov 14 '18 at 12:14
I don't get the result correctly using "imul bx, cx". I get this, for example: "04 x 02 = *("
– Vinicio López
Nov 14 '18 at 18:35
add a comment |
I have made an adding function with two digit numbers, but also I want to multiply and divide two digit numbers.
Here is an abstract of the code that I got.
mov dx, result
mov ah,9 ;Prints a message for the result
int 21h
add bl,cl ;Gets the result of the addition of the first digit
sub bl,30h
add bh,ch ;Gets the result of the addition of the second digit
sub bh,30h
assembly fasm flatassembler
I have made an adding function with two digit numbers, but also I want to multiply and divide two digit numbers.
Here is an abstract of the code that I got.
mov dx, result
mov ah,9 ;Prints a message for the result
int 21h
add bl,cl ;Gets the result of the addition of the first digit
sub bl,30h
add bh,ch ;Gets the result of the addition of the second digit
sub bh,30h
assembly fasm flatassembler
assembly fasm flatassembler
asked Nov 14 '18 at 5:49
Vinicio LópezVinicio López
113
113
So what's your question? The x86 instruction set has the instructions you need, right?
– David Wohlferd
Nov 14 '18 at 6:32
I am too new for this, I don't know how to do it
– Vinicio López
Nov 14 '18 at 6:48
The question is, how can I make a multiplication of two numbers with two digits?
– Vinicio López
Nov 14 '18 at 6:58
This code doesn't work for25 + 25
, you'd get4:
instead of50
because you don't detect carry-out from the low digit. Normally you'd convert to a binary integer instead of dealing with ASCII decimal digits, and then multiply withimul bx, cx
is trivial.
– Peter Cordes
Nov 14 '18 at 12:14
I don't get the result correctly using "imul bx, cx". I get this, for example: "04 x 02 = *("
– Vinicio López
Nov 14 '18 at 18:35
add a comment |
So what's your question? The x86 instruction set has the instructions you need, right?
– David Wohlferd
Nov 14 '18 at 6:32
I am too new for this, I don't know how to do it
– Vinicio López
Nov 14 '18 at 6:48
The question is, how can I make a multiplication of two numbers with two digits?
– Vinicio López
Nov 14 '18 at 6:58
This code doesn't work for25 + 25
, you'd get4:
instead of50
because you don't detect carry-out from the low digit. Normally you'd convert to a binary integer instead of dealing with ASCII decimal digits, and then multiply withimul bx, cx
is trivial.
– Peter Cordes
Nov 14 '18 at 12:14
I don't get the result correctly using "imul bx, cx". I get this, for example: "04 x 02 = *("
– Vinicio López
Nov 14 '18 at 18:35
So what's your question? The x86 instruction set has the instructions you need, right?
– David Wohlferd
Nov 14 '18 at 6:32
So what's your question? The x86 instruction set has the instructions you need, right?
– David Wohlferd
Nov 14 '18 at 6:32
I am too new for this, I don't know how to do it
– Vinicio López
Nov 14 '18 at 6:48
I am too new for this, I don't know how to do it
– Vinicio López
Nov 14 '18 at 6:48
The question is, how can I make a multiplication of two numbers with two digits?
– Vinicio López
Nov 14 '18 at 6:58
The question is, how can I make a multiplication of two numbers with two digits?
– Vinicio López
Nov 14 '18 at 6:58
This code doesn't work for
25 + 25
, you'd get 4:
instead of 50
because you don't detect carry-out from the low digit. Normally you'd convert to a binary integer instead of dealing with ASCII decimal digits, and then multiply with imul bx, cx
is trivial.– Peter Cordes
Nov 14 '18 at 12:14
This code doesn't work for
25 + 25
, you'd get 4:
instead of 50
because you don't detect carry-out from the low digit. Normally you'd convert to a binary integer instead of dealing with ASCII decimal digits, and then multiply with imul bx, cx
is trivial.– Peter Cordes
Nov 14 '18 at 12:14
I don't get the result correctly using "imul bx, cx". I get this, for example: "04 x 02 = *("
– Vinicio López
Nov 14 '18 at 18:35
I don't get the result correctly using "imul bx, cx". I get this, for example: "04 x 02 = *("
– Vinicio López
Nov 14 '18 at 18:35
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%2f53293901%2fhow-to-change-the-function-of-the-adding-by-one-of-multiplication-or-and-divi%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%2f53293901%2fhow-to-change-the-function-of-the-adding-by-one-of-multiplication-or-and-divi%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
So what's your question? The x86 instruction set has the instructions you need, right?
– David Wohlferd
Nov 14 '18 at 6:32
I am too new for this, I don't know how to do it
– Vinicio López
Nov 14 '18 at 6:48
The question is, how can I make a multiplication of two numbers with two digits?
– Vinicio López
Nov 14 '18 at 6:58
This code doesn't work for
25 + 25
, you'd get4:
instead of50
because you don't detect carry-out from the low digit. Normally you'd convert to a binary integer instead of dealing with ASCII decimal digits, and then multiply withimul bx, cx
is trivial.– Peter Cordes
Nov 14 '18 at 12:14
I don't get the result correctly using "imul bx, cx". I get this, for example: "04 x 02 = *("
– Vinicio López
Nov 14 '18 at 18:35