EMU8086 GENERATED LISTING. MACHINE CODE <- SOURCE. molt_proc.exe -- emu8086 assembler version: 4.07 [ 15/03/2013 -- 23.20.46 ] =================================================================================================== [LINE] LOC: MACHINE CODE SOURCE =================================================================================================== [ 1] : [ 2] : ; ------------------------------------------------------------- [ 3] : ; programma che effettua una moltiplicazione [ 4] : ; ripetendo operazioni di somma [ 5] : ; ------------------------------------------------------------- [ 6] : [ 7] : ; area di stack (segmento stack) [ 8] : Stack SEGMENT [ 9] 0000: 00 00 00 00 00 00 00 00 00 00 00 00 DB 48 DUP(?) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 10] : Stack ENDS [ 11] : [ 12] : ; segmento dati [ 13] : Dati SEGMENT [ 14] 0030: 1E N DB 30 [ 15] 0031: 05 M DB 5 [ 16] 0032: 00 00 Ris DW ? [ 17] : Dati ENDS [ 18] : [ 19] : ; segmento codice [ 20] : Codice SEGMENT [ 21] : [ 22] 0040: Inizio: [ 23] 0040: B8 03 00 MOV AX,Dati ; fapuntare il registro DS all'area dati [ 24] 0043: 8E D8 MOV DS,AX [ 25] : [ 26] 0045: B5 00 MOV CH,0d ; carica N in CX [ 27] 0047: 8A 0E 00 00 MOV CL, N [ 28] 004B: B4 00 MOV AH,0d ; carica M in AX (addendo sommato N volte) [ 29] 004D: A0 01 00 MOV AL, M [ 30] 0050: C7 06 02 00 00 00 MOV Ris,0d ; azzera la locazione ove viene inserito il risultato [ 31] 0056: Ciclo: [ 32] 0056: E8 06 00 CALL Somma [ 33] 0059: E2 FB LOOP Ciclo ; effettua N cicli [ 34] : [ 35] 005B: B4 4C MOV AH,4Ch ; ritorno al DOS [ 36] 005D: CD 21 INT 21h [ 37] : [ 38] 005F: Somma PROC NEAR ; porcedura assembly che compie [ 39] 005F: 01 06 02 00 ADD Ris,AX ; la sola operazione di somma [ 40] 0063: C3 RET [ 41] : Somma ENDP [ 42] : [ 43] : Codice ENDS [ 44] : [ 45] : END Inizio [ 46] : ===================================================================================================