c = (a+b)*c;
else
c = (a+c)*b;
将这个修改为汇编语言,谁能告诉一下,谢谢
9 个解决方案
#1
如果用GCC的话,可以这样:
gcc -O1 -S -masm=intel urfile.c
这样就产生了一个Intel风格的汇编文件urfile.s
#2
?
这个是一个考试题目,我不会汇编,能帮写出来吗?
这个是一个考试题目,我不会汇编,能帮写出来吗?
#3
挣分
#4
??没有人帮忙吗
#5
就20分,不干
#6
.data
intA dw 3 ;a
intB dw 4 ;b
intC dw ? ;c (c的取值范围:-32768~32767)
.code
...
xor dx,dx ;dx = 0
mov ax,intA ;ax = a
cmp ax,intB ;a > b?
jng @@else ;if(false) goto @@else
add ax,intB ; ax = a+b
mul intC ;dx:ax = (a+b)*c
mov intC,ax ;c = (a+b)*c
jmp @@endif
@@else:
add ax,intC ;ax = a+c
mul intB ;dx:ax = (a+c)*b
mov intC,ax ;c = (a+c)*b
@@endif:
...
供参考
#7
楼上程序有错,修改一下:
.data
intA dw 3 ;a
intB dw 4 ;b
intC dw ? ;c (c的取值范围:0~65535)
.code
...
xor dx,dx ;dx = 0
mov ax,intA ;ax = a
cmp ax,intB ;a > b?
jng @@else ;if(false) goto @@else
add ax,intB ; ax = a+b
mul intC ;dx:ax = (a+b)*c
mov intC,ax ;c = (a+b)*c
jmp @@endif
@@else:
add ax,intC ;ax = a+c
mul intB ;dx:ax = (a+c)*b
mov intC,ax ;c = (a+c)*b
@@endif:
...
;供参考
#8
不好意思,我楼上的程序修改以后又出现错误.解决办法:如果是带符号数,将mul换成imul; 如果是无符号数,将jng换成jna
#9
如果你会写 c程序不?把这那段代码写成一个程序编译连接生成(文件名.exe)文件,存在d:,用debug反汇编一下,不得了,别说你不知道怎么用debug
——》按(windows+R)键 ——》输入 d:————》输入debug 文件名.exe
#1
如果用GCC的话,可以这样:
gcc -O1 -S -masm=intel urfile.c
这样就产生了一个Intel风格的汇编文件urfile.s
#2
?
这个是一个考试题目,我不会汇编,能帮写出来吗?
这个是一个考试题目,我不会汇编,能帮写出来吗?
#3
挣分
#4
??没有人帮忙吗
#5
就20分,不干
#6
.data
intA dw 3 ;a
intB dw 4 ;b
intC dw ? ;c (c的取值范围:-32768~32767)
.code
...
xor dx,dx ;dx = 0
mov ax,intA ;ax = a
cmp ax,intB ;a > b?
jng @@else ;if(false) goto @@else
add ax,intB ; ax = a+b
mul intC ;dx:ax = (a+b)*c
mov intC,ax ;c = (a+b)*c
jmp @@endif
@@else:
add ax,intC ;ax = a+c
mul intB ;dx:ax = (a+c)*b
mov intC,ax ;c = (a+c)*b
@@endif:
...
供参考
#7
楼上程序有错,修改一下:
.data
intA dw 3 ;a
intB dw 4 ;b
intC dw ? ;c (c的取值范围:0~65535)
.code
...
xor dx,dx ;dx = 0
mov ax,intA ;ax = a
cmp ax,intB ;a > b?
jng @@else ;if(false) goto @@else
add ax,intB ; ax = a+b
mul intC ;dx:ax = (a+b)*c
mov intC,ax ;c = (a+b)*c
jmp @@endif
@@else:
add ax,intC ;ax = a+c
mul intB ;dx:ax = (a+c)*b
mov intC,ax ;c = (a+c)*b
@@endif:
...
;供参考
#8
不好意思,我楼上的程序修改以后又出现错误.解决办法:如果是带符号数,将mul换成imul; 如果是无符号数,将jng换成jna
#9
如果你会写 c程序不?把这那段代码写成一个程序编译连接生成(文件名.exe)文件,存在d:,用debug反汇编一下,不得了,别说你不知道怎么用debug
——》按(windows+R)键 ——》输入 d:————》输入debug 文件名.exe