精选问答
汇编程序题.求大神解答ABC PROCADD AX,BXSUB BX,AXADD AX,BXNEG BXABC ENDP该子程序中,寄存器AX,BX是入口参数也是出口参数.该子程序的功能是?若入口AX=1234H,BX=0ABCDH,则出口AX=,BX=.

2019-04-13

汇编程序题.求大神解答

ABC PROC

ADD AX,BX

SUB BX,AX

ADD AX,BX

NEG BX

ABC ENDP

该子程序中,寄存器AX,BX是入口参数也是出口参数.

该子程序的功能是?

若入口AX=1234H,BX=0ABCDH,则出口AX=_,BX=___.


优质解答
首先指出一点:此子程序有错,少了RET指令,实际调用后无法正确返回.
此子程序中代码实现的功能,是将AX与BX中的内容互换(前提是两数求和运算以及入口AX中的数求补运算不发生溢出).
假设 入口AX中的数是x,BX中的数是y,那么:
ADD AX,BX ; AX = x+y
SUB BX,AX ; BX = y-(x+y)= -x
ADD AX,BX ; AX = (x+y) + (-x) = y
NEG BX ; BX = - ( - x ) = x
至此,x和y的存放位置正好互换了一次.
所以,若入口AX=1234H,BX=0ABCDH,则出口 AX=_0ABCDH_, BX=_1234H_.
首先指出一点:此子程序有错,少了RET指令,实际调用后无法正确返回.
此子程序中代码实现的功能,是将AX与BX中的内容互换(前提是两数求和运算以及入口AX中的数求补运算不发生溢出).
假设 入口AX中的数是x,BX中的数是y,那么:
ADD AX,BX ; AX = x+y
SUB BX,AX ; BX = y-(x+y)= -x
ADD AX,BX ; AX = (x+y) + (-x) = y
NEG BX ; BX = - ( - x ) = x
至此,x和y的存放位置正好互换了一次.
所以,若入口AX=1234H,BX=0ABCDH,则出口 AX=_0ABCDH_, BX=_1234H_.
相关问答