用汇编语言编写程序:A*(B/C)+D→X

其中,变量是32位无符号数,变量C是16位无符号数,x为64位无符号数,B/C为整除

        CODE  SEGMENT
              ASSUME    CS:CODE
           A  DD        12345678H
           B  DD        8765432H
           C  DW        8765H
           D  DD        98765432H
           X  DQ        0
      START:  PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              MOV       DX,WORD PTR B+2
              MOV       AX,WORD PTR B
              MOV       BX,C
              DIV       BX
              MOV       BX,AX
              MOV       AX,WORD PTR A+2
              MUL       BX
              ADD       WORD PTR X+2,AX
              ADC       WORD PTR X+4,DX
              ADC       WORD PTR X+6,0
              MOV       AX,WORD PTR A
              MUL       BX
              ADD       WORD PTR X,AX
              ADC       WORD PTR X+2,DX
              ADC       WORD PTR X+4,0
              ADC       WORD PTR X+6,0
              MOV       DX,WORD PTR D+2
              MOV       AX,WORD PTR D
              ADD       WORD PTR X,AX
              ADC       WORD PTR X+2,DX
              ADC       WORD PTR X+4,0
              ADC       WORD PTR X+6,0
              MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START
; A*(B/C)+D→X
; 其中,变量是32位无符号数,变量C是16位无符号数,x为64位无符号数,B/C为整除

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-17
张子旭不好解决句

用汇编语言编写程序要求从键盘输入a、b、c3个数进行((a*b)+c)\/a结 ...
MOV C,AL MOV DL,13 MOV AH,2 INT 21H MOV DL,10 INT 21H CUL:MOV AL,A MOV BL,B MUL BL ADD AL,C MOV DH,A DIV DH MOV S,AL SHOW:MOV DL,'='MOV AH,2 INT 21H MOV DL,S ADD DL,30H MOV AH,2 INT 21H ...

汇编程序语言设计:现在A、B、C三个变量中各存有16位有符号数a、b、c...
MOV AX,A__IMUL__ BMOV BX,AX MOV CX,DXMOV AX,C___CWD___ ;(符号扩展为32位)ADD AX,BX ADC DX,CXIDIV B

汇编语言的一些程序设计题,谁能举例解答一下
a,b,c,d在程序中是分配的内存空间,和寄存器存在着本质上的区别,所以这些题目使用的数据就是:AX,BX,CX,DX这些寄存器数据 1、交换可以用堆栈进行,AX。BX相互交换内容 PUSH AX PUSH BX POP AX POP BX 这样AX和BX内容就交换了 2、为了方便你理解,写一些不正确的表达式吧 MOV AX,0 相当于 ...

用汇编语言编写一个小小程序
这个还不简单#include<stdio.h>void main(){ float a,b,c,s;\/*定义数据类型,数据初始化*\/s=(a*b+c)\/a;\/*计算并把计算结果赋值给s*\/printf("s=%f\\n",s);\/*输出计算结果*\/}

编写程序用汇编语言 求表达式Y=A(X的平方)+BX+C
使用求根公式吧。俺汇编不及格

【微机原理】1.汇编语言程序设计(1)
指令运作: 汇编指令如ADD AX,BX执行有符号数加法,结果存储在AX寄存器,可能产生溢出或负数,这由标志寄存器如CF、OF、SF指示。内存与寄存器: 内存按需分段,寄存器如通用寄存器AX用于数据处理,而DX可能用于屏幕输出,像CX这样的计数器用于循环控制。比如,数据段A和B被读入寄存器,运算后写回内存中的C...

用汇编语言写出加减乘除的算法?
我再说点MC51的汇编语言,也许你能用上。(都是一些语法)带进位加法:addc a,#data ;(a)+#data+(c)--> (a)addc a,data ;(a)+(data)+(c)-->(a)addc a,@r;(a)+((r))+(c)-->(a)带进位的减法:subb a,#data subb a,data subb a,@r1 乘法:mul a b;(a)*(b)除...

编写一段代码使用C语言嵌人汇编程序,在汇编程序中实现求两个数的最...
在C语言中嵌入汇编代码可以使用`asm`关键字,具体的实现方式取决于所使用的编译器和平台。下面是一个简单的示例代码,使用C语言嵌入汇编程序来求两个数的最大公约数:```c include <stdio.h> int gcd(int a, int b) { int result;asm volatile("mov %1, %%eax\\n" \/\/ 将a的值放入eax...

关于汇编语言程序( )。
【答案】:C C【解析】汇编语言程序相对于机器语言程序具有良好的可移植性。

用汇编语言编写一个程序:计算 y=ax²+b-c。输入a b c x 输出y...
a,r1 = b,r2 = c,r3 = x return:y = r0 \/ .global func1 func1:mul r0,r0,r3 mul r0,r0,r3 add r0,r0,r1 add r0,r0,r2 mov pc,lr a.h 文件:ifndef __A_H__define __A_H__int func1(int a,int b,int c,int x);endif 用生成的elf反汇编文件如下:080002f6 <fun...

相似回答