Looser
29.10.2005, 15:50
Hallo Leute
Ich bin ein Anfänger in der Assambler-Sprache. Mir liegt Bascom eher.
Ich habe ein Hex-File welches ich mir im AVRSTUDIO-Disassembler angeschaut habe. Nur habe ich da nichts verstanden. Aber Lernen ist immer gut !!! Diese Program gibt 3 Byte aus.
Wo kann ich das finden ?
Mit welcher Anweisung wird dies gemacht ?
Kann man das auf ein Byte reduzieren (LETZTE BYTE) ?
Vielen Dank im Voraus
Das ist ein Teil der DISASSABLERansicht:
+00000114: C013 RJMP PC+0x0014 Relative jump
+00000115: CEFB RJMP PC-0x0104 Relative jump
+00000116: 6130 ORI R19,0x10 Logical OR with immediate
+00000117: D083 RCALL PC+0x0084 Relative call subroutine
+00000118: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000119: C004 RJMP PC+0x0005 Relative jump
+0000011A: D072 RCALL PC+0x0073 Relative call subroutine
+0000011B: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000011C: C00B RJMP PC+0x000C Relative jump
+0000011D: CEF3 RJMP PC-0x010C Relative jump
+0000011E: D07C RCALL PC+0x007D Relative call subroutine
+0000011F: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000120: CEF0 RJMP PC-0x010F Relative jump
+00000121: D06B RCALL PC+0x006C Relative call subroutine
+00000122: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000123: C00C RJMP PC+0x000D Relative jump
+00000124: D068 RCALL PC+0x0069 Relative call subroutine
+00000125: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000126: C013 RJMP PC+0x0014 Relative jump
+00000127: CEE9 RJMP PC-0x0116 Relative jump
+00000128: 6038 ORI R19,0x08 Logical OR with immediate
+00000129: D071 RCALL PC+0x0072 Relative call subroutine
+0000012A: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000012B: C004 RJMP PC+0x0005 Relative jump
+0000012C: D060 RCALL PC+0x0061 Relative call subroutine
+0000012D: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000012E: C00B RJMP PC+0x000C Relative jump
+0000012F: CEE1 RJMP PC-0x011E Relative jump
+00000130: D06A RCALL PC+0x006B Relative call subroutine
+00000131: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000132: CEDE RJMP PC-0x0121 Relative jump
+00000133: D059 RCALL PC+0x005A Relative call subroutine
+00000134: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000135: C00C RJMP PC+0x000D Relative jump
+00000136: D056 RCALL PC+0x0057 Relative call subroutine
+00000137: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000138: C013 RJMP PC+0x0014 Relative jump
+00000139: CED7 RJMP PC-0x0128 Relative jump
+0000013A: 6034 ORI R19,0x04 Logical OR with immediate
+0000013B: D05F RCALL PC+0x0060 Relative call subroutine
+0000013C: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000013D: C004 RJMP PC+0x0005 Relative jump
+0000013E: D04E RCALL PC+0x004F Relative call subroutine
+0000013F: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000140: C00B RJMP PC+0x000C Relative jump
+00000141: CECF RJMP PC-0x0130 Relative jump
+00000142: D058 RCALL PC+0x0059 Relative call subroutine
+00000143: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000144: CECC RJMP PC-0x0133 Relative jump
+00000145: D047 RCALL PC+0x0048 Relative call subroutine
+00000146: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000147: C00D RJMP PC+0x000E Relative jump
+00000148: D044 RCALL PC+0x0045 Relative call subroutine
+00000149: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000014A: C009 RJMP PC+0x000A Relative jump
+0000014B: CEC5 RJMP PC-0x013A Relative jump
+0000014C: 6032 ORI R19,0x02 Logical OR with immediate
+0000014D: D04D RCALL PC+0x004E Relative call subroutine
+0000014E: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000014F: C005 RJMP PC+0x0006 Relative jump
+00000150: D03C RCALL PC+0x003D Relative call subroutine
+00000151: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000152: C001 RJMP PC+0x0002 Relative jump
+00000153: CEBD RJMP PC-0x0142 Relative jump
+00000154: 6031 ORI R19,0x01 Logical OR with immediate
+00000155: E042 LDI R20,0x02 Load immediate
+00000156: BB48 OUT 0x18,R20 Out to I/O location
+00000157: 2F41 MOV R20,R17 Copy register
+00000158: D020 RCALL PC+0x0021 Relative call subroutine
+00000159: 2F42 MOV R20,R18 Copy register
+0000015A: D01E RCALL PC+0x001F Relative call subroutine
+0000015B: 2F43 MOV R20,R19 Copy register
+0000015C: D01C RCALL PC+0x001D Relative call subroutine
+0000015D: D02F RCALL PC+0x0030 Relative call subroutine
+0000015E: E040 LDI R20,0x00 Load immediate
+0000015F: BB48 OUT 0x18,R20 Out to I/O location
+00000160: E84B LDI R20,0x8B Load immediate
+00000161: 1334 CPSE R19,R20 Compare, skip if equal
+00000162: C006 RJMP PC+0x0007 Relative jump
+00000163: E04A LDI R20,0x0A Load immediate
+00000164: BB48 OUT 0x18,R20 Out to I/O location
+00000165: D01C RCALL PC+0x001D Relative call subroutine
+00000166: E040 LDI R20,0x00 Load immediate
+00000167: BB48 OUT 0x18,R20 Out to I/O location
+00000168: CEA8 RJMP PC-0x0157 Relative jump
+00000169: E040 LDI R20,0x00 Load immediate
+0000016A: 1314 CPSE R17,R20 Compare, skip if equal
+0000016B: CEA5 RJMP PC-0x015A Relative jump
+0000016C: E045 LDI R20,0x05 Load immediate
+0000016D: 1324 CPSE R18,R20 Compare, skip if equal
+0000016E: CEA2 RJMP PC-0x015D Relative jump
+0000016F: E340 LDI R20,0x30 Load immediate
+00000170: 1334 CPSE R19,R20 Compare, skip if equal
+00000171: CE9F RJMP PC-0x0160 Relative jump
+00000172: E04A LDI R20,0x0A Load immediate
+00000173: BB48 OUT 0x18,R20 Out to I/O location
+00000174: D00D RCALL PC+0x000E Relative call subroutine
+00000175: E040 LDI R20,0x00 Load immediate
+00000176: BB48 OUT 0x18,R20 Out to I/O location
+00000177: CE99 RJMP PC-0x0166 Relative jump
+00000178: CE98 RJMP PC-0x0167 Relative jump
+00000179: 9B5D SBIS 0x0B,5 Skip if bit in I/O register set
+0000017A: CFFE RJMP PC-0x0001 Relative jump
+0000017B: B94C OUT 0x0C,R20 Out to I/O location
+0000017C: 9508 RET Subroutine return
+0000017D: 954A DEC R20 Decrement
+0000017E: F7F1 BRNE PC-0x01 Branch if not equal
+0000017F: 0000 NOP No operation
+00000180: 0000 NOP No operation
+00000181: 9508 RET Subroutine return
+00000182: 2777 CLR R23 Clear Register
+00000183: E74D LDI R20,0x7D Load immediate
+00000184: E76D LDI R22,0x7D Load immediate
+00000185: 9563 INC R22 Increment
+00000186: F7F1 BRNE PC-0x01 Branch if not equal
+00000187: ED6C LDI R22,0xDC Load immediate
+00000188: 9573 INC R23 Increment
+00000189: F7D9 BRNE PC-0x04 Branch if not equal
+0000018A: 9543 INC R20 Increment
+0000018B: F7C9 BRNE PC-0x06 Branch if not equal
+0000018C: 9508 RET Subroutine return
+0000018D: EC78 LDI R23,0xC8 Load immediate
+0000018E: EE4F LDI R20,0xEF Load immediate
+0000018F: 9573 INC R23 Increment
+00000190: F7F1 BRNE PC-0x01 Branch if not equal
+00000191: 9543 INC R20 Increment
+00000192: F7E1 BRNE PC-0x03 Branch if not equal
+00000193: 9508 RET Subroutine return
+00000194: E674 LDI R23,0x64 Load immediate
+00000195: EF40 LDI R20,0xF0 Load immediate
+00000196: 9573 INC R23 Increment
+00000197: F7F1 BRNE PC-0x01 Branch if not equal
+00000198: 9543 INC R20 Increment
+00000199: F7E1 BRNE PC-0x03 Branch if not equal
+0000019A: 9508 RET Subroutine return
+0000019B: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000019C: CFFE RJMP PC-0x0001 Relative jump
+0000019D: DFF6 RCALL PC-0x0009 Relative call subroutine
+0000019E: 9508 RET Subroutine return
+0000019F: ED0F LDI R16,0xDF Load immediate
+000001A0: BF0D OUT 0x3D,R16 Out to I/O location
+000001A1: CE5F RJMP PC-0x01A0 Relative jump
Ich bin ein Anfänger in der Assambler-Sprache. Mir liegt Bascom eher.
Ich habe ein Hex-File welches ich mir im AVRSTUDIO-Disassembler angeschaut habe. Nur habe ich da nichts verstanden. Aber Lernen ist immer gut !!! Diese Program gibt 3 Byte aus.
Wo kann ich das finden ?
Mit welcher Anweisung wird dies gemacht ?
Kann man das auf ein Byte reduzieren (LETZTE BYTE) ?
Vielen Dank im Voraus
Das ist ein Teil der DISASSABLERansicht:
+00000114: C013 RJMP PC+0x0014 Relative jump
+00000115: CEFB RJMP PC-0x0104 Relative jump
+00000116: 6130 ORI R19,0x10 Logical OR with immediate
+00000117: D083 RCALL PC+0x0084 Relative call subroutine
+00000118: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000119: C004 RJMP PC+0x0005 Relative jump
+0000011A: D072 RCALL PC+0x0073 Relative call subroutine
+0000011B: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000011C: C00B RJMP PC+0x000C Relative jump
+0000011D: CEF3 RJMP PC-0x010C Relative jump
+0000011E: D07C RCALL PC+0x007D Relative call subroutine
+0000011F: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000120: CEF0 RJMP PC-0x010F Relative jump
+00000121: D06B RCALL PC+0x006C Relative call subroutine
+00000122: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000123: C00C RJMP PC+0x000D Relative jump
+00000124: D068 RCALL PC+0x0069 Relative call subroutine
+00000125: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000126: C013 RJMP PC+0x0014 Relative jump
+00000127: CEE9 RJMP PC-0x0116 Relative jump
+00000128: 6038 ORI R19,0x08 Logical OR with immediate
+00000129: D071 RCALL PC+0x0072 Relative call subroutine
+0000012A: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000012B: C004 RJMP PC+0x0005 Relative jump
+0000012C: D060 RCALL PC+0x0061 Relative call subroutine
+0000012D: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000012E: C00B RJMP PC+0x000C Relative jump
+0000012F: CEE1 RJMP PC-0x011E Relative jump
+00000130: D06A RCALL PC+0x006B Relative call subroutine
+00000131: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000132: CEDE RJMP PC-0x0121 Relative jump
+00000133: D059 RCALL PC+0x005A Relative call subroutine
+00000134: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000135: C00C RJMP PC+0x000D Relative jump
+00000136: D056 RCALL PC+0x0057 Relative call subroutine
+00000137: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000138: C013 RJMP PC+0x0014 Relative jump
+00000139: CED7 RJMP PC-0x0128 Relative jump
+0000013A: 6034 ORI R19,0x04 Logical OR with immediate
+0000013B: D05F RCALL PC+0x0060 Relative call subroutine
+0000013C: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000013D: C004 RJMP PC+0x0005 Relative jump
+0000013E: D04E RCALL PC+0x004F Relative call subroutine
+0000013F: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000140: C00B RJMP PC+0x000C Relative jump
+00000141: CECF RJMP PC-0x0130 Relative jump
+00000142: D058 RCALL PC+0x0059 Relative call subroutine
+00000143: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000144: CECC RJMP PC-0x0133 Relative jump
+00000145: D047 RCALL PC+0x0048 Relative call subroutine
+00000146: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000147: C00D RJMP PC+0x000E Relative jump
+00000148: D044 RCALL PC+0x0045 Relative call subroutine
+00000149: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000014A: C009 RJMP PC+0x000A Relative jump
+0000014B: CEC5 RJMP PC-0x013A Relative jump
+0000014C: 6032 ORI R19,0x02 Logical OR with immediate
+0000014D: D04D RCALL PC+0x004E Relative call subroutine
+0000014E: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000014F: C005 RJMP PC+0x0006 Relative jump
+00000150: D03C RCALL PC+0x003D Relative call subroutine
+00000151: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+00000152: C001 RJMP PC+0x0002 Relative jump
+00000153: CEBD RJMP PC-0x0142 Relative jump
+00000154: 6031 ORI R19,0x01 Logical OR with immediate
+00000155: E042 LDI R20,0x02 Load immediate
+00000156: BB48 OUT 0x18,R20 Out to I/O location
+00000157: 2F41 MOV R20,R17 Copy register
+00000158: D020 RCALL PC+0x0021 Relative call subroutine
+00000159: 2F42 MOV R20,R18 Copy register
+0000015A: D01E RCALL PC+0x001F Relative call subroutine
+0000015B: 2F43 MOV R20,R19 Copy register
+0000015C: D01C RCALL PC+0x001D Relative call subroutine
+0000015D: D02F RCALL PC+0x0030 Relative call subroutine
+0000015E: E040 LDI R20,0x00 Load immediate
+0000015F: BB48 OUT 0x18,R20 Out to I/O location
+00000160: E84B LDI R20,0x8B Load immediate
+00000161: 1334 CPSE R19,R20 Compare, skip if equal
+00000162: C006 RJMP PC+0x0007 Relative jump
+00000163: E04A LDI R20,0x0A Load immediate
+00000164: BB48 OUT 0x18,R20 Out to I/O location
+00000165: D01C RCALL PC+0x001D Relative call subroutine
+00000166: E040 LDI R20,0x00 Load immediate
+00000167: BB48 OUT 0x18,R20 Out to I/O location
+00000168: CEA8 RJMP PC-0x0157 Relative jump
+00000169: E040 LDI R20,0x00 Load immediate
+0000016A: 1314 CPSE R17,R20 Compare, skip if equal
+0000016B: CEA5 RJMP PC-0x015A Relative jump
+0000016C: E045 LDI R20,0x05 Load immediate
+0000016D: 1324 CPSE R18,R20 Compare, skip if equal
+0000016E: CEA2 RJMP PC-0x015D Relative jump
+0000016F: E340 LDI R20,0x30 Load immediate
+00000170: 1334 CPSE R19,R20 Compare, skip if equal
+00000171: CE9F RJMP PC-0x0160 Relative jump
+00000172: E04A LDI R20,0x0A Load immediate
+00000173: BB48 OUT 0x18,R20 Out to I/O location
+00000174: D00D RCALL PC+0x000E Relative call subroutine
+00000175: E040 LDI R20,0x00 Load immediate
+00000176: BB48 OUT 0x18,R20 Out to I/O location
+00000177: CE99 RJMP PC-0x0166 Relative jump
+00000178: CE98 RJMP PC-0x0167 Relative jump
+00000179: 9B5D SBIS 0x0B,5 Skip if bit in I/O register set
+0000017A: CFFE RJMP PC-0x0001 Relative jump
+0000017B: B94C OUT 0x0C,R20 Out to I/O location
+0000017C: 9508 RET Subroutine return
+0000017D: 954A DEC R20 Decrement
+0000017E: F7F1 BRNE PC-0x01 Branch if not equal
+0000017F: 0000 NOP No operation
+00000180: 0000 NOP No operation
+00000181: 9508 RET Subroutine return
+00000182: 2777 CLR R23 Clear Register
+00000183: E74D LDI R20,0x7D Load immediate
+00000184: E76D LDI R22,0x7D Load immediate
+00000185: 9563 INC R22 Increment
+00000186: F7F1 BRNE PC-0x01 Branch if not equal
+00000187: ED6C LDI R22,0xDC Load immediate
+00000188: 9573 INC R23 Increment
+00000189: F7D9 BRNE PC-0x04 Branch if not equal
+0000018A: 9543 INC R20 Increment
+0000018B: F7C9 BRNE PC-0x06 Branch if not equal
+0000018C: 9508 RET Subroutine return
+0000018D: EC78 LDI R23,0xC8 Load immediate
+0000018E: EE4F LDI R20,0xEF Load immediate
+0000018F: 9573 INC R23 Increment
+00000190: F7F1 BRNE PC-0x01 Branch if not equal
+00000191: 9543 INC R20 Increment
+00000192: F7E1 BRNE PC-0x03 Branch if not equal
+00000193: 9508 RET Subroutine return
+00000194: E674 LDI R23,0x64 Load immediate
+00000195: EF40 LDI R20,0xF0 Load immediate
+00000196: 9573 INC R23 Increment
+00000197: F7F1 BRNE PC-0x01 Branch if not equal
+00000198: 9543 INC R20 Increment
+00000199: F7E1 BRNE PC-0x03 Branch if not equal
+0000019A: 9508 RET Subroutine return
+0000019B: 9BB2 SBIS 0x16,2 Skip if bit in I/O register set
+0000019C: CFFE RJMP PC-0x0001 Relative jump
+0000019D: DFF6 RCALL PC-0x0009 Relative call subroutine
+0000019E: 9508 RET Subroutine return
+0000019F: ED0F LDI R16,0xDF Load immediate
+000001A0: BF0D OUT 0x3D,R16 Out to I/O location
+000001A1: CE5F RJMP PC-0x01A0 Relative jump