Я верю, что это будет сделано (с комментариями).
( код не проверен )
По сути, теперь есть 3 цикла.
1.) Дождитесь нажатия кнопки.
2.) Подождите, пока кнопка не будет отпущена.
3.) Дождитесь повторного нажатия кнопки.
org 100h
run1:
mov ax, 3
int 33h #Check the mouse
cmp bx, 0 #See if button is pressed
je run1 #If Not pressed, go back and check again
xor bx, bx #Okay, button is pressed, clear the result
run1a:
mov ax, 3
int 33h #Check the mouse
cmp bx, 0 #See if button is released
jne run1a #If NOT equal, then not released, go check again.
xor bx, bx #button is released, clear the result
run2:
mov ax, 3
int 33h #Check the mouse
cmp bx, 0 #if button is pressed (2nd time)
je run2 #If NOT pressed, go to top.
int 20h #Button was pressed. All done (we don't care when its released)