邹华桥 发表于 2020-5-14 18:25:54

请使用零地址指令、一地址指令和二地址指令分别编写程序实现:X=(A+B×C)/(D -E×F)


请使用零地址指令、一地址指令和二地址指令分别编写程序实现:X=(A+B×C)/(D -E×F)

可使用的指令列表如下:

零地址指令
PUSH M,POP M,ADD,SUB,MUL,DIV
一地址指令
LOAD M,STORE M,ADD M,SUB M,MUL M,DIV M
二地址指令
MOVE X ,Y   ADD X, Y    SUB X, Y    MUL X, Y   DIV X,Y

邹华桥 发表于 2020-5-14 18:27:06

在线等答案

永恒的蓝色梦想 发表于 2020-5-14 18:35:30

邹华桥 发表于 2020-5-14 18:27
在线等答案

汇编这里人很少的……

邹华桥 发表于 2020-5-14 18:53:10

永恒的蓝色梦想 发表于 2020-5-14 18:35
汇编这里人很少的……

那我该去哪儿

邹华桥 发表于 2020-5-14 18:55:01

永恒的蓝色梦想 发表于 2020-5-14 18:35
汇编这里人很少的……

兄第,你会吗,我们没学过汇编,我们老师给我们出这种题

永恒的蓝色梦想 发表于 2020-5-14 18:56:48

邹华桥 发表于 2020-5-14 18:55
兄第,你会吗,我们没学过汇编,我们老师给我们出这种题

我也不会汇编

人造人 发表于 2020-5-14 22:07:31

邹华桥 发表于 2020-5-14 18:55
兄第,你会吗,我们没学过汇编,我们老师给我们出这种题

不会没事,因为可以学
问题不是会不会,而是学不学
你想不想学汇编语言?如果不想学,随便找个理由糊弄过去就好了
如果想学,那就是另一回事了

xie1234abc 发表于 2020-5-14 22:22:00

assume cs:code,ds:data
data segment
        BCshu dw 20,2,2        ;存A B C
        Cshu db 12,2,2        ;存D E F
        Jguo dw 0,0                ;存商和余数
data ends

code segment
start:mov ax,data
        mov ds,ax

        ;被除数计算
        mov ax,BCshu
        mov cx,BCshu
        mul cx
        add ax,BCshu
        adc dx,0
        mov BCshu,ax
        mov BCshu,dx
       
        ;除数计算
        mov al,Cshu
        mov cl,Cshu
        mul cl
        mov bh,0
        mov bl,Cshu
        mov cx,ax
        sub bx,cx
       
        mov ax,BCshu
        mov dx,BCshu
        div bx
        mov Jguo,ax
        mov Jguo,dx
       
        mov ax,4c00h
        int 21h
code ends
end start

xie1234abc 发表于 2020-5-14 22:22:41

可以算正数,负数的自己再修改下。

邹华桥 发表于 2020-5-15 12:05:39

xie1234abc 发表于 2020-5-14 22:22
可以算正数,负数的自己再修改下。

感谢

xie1234abc 发表于 2020-5-15 14:07:48

现在这个只可以算除数为正的情况。
要算除数为负,给你个思路:加个判断语句,如果除数为负时,用 E*F-D 。
页: [1]
查看完整版本: 请使用零地址指令、一地址指令和二地址指令分别编写程序实现:X=(A+B×C)/(D -E×F)