Gast
#275797
mag sein dass meine frage doof ist aber das ist nur weil ich anfänger bin ;-) ich will nur verstehen warum soll man fast immer register oder sfrs auf stack mit push in unter- oder auch villeicht in hauptprogramme Retten und am ende restaurieren pop. wo ist der sinn ? gibt s auch andere ziele die mit diesen befehle erreicht werden könen ? für jede antwort wäre euch dankbar !! hier ne klein bsp wandlt hexa to bcd auf assemblerisch: ;*********************************************************************** * ;* a_h2BCD: ;*********************************************************************** * ;EXTRN CODE (REG_VIEW) MOV SP,#80h-1 MOV R2,#253d CALL HEX2BCD ; CALL REG_VIEW JMP $ ;*********************************************************************** * ;* Unterprogramm: HEX2BCD ;*********************************************************************** * HEX2BCD: PUSH ACC PUSH B PUSH PSW MOV A,R2 MOV B,#100 ; A/100 ergibt Hunderterstelle als Quotient in A DIV AB ; A: Hunderterstelle, B: Rest MOV R7,A ; Hunderterstelle -> R7 MOV A,B ; Rest -> A MOV B,#10 ; Rest/10 ergibt Zehnerstelle DIV AB ; A: Zehnerstelle, B: Einerstelle MOV R6,A ; Zehnerstelle -> R6 MOV R5,B ; Einerstelle -> R5 POP PSW POP B POP ACC RET END