首页 > 试题广场 >

有下列C语言程序片段。将它的功能用汇编程序实现,下面1、2、

[单选题]
有下列C语言程序片段。将它的功能用汇编程序实现,下面1、2、3、4处那句话有逻辑错误的是()
if (X>Y) X = X - Y;
else X = X + Y;
汇编片段为:
MOV AX, X
CMP AX, Y     //1
JLE ELSE      //2
ADD AX, Y     //3
ELSE:
ADD AX, Y     //4
OK:
MOV X, AX


  • 1
  • 2
  • 3
  • 4
程序一共两个错误,其中一个错误,有人指出来了,就是3处应该是sub;第二个错误,3后面应该jmp OK。不然还会3执行完了还会继续执行下面的else块的代码。
发表于 2020-03-31 23:39:03 回复(0)
微机原理:两个数相减用SUB,两个数相加用ADD。 
3/处错误,应改为:SUB AX,Y
发表于 2019-09-04 22:22:15 回复(0)
就大概对比下,3那里对应的应该是x=x–y,汇编里用的add,有毛病 然后对了
发表于 2019-08-25 21:36:03 回复(0)
汇编代码的JLE有误
发表于 2023-09-06 11:57:06 回复(0)
JLE ELSE    ;x<=y跳到ELSE
发表于 2020-10-17 00:13:31 回复(0)
JLE不是小等于嘛
发表于 2020-01-30 13:33:38 回复(1)
超纲了
发表于 2023-03-08 09:00:51 回复(0)
请问下
汇编语言在C语言中很重要吗?
要学吗?

发表于 2022-09-07 23:01:47 回复(1)

JLE ELSE:指如果<=就跳转到ELSE执行     执行加法,4处无问题

否则(即x>y)执行减法,3处应为:SUB AX,Y

发表于 2022-06-08 11:10:48 回复(0)
cmp类似减法,只进行比较不保留结果
发表于 2022-03-27 18:38:46 回复(0)
没学过汇编,但是看else上下应该不一样,add是加
发表于 2021-12-31 11:59:45 回复(0)
这答案有问题吧,JLE表示小于等于则转移到ELSE,只有一处错误的话应该改4处为SUB,3处错误的话2处的跳转指令也要改
发表于 2021-08-01 11:22:38 回复(0)
微机原理里面 相加用ADD 相减用SUM
发表于 2023-05-12 11:30:57 回复(1)
MOV AX, X
CMP AX, Y     //1
JLE ELSE      //2
SUB AX, Y     //3
JMP OK
ELSE:
ADD AX, Y     //4
OK:
MOV X, AX
应该是这样的汇编语言
发表于 2022-09-29 17:18:53 回复(0)
MOV AX, X
CMP AX, Y     //1
JLE ELSE      //2
SUB AX, Y     //3
JMP OK
ELSE:
ADD AX, Y     //4
OK:
MOV X, AX
应该是这样的汇编语言
发表于 2022-09-29 17:18:53 回复(0)
MOV AX, X
CMP AX, Y     //1
JLE ELSE      //2
SUB AX, Y     //3
JMP OK
ELSE:
ADD AX, Y     //4
OK:
MOV X, AX
应该是这样的汇编语言
发表于 2022-09-29 17:18:53 回复(0)
JE (Equal)等于 JL(Less)小于 JG(Greater)大于 JLE = JL + JE 小于等于
发表于 2022-06-16 18:17:36 回复(0)