; Да се напише подпрограма, която да връща в регистър EAX индекса на подадената ; в регистри RSI:RDI двойна дума в масива от двойни думи с начален адрес в RCX ; и брой елементи в регистър RDX или -1, ако не е намерена. option prologue:none, epilogue:none .code srch128 proc _srch128 proc XCHG RCX,RDX ; RCX = брой елементи, RDX = начален адрес на масива XOR RAX,RAX ; Инициализирай удвоения индекс .repeat .break .if (RDI == [RDX+8*RAX] && RSI == [RDX+8*RAX+8]); Край ADD RAX,2 ; Актуализирай удвоения индекс, ZF = 0 .untilcxz .if (!equal?) LEA RAX,[RCX-2]; Дв. дyмa в RSI:RDI нe e нaмepeнa, въpни -1 .endif SHR RAX,1 ; EAX (RAX) = индекс на откритата двойна дума или -1 RET _srch128 endp srch128 endp end