Untitled diff

Created Diff never expires
3 removals
3 lines
2 additions
2 lines
rjsHelpers.updateElement('#solution', '<form action=\"/common/exercises/3704/solutions/109469\" class=\"edit_solution\" data-init=\"fileupload-form\" data-toggle=\"validation\" enctype=\"multipart/form-data\" id=\"edit_solution_109469\" method=\"post\" onsubmit=\"jQuery.ajax({data:jQuery.param(jQuery(this).serializeArray()) + \'&amp;authenticity_token=\' + encodeURIComponent(\'3+RYLDLpI0qx1kB8a1t/jLpyu35y9iPt/eAutMjLsl4=\'), dataType:\'script\', type:\'post\', url:\'/common/exercises/3704/solutions/109469\'}); return false;\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"_method\" type=\"hidden\" value=\"put\" /><input name=\"authenticity_token\" type=\"hidden\" value=\"3+RYLDLpI0qx1kB8a1t/jLpyu35y9iPt/eAutMjLsl4=\" /><\/div>\n<h3 class=\'legend\'>Lösung bearbeiten<\/h3>\n<input id=\"solution_solution_parts_attributes_0_id\" name=\"solution[solution_parts_attributes][0][id]\" type=\"hidden\" value=\"136764\" /><div id=\'solution_109469_tab_1\'><div class=\'exercise_part_5422 solution-part\'>\n \n <input id=\"solution_solution_parts_attributes_0_exercise_part_id\" name=\"solution[solution_parts_attributes][0][exercise_part_id]\" type=\"hidden\" value=\"5422\" />\n <div class=\'row\'>\n <div class=\'col-sm-12\'>\n <div class=\'form-group\'>\n <label for=\"solution_solution_parts_attributes_0_exercise_type_text\">Text<\/label>\n <input checked=\"checked\" class=\"solution-field exercise-type\" id=\"solution_solution_parts_attributes_0_exercise_type_text\" name=\"solution[solution_parts_attributes][0][exercise_type]\" type=\"radio\" value=\"text\" />\n <label for=\"solution_solution_parts_attributes_0_exercise_type_wiki\">Markdown<\/label>\n <input class=\"solution-field exercise-type\" id=\"solution_solution_parts_attributes_0_exercise_type_wiki\" name=\"solution[solution_parts_attributes][0][exercise_type]\" type=\"radio\" value=\"wiki\" />\n <\/div>\n <\/div>\n <\/div>\n <div class=\'type-code type-wiki type-text type row\'>\n <div class=\'col-sm-12\'>\n <div class=\'type-wiki type\'>\n <div class=\'callout callout-info\'>\n <p>Sie können Ihren Text mit Markdown formatieren. Eine vollständige Dokumentation finden Sie unter: <a href=\"http://johnmacfarlane.net/pandoc/demo/example9/pandocs-markdown.html\" target=\"_blank\">Pandocs Markdown<\/a> <br />Bitte beachten Sie, dass LaTeX-Befehle nur begrenzt (und nur innerhalb einer Mathe-Umgebung) verwendet werden können.<\/p>\n <\/div>\n <\/div>\n <textarea class=\"solution-field codemirror-area\" cols=\"40\" id=\"solution_solution_parts_attributes_0_text\" name=\"solution[solution_parts_attributes][0][text]\" rows=\"20\">// Kommentierte Register mit Berechnungen, unten mit gegebenen Variaben.&#x000A;&#x000A;int dummy(int y, int* z)&#x000A; {&#x000A; asm (&#x000A;01 &quot;movl 0x8(%ebp), %ecx\\n“ &#x000A; //%eax=? ; %ecx=y ; %edx=?&#x000A;02 &quot;movl 0xc(%ebp), %eax\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=?&#x000A;03 &quot;movl (%eax), %edx\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=z&#x000A;04 &quot;xorl %eax, %eax\\n“ &#x000A; //%eax=0 ; %ecx=y ; %edx=z&#x000A;05 &quot;addl %edx, %eax\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=z&#x000A;06 &quot;imull %ecx, %eax\\n&quot; &#x000A; //%eax=y*z ; %ecx=y ; %edx=z&#x000A;07 &quot;andl %eax, %edx\\n&quot; &#x000A; //%eax=y*z ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;08 &quot;leal (, %eax, 4), %eax\\n&quot; &#x000A; //%eax=4(y*z) ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;09 &quot;notl %eax\\n&quot; &#x000A; //%eax=~4(y*z) ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;10 &quot;andl $15, %eax\\n&quot; &#x000A; //%eax=~4(y*z)&amp;15 ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;11 &quot;imull %eax, %edx\\n&quot; &#x000A; //%eax=~4(y*z)&amp;15 ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;12 &quot;movl 0xc(%ebp), %eax\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;13 &quot;movl %edx,(%eax)\\n&quot; &#x000A; //%eax=*((y*z)&amp;z) * (~4(y*z)&amp;15) ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;14 &quot;xorl %eax, %eax\\n&quot; &#x000A; //%eax=0 ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;&#x000A; );&#x000A; }&#x000A; &#x000A; int main()&#x000A; {&#x000A; int a = 10;&#x000A; int temp = dummy(2, &amp;a);&#x000A; printf(&quot;Rueckgabe von dummy(2, &amp;a) fuer a == 10: %d (Inhalt von eax)\\n&quot;,&#x000A; temp);&#x000A; printf(&quot;Neuer Wert von a: %d\\n&quot;, a);&#x000A; return 0;&#x000A; }
&#x000A;&#x000A;&#x000A;//Mit Variablen:&#x000A;&#x000A;&#x000A;//y=2, *z= *a (=10)&#x000A;&#x000A;int dummy(int y, int* z)&#x000A; {&#x000A; asm (&#x000A;01 &quot;movl 0x8(%ebp), %ecx\\n“ //%eax=? ; %ecx=2 ; %edx=?&#x000A;02 &quot;movl 0xc(%ebp), %eax\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=?&#x000A;03 &quot;movl (%eax), %edx\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=10&#x000A;04 &quot;xorl %eax, %eax\\n“ //%eax=0 ; %ecx=2 ; %edx=10&#x000A;05 &quot;addl %edx, %eax\\n&quot; //%eax=10 ; %ecx=2 ; %edx=10&#x000A;06 &quot;imull %ecx, %eax\\n&quot; //%eax=20 ; %ecx=2 ; %edx=10&#x000A;07 &quot;andl %eax, %edx\\n&quot; //%eax=20 ; %ecx=2 ; %edx=0&#x000A;08 &quot;leal (, %eax, 4), %eax\\n&quot; //%eax=80 ; %ecx=2 ; %edx=0&#x000A;09 &quot;notl %eax\\n&quot; //%eax=47 ; %ecx=2 ; %edx=0&#x000A;10 &quot;andl $15, %eax\\n&quot; //%eax=15 ; %ecx=2 ; %edx=0&#x000A;11 &quot;imull %eax, %edx\\n&quot; //%eax=15 ; %ecx=2 ; %edx=0&#x000A;12 &quot;movl 0xc(%ebp), %eax\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=0&#x000A;13 &quot;movl %edx,(%eax)\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=0&#x000A; (speicher Wert von %edx in Register 0xA)&#x000A;14 &quot;xorl %eax, %eax\\n&quot; //%eax=0 ; %ecx=2 ; %edx=0&#x000A;&#x000A; );&#x000A; } <\/textarea>\n <\/div>\n <\/div>\n<\/div>\n<script type=\'text/javascript\'>\n //<![CDATA[\n applicationScripts.solutions.initializeSolutionPartFormFields(\".solution-part.exercise_part_5422\");\n //]]>\n<\/script><\/div>\n<div class=\"row\"><div class=\"col-sm-12\"><div class=\"form-actions\"><input class=\"btn btn-success btn-block\" id=\"solution_submit\" name=\"commit\" type=\"submit\" value=\"Lösung speichern\" />\n<a class=\"btn btn-default btn-block\" href=\"#\" onclick=\"jQuery.ajax({data:\'authenticity_token=\' + encodeURIComponent(\'3+RYLDLpI0qx1kB8a1t/jLpyu35y9iPt/eAutMjLsl4=\'), dataType:\'script\', type:\'get\', url:\'/common/exercises/3704/solutions/109469\'}); return false;\">Abbrechen<\/a>\n<\/div><\/div><\/div>\n<\/form>');
rjsHelpers.updateElement('#solution', '<form action=\"/common/exercises/3704/solutions/109469\" class=\"edit_solution\" data-init=\"fileupload-form\" data-toggle=\"validation\" enctype=\"multipart/form-data\" id=\"edit_solution_109469\" method=\"post\" onsubmit=\"jQuery.ajax({data:jQuery.param(jQuery(this).serializeArray()) + \'&amp;authenticity_token=\' + encodeURIComponent(\'3+RYLDLpI0qx1kB8a1t/jLpyu35y9iPt/eAutMjLsl4=\'), dataType:\'script\', type:\'post\', url:\'/common/exercises/3704/solutions/109469\'}); return false;\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"_method\" type=\"hidden\" value=\"put\" /><input name=\"authenticity_token\" type=\"hidden\" value=\"3+RYLDLpI0qx1kB8a1t/jLpyu35y9iPt/eAutMjLsl4=\" /><\/div>\n<h3 class=\'legend\'>Lösung bearbeiten<\/h3>\n<input id=\"solution_solution_parts_attributes_0_id\" name=\"solution[solution_parts_attributes][0][id]\" type=\"hidden\" value=\"136764\" /><div id=\'solution_109469_tab_1\'><div class=\'exercise_part_5422 solution-part\'>\n \n <input id=\"solution_solution_parts_attributes_0_exercise_part_id\" name=\"solution[solution_parts_attributes][0][exercise_part_id]\" type=\"hidden\" value=\"5422\" />\n <div class=\'row\'>\n <div class=\'col-sm-12\'>\n <div class=\'form-group\'>\n <label for=\"solution_solution_parts_attributes_0_exercise_type_text\">Text<\/label>\n <input checked=\"checked\" class=\"solution-field exercise-type\" id=\"solution_solution_parts_attributes_0_exercise_type_text\" name=\"solution[solution_parts_attributes][0][exercise_type]\" type=\"radio\" value=\"text\" />\n <label for=\"solution_solution_parts_attributes_0_exercise_type_wiki\">Markdown<\/label>\n <input class=\"solution-field exercise-type\" id=\"solution_solution_parts_attributes_0_exercise_type_wiki\" name=\"solution[solution_parts_attributes][0][exercise_type]\" type=\"radio\" value=\"wiki\" />\n <\/div>\n <\/div>\n <\/div>\n <div class=\'type-code type-wiki type-text type row\'>\n <div class=\'col-sm-12\'>\n <div class=\'type-wiki type\'>\n <div class=\'callout callout-info\'>\n <p>Sie können Ihren Text mit Markdown formatieren. Eine vollständige Dokumentation finden Sie unter: <a href=\"http://johnmacfarlane.net/pandoc/demo/example9/pandocs-markdown.html\" target=\"_blank\">Pandocs Markdown<\/a> <br />Bitte beachten Sie, dass LaTeX-Befehle nur begrenzt (und nur innerhalb einer Mathe-Umgebung) verwendet werden können.<\/p>\n <\/div>\n <\/div>\n <textarea class=\"solution-field codemirror-area\" cols=\"40\" id=\"solution_solution_parts_attributes_0_text\" name=\"solution[solution_parts_attributes][0][text]\" rows=\"20\">// Kommentierte Register mit Berechnungen, unten mit gegebenen Variaben.&#x000A;&#x000A;int dummy(int y, int* z)&#x000A; {&#x000A; asm (&#x000A;01 &quot;movl 0x8(%ebp), %ecx\\n“ &#x000A; //%eax=? ; %ecx=y ; %edx=?&#x000A;02 &quot;movl 0xc(%ebp), %eax\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=?&#x000A;03 &quot;movl (%eax), %edx\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=z&#x000A;04 &quot;xorl %eax, %eax\\n“ &#x000A; //%eax=0 ; %ecx=y ; %edx=z&#x000A;05 &quot;addl %edx, %eax\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=z&#x000A;06 &quot;imull %ecx, %eax\\n&quot; &#x000A; //%eax=y*z ; %ecx=y ; %edx=z&#x000A;07 &quot;andl %eax, %edx\\n&quot; &#x000A; //%eax=y*z ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;08 &quot;leal (, %eax, 4), %eax\\n&quot; &#x000A; //%eax=4(y*z) ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;09 &quot;notl %eax\\n&quot; &#x000A; //%eax=~4(y*z) ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;10 &quot;andl $15, %eax\\n&quot; &#x000A; //%eax=~4(y*z)&amp;15 ; %ecx=y ; %edx=(y*z)&amp;z&#x000A;11 &quot;imull %eax, %edx\\n&quot; &#x000A; //%eax=~4(y*z)&amp;15 ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;12 &quot;movl 0xc(%ebp), %eax\\n&quot; &#x000A; //%eax=z ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;13 &quot;movl %edx,(%eax)\\n&quot; &#x000A; //%eax=*((y*z)&amp;z) * (~4(y*z)&amp;15) ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;14 &quot;xorl %eax, %eax\\n&quot; &#x000A; //%eax=0 ; %ecx=y ; %edx=((y*z)&amp;z) * (~4(y*z)&amp;15)&#x000A;&#x000A; );&#x000A; }&#x000A; &#x000A; int main()&#x000A; {&#x000A; int a = 10;&#x000A; int temp = dummy(2, &amp;a);&#x000A; printf(&quot;Rueckgabe von dummy(2, &amp;a) fuer a == 10: %d (Inhalt von eax)\\n&quot;,&#x000A; temp);&#x000A; printf(&quot;Neuer Wert von a: %d\\n&quot;, a);&#x000A; return 0;&#x000A; }&#x000A;&#x000A;&#x000A;//Mit Variablen:&#x000A;&#x000A;&#x000A;//y=2, *z= *a (=10)&#x000A;&#x000A;int dummy(int y, int* z)&#x000A; {&#x000A; asm (&#x000A;01 &quot;movl 0x8(%ebp), %ecx\\n“ //%eax=? ; %ecx=2 ; %edx=?&#x000A;02 &quot;movl 0xc(%ebp), %eax\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=?&#x000A;03 &quot;movl (%eax), %edx\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=10&#x000A;04 &quot;xorl %eax, %eax\\n“ //%eax=0 ; %ecx=2 ; %edx=10&#x000A;05 &quot;addl %edx, %eax\\n&quot; //%eax=10 ; %ecx=2 ; %edx=10&#x000A;06 &quot;imull %ecx, %eax\\n&quot; //%eax=20 ; %ecx=2 ; %edx=10&#x000A;07 &quot;andl %eax, %edx\\n&quot; //%eax=20 ; %ecx=2 ; %edx=0&#x000A;08 &quot;leal (, %eax, 4), %eax\\n&quot; //%eax=80 ; %ecx=2 ; %edx=0&#x000A;09 &quot;notl %eax\\n&quot; //%eax=47 ; %ecx=2 ; %edx=0&#x000A;10 &quot;andl $15, %eax\\n&quot; //%eax=15 ; %ecx=2 ; %edx=0&#x000A;11 &quot;imull %eax, %edx\\n&quot; //%eax=15 ; %ecx=2 ; %edx=0&#x000A;12 &quot;movl 0xc(%ebp), %eax\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=0&#x000A;13 &quot;movl %edx,(%eax)\\n&quot; //%eax=0xA ; %ecx=2 ; %edx=0&#x000A; (speicher Wert von %edx in Register 0xA)&#x000A;14 &quot;xorl %eax, %eax\\n&quot; //%eax=0 ; %ecx=2 ; %edx=0&#x000A;&#x000A; );&#x000A; } <\/textarea>\n <\/div>\n <\/div>\n<\/div>\n<script type=\'text/javascript\'>\n //<![CDATA[\n applicationScripts.solutions.initializeSolutionPartFormFields(\".solution-part.exercise_part_5422\");\n //]]>\n<\/script><\/div>\n<div class=\"row\"><div class=\"col-sm-12\"><div class=\"form-actions\"><input class=\"btn btn-success btn-block\" id=\"solution_submit\" name=\"commit\" type=\"submit\" value=\"Lösung speichern\" />\n<a class=\"btn btn-default btn-block\" href=\"#\" onclick=\"jQuery.ajax({data:\'authenticity_token=\' + encodeURIComponent(\'3+RYLDLpI0qx1kB8a1t/jLpyu35y9iPt/eAutMjLsl4=\'), dataType:\'script\', type:\'get\', url:\'/common/exercises/3704/solutions/109469\'}); return false;\">Abbrechen<\/a>\n<\/div><\/div><\/div>\n<\/form>');
rjsHelpers.scrollToElement('#solution', 0);
rjsHelpers.scrollToElement('#solution', 0);