0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
.org 80h
src: db "++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+."
table:
db 0h db 3Eh dw @i1
db 0h db 3Ch dw @i2
db 0h db 2Bh dw @i3
db 0h db 2Dh dw @i4
db 0h db 5Dh dw @i5
db 0h db 2Eh dw @i6
db 0h db 5Bh dw @i7
start: ; %a iptr %b dptr ;
.loop:
mov %cl [%a + @src]
cmp %cl 0h
je @.loop.break
mov %si 0h
.tloop:
mov %ch [4h * %si + {@table + 1h}]
cmp %cl %ch
jne @.tloop.continue
push @.tloop.break
mov %ip [4h * %si + {@table + 2h}]
.tloop.continue:
inc %si
cmp %si 8h
jl @.tloop
.tloop.break:
inc %a
jmp @.loop
.loop.break:
int 0h
i1: ; > ;
inc %b ret
i2: ; < ;
dec %b ret
i3: ; + ;
push %el
mov %el [%b + @data]
inc %el
mov [%b + @data] %el
pop %el
ret
i4: ; - ;
push %el
mov %el [%b + @data]
dec %el
mov [%b + @data] %el
pop %el
ret
i5: ; ] ;
push %c
mov %cl [%b + @data]
cmp %cl 0h
je @.loop.break
mov %c 0h
dec %a
.loop:
cmpb [%a + @src] 5Dh ; ']' ;
jne @.loop.1
inc %c
.loop.1:
cmpb [%a + @src] 5Bh ; '[' ;
jne @.loop.2
cmp %c 0h
jz @.loop.break
dec %c
.loop.2:
loop %a @.loop
.loop.break:
pop %c
ret
i6: ; . ;
push %cl
outb E9h [%b + @data]
.wait:
inb %cl E9h
cmp %cl 0h
jne @.wait
pop %cl
ret
i7: ; [ ;
push %c
mov %c [%b + @data]
cmp %c 0h
jne @.loop.break
mov %c 0h
.loop:
cmpb [%a + @src] 5Bh ; '[' ;
jne @.loop.1
inc %c
.loop.1:
cmpb [%a + @src] 5Dh ; ']' ;
jne @.loop.2
cmp %c 0h
jz @.loop.break
dec %c
.loop.2:
inc %a
jmp @.loop
.loop.break: pop %c ret
Hello World!
Запостил:
kcalbCube ,
30.03.2022 (Updated 30.03.2022 )
kcalbCube # 0
kcalbCube # 0 ⇈
bormand # 0
> cz
Это префикс условного исполнения?
kcalbCube # 0 ⇈
guest # 0 ⇈
kcalbCube # 0 ⇈
j123123 # 0 ⇈
kcalbCube # 0 ⇈
bormand # 0 ⇈
kcalbCube # 0 ⇈
ucnaHckuu_CTblD # 0 ⇈
kcalbCube # 0 ⇈
kcalbCube # 0 ⇈
kcalbCube # 0 ⇈
kcalbCube # 0 ⇈