题目内容
简答题 [说明]设有数组X和Y。X数组中有X1,X2、…、X10十个数,Y中有Y1、Y2、…、Y10十个数。编制程序计算:Z1=X1+Y1Z2=X2+Y2Z3=X3-Y3Z4=X4-Y4Z5=X5-Y5Z6=X6+Y6Z7=X7-Y7Z8=X8-Y8Z9=X9+Y9Z10=X10+Y10设置一个10位的标志尺:LOGIC_RULE,若它的每一位决定了当前按顺序该做加法(该位为0)或减法(该位为1)操作,则由上列等式可知LOGICRULE中的低10位应是()[汇编程序代码]datareasegment;definedatasegmentxdwx1,x2,x3,x4,x5,x6,x7,x8,x9,x10ydwy1,y2,y3,y4,y5,y6,y7,y8,y8,y10zdwz1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_ruledw();LOGIC_RULEinitializedatareaendsprogramsegment;definecodesegmentmainprocfarassumecs:program,ds:datareastart:;startingexecutionaddress();saveolddatasegmentsubax,ax;putzeroinAXpushax;saveitonstack;setDSregistertocurrentdatasegmentmovax,datareamovds,ax;MAINPARTOFPROGRAMGOESHEREmovbx,0movex,10movdx,logic_rulenext:movax,x[bx]shrdx,1jcsubtract()jmpshortresultsubtract:subax,y[bx]result:();result=>Znaddbx,2loopnextret;returntoDOSmainendp;endofmainpartofprogramprogramends;endofcodesegmentendstart;endofassembly附:指令及寄存器说明。MOV传送字或字节PUSH把字压入堆栈SHR逻辑右移JC有进位时转移JMP无条件转移指令SUB减法ADD加法LOOPCX不为零时循环JNE/JNZ不等于时转移CMP比较段寄存器2个:CS:代码段寄存器DS:数据段寄存器数据寄存器4个:AX:累加器BX:基址寄存器CX:计数寄存器DX:数据寄存器
查看答案
搜索结果不匹配?点我反馈
更多问题