summaryrefslogtreecommitdiff
path: root/data/simulating_memory
diff options
context:
space:
mode:
Diffstat (limited to 'data/simulating_memory')
-rw-r--r--data/simulating_memory/listing_0051_memory_movbin0 -> 48 bytes
-rw-r--r--data/simulating_memory/listing_0051_memory_mov.asm30
-rw-r--r--data/simulating_memory/listing_0051_memory_mov.txt19
-rw-r--r--data/simulating_memory/listing_0052_memory_add_loopbin0 -> 35 bytes
-rw-r--r--data/simulating_memory/listing_0052_memory_add_loop.asm36
-rw-r--r--data/simulating_memory/listing_0052_memory_add_loop.txt43
-rw-r--r--data/simulating_memory/listing_0053_add_loop_challengebin0 -> 33 bytes
-rw-r--r--data/simulating_memory/listing_0053_add_loop_challenge.asm35
-rw-r--r--data/simulating_memory/listing_0053_add_loop_challenge.txt36
9 files changed, 199 insertions, 0 deletions
diff --git a/data/simulating_memory/listing_0051_memory_mov b/data/simulating_memory/listing_0051_memory_mov
new file mode 100644
index 0000000..6907cff
--- /dev/null
+++ b/data/simulating_memory/listing_0051_memory_mov
Binary files differ
diff --git a/data/simulating_memory/listing_0051_memory_mov.asm b/data/simulating_memory/listing_0051_memory_mov.asm
new file mode 100644
index 0000000..d27e348
--- /dev/null
+++ b/data/simulating_memory/listing_0051_memory_mov.asm
@@ -0,0 +1,30 @@
+; ========================================================================
+;
+; (C) Copyright 2023 by Molly Rocket, Inc., All Rights Reserved.
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Please see https://computerenhance.com for further information
+;
+; ========================================================================
+
+; ========================================================================
+; LISTING 51
+; ========================================================================
+
+bits 16
+
+mov word [1000], 1
+mov word [1002], 2
+mov word [1004], 3
+mov word [1006], 4
+
+mov bx, 1000
+mov word [bx + 4], 10
+
+mov bx, word [1000]
+mov cx, word [1002]
+mov dx, word [1004]
+mov bp, word [1006]
diff --git a/data/simulating_memory/listing_0051_memory_mov.txt b/data/simulating_memory/listing_0051_memory_mov.txt
new file mode 100644
index 0000000..e1ce4b0
--- /dev/null
+++ b/data/simulating_memory/listing_0051_memory_mov.txt
@@ -0,0 +1,19 @@
+--- test\listing_0051_memory_mov execution ---
+mov word [+1000], 1 ; ip:0x0->0x6
+mov word [+1002], 2 ; ip:0x6->0xc
+mov word [+1004], 3 ; ip:0xc->0x12
+mov word [+1006], 4 ; ip:0x12->0x18
+mov bx, 1000 ; bx:0x0->0x3e8 ip:0x18->0x1b
+mov word [bx+4], 10 ; ip:0x1b->0x20
+mov bx, [+1000] ; bx:0x3e8->0x1 ip:0x20->0x24
+mov cx, [+1002] ; cx:0x0->0x2 ip:0x24->0x28
+mov dx, [+1004] ; dx:0x0->0xa ip:0x28->0x2c
+mov bp, [+1006] ; bp:0x0->0x4 ip:0x2c->0x30
+
+Final registers:
+ bx: 0x0001 (1)
+ cx: 0x0002 (2)
+ dx: 0x000a (10)
+ bp: 0x0004 (4)
+ ip: 0x0030 (48)
+
diff --git a/data/simulating_memory/listing_0052_memory_add_loop b/data/simulating_memory/listing_0052_memory_add_loop
new file mode 100644
index 0000000..1f6d274
--- /dev/null
+++ b/data/simulating_memory/listing_0052_memory_add_loop
Binary files differ
diff --git a/data/simulating_memory/listing_0052_memory_add_loop.asm b/data/simulating_memory/listing_0052_memory_add_loop.asm
new file mode 100644
index 0000000..189ed32
--- /dev/null
+++ b/data/simulating_memory/listing_0052_memory_add_loop.asm
@@ -0,0 +1,36 @@
+; ========================================================================
+;
+; (C) Copyright 2023 by Molly Rocket, Inc., All Rights Reserved.
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Please see https://computerenhance.com for further information
+;
+; ========================================================================
+
+; ========================================================================
+; LISTING 52
+; ========================================================================
+
+bits 16
+
+mov dx, 6
+mov bp, 1000
+
+mov si, 0
+init_loop_start:
+ mov word [bp + si], si
+ add si, 2
+ cmp si, dx
+ jnz init_loop_start
+
+mov bx, 0
+mov si, 0
+add_loop_start:
+ mov cx, word [bp + si]
+ add bx, cx
+ add si, 2
+ cmp si, dx
+ jnz add_loop_start
diff --git a/data/simulating_memory/listing_0052_memory_add_loop.txt b/data/simulating_memory/listing_0052_memory_add_loop.txt
new file mode 100644
index 0000000..14da357
--- /dev/null
+++ b/data/simulating_memory/listing_0052_memory_add_loop.txt
@@ -0,0 +1,43 @@
+--- test\listing_0052_memory_add_loop execution ---
+mov dx, 6 ; dx:0x0->0x6 ip:0x0->0x3
+mov bp, 1000 ; bp:0x0->0x3e8 ip:0x3->0x6
+mov si, 0 ; ip:0x6->0x9
+mov word [bp+si], si ; ip:0x9->0xb
+add si, 2 ; si:0x0->0x2 ip:0xb->0xe
+cmp si, dx ; ip:0xe->0x10 flags:->CPAS
+jne $-7 ; ip:0x10->0x9
+mov word [bp+si], si ; ip:0x9->0xb
+add si, 2 ; si:0x2->0x4 ip:0xb->0xe flags:CPAS->
+cmp si, dx ; ip:0xe->0x10 flags:->CAS
+jne $-7 ; ip:0x10->0x9
+mov word [bp+si], si ; ip:0x9->0xb
+add si, 2 ; si:0x4->0x6 ip:0xb->0xe flags:CAS->P
+cmp si, dx ; ip:0xe->0x10 flags:P->PZ
+jne $-7 ; ip:0x10->0x12
+mov bx, 0 ; ip:0x12->0x15
+mov si, 0 ; si:0x6->0x0 ip:0x15->0x18
+mov cx, [bp+si] ; ip:0x18->0x1a
+add bx, cx ; ip:0x1a->0x1c
+add si, 2 ; si:0x0->0x2 ip:0x1c->0x1f flags:PZ->
+cmp si, dx ; ip:0x1f->0x21 flags:->CPAS
+jne $-9 ; ip:0x21->0x18
+mov cx, [bp+si] ; cx:0x0->0x2 ip:0x18->0x1a
+add bx, cx ; bx:0x0->0x2 ip:0x1a->0x1c flags:CPAS->
+add si, 2 ; si:0x2->0x4 ip:0x1c->0x1f
+cmp si, dx ; ip:0x1f->0x21 flags:->CAS
+jne $-9 ; ip:0x21->0x18
+mov cx, [bp+si] ; cx:0x2->0x4 ip:0x18->0x1a
+add bx, cx ; bx:0x2->0x6 ip:0x1a->0x1c flags:CAS->P
+add si, 2 ; si:0x4->0x6 ip:0x1c->0x1f
+cmp si, dx ; ip:0x1f->0x21 flags:P->PZ
+jne $-9 ; ip:0x21->0x23
+
+Final registers:
+ bx: 0x0006 (6)
+ cx: 0x0004 (4)
+ dx: 0x0006 (6)
+ bp: 0x03e8 (1000)
+ si: 0x0006 (6)
+ ip: 0x0023 (35)
+ flags: PZ
+
diff --git a/data/simulating_memory/listing_0053_add_loop_challenge b/data/simulating_memory/listing_0053_add_loop_challenge
new file mode 100644
index 0000000..0678532
--- /dev/null
+++ b/data/simulating_memory/listing_0053_add_loop_challenge
Binary files differ
diff --git a/data/simulating_memory/listing_0053_add_loop_challenge.asm b/data/simulating_memory/listing_0053_add_loop_challenge.asm
new file mode 100644
index 0000000..f1ec802
--- /dev/null
+++ b/data/simulating_memory/listing_0053_add_loop_challenge.asm
@@ -0,0 +1,35 @@
+; ========================================================================
+;
+; (C) Copyright 2023 by Molly Rocket, Inc., All Rights Reserved.
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Please see https://computerenhance.com for further information
+;
+; ========================================================================
+
+; ========================================================================
+; LISTING 53
+; ========================================================================
+
+bits 16
+
+mov dx, 6
+mov bp, 1000
+
+mov si, 0
+init_loop_start:
+ mov word [bp + si], si
+ add si, 2
+ cmp si, dx
+ jnz init_loop_start
+
+mov bx, 0
+mov si, dx
+sub bp, 2
+add_loop_start:
+ add bx, word [bp + si]
+ sub si, 2
+ jnz add_loop_start
diff --git a/data/simulating_memory/listing_0053_add_loop_challenge.txt b/data/simulating_memory/listing_0053_add_loop_challenge.txt
new file mode 100644
index 0000000..79ead2b
--- /dev/null
+++ b/data/simulating_memory/listing_0053_add_loop_challenge.txt
@@ -0,0 +1,36 @@
+--- test\listing_0053_add_loop_challenge execution ---
+mov dx, 6 ; dx:0x0->0x6 ip:0x0->0x3
+mov bp, 1000 ; bp:0x0->0x3e8 ip:0x3->0x6
+mov si, 0 ; ip:0x6->0x9
+mov word [bp+si], si ; ip:0x9->0xb
+add si, 2 ; si:0x0->0x2 ip:0xb->0xe
+cmp si, dx ; ip:0xe->0x10 flags:->CPAS
+jne $-7 ; ip:0x10->0x9
+mov word [bp+si], si ; ip:0x9->0xb
+add si, 2 ; si:0x2->0x4 ip:0xb->0xe flags:CPAS->
+cmp si, dx ; ip:0xe->0x10 flags:->CAS
+jne $-7 ; ip:0x10->0x9
+mov word [bp+si], si ; ip:0x9->0xb
+add si, 2 ; si:0x4->0x6 ip:0xb->0xe flags:CAS->P
+cmp si, dx ; ip:0xe->0x10 flags:P->PZ
+jne $-7 ; ip:0x10->0x12
+mov bx, 0 ; ip:0x12->0x15
+mov si, dx ; ip:0x15->0x17
+sub bp, 2 ; bp:0x3e8->0x3e6 ip:0x17->0x1a flags:PZ->
+add bx, [bp+si] ; bx:0x0->0x4 ip:0x1a->0x1c
+sub si, 2 ; si:0x6->0x4 ip:0x1c->0x1f
+jne $-5 ; ip:0x1f->0x1a
+add bx, [bp+si] ; bx:0x4->0x6 ip:0x1a->0x1c flags:->P
+sub si, 2 ; si:0x4->0x2 ip:0x1c->0x1f flags:P->
+jne $-5 ; ip:0x1f->0x1a
+add bx, [bp+si] ; ip:0x1a->0x1c flags:->P
+sub si, 2 ; si:0x2->0x0 ip:0x1c->0x1f flags:P->PZ
+jne $-5 ; ip:0x1f->0x21
+
+Final registers:
+ bx: 0x0006 (6)
+ dx: 0x0006 (6)
+ bp: 0x03e6 (998)
+ ip: 0x0021 (33)
+ flags: PZ
+