用汇编语言8086创建链表

时间:2014-11-23 13:35:18

标签: assembly linked-list x86 x86-16

您可以在特定的内存位置/地址中读写数据/字符串吗?我计划在8086制作一个链表,但我不知道如何从特定的内存地址读取数据以及如何使用相同的变量将数据存储在不同的内存地址中。这可能吗?如果有,怎么样?

2 个答案:

答案 0 :(得分:0)

当然可以,例如

mov di, [di]
mov di, [di]

通过链接列表推进几个地方,其中next链接是节点中的第一个链接(如果它不是,则添加常量偏移量)。

这里一个更大的问题是分配和解除分配这些节点。

答案 1 :(得分:0)

您可以像这样链接元素:

jmp start
element0 db 10
element1 db "jsdafélasjfdélasjd"
element2 db "lkjfasljf"
element3 db 12, 34
element4 db  "asfd"
;etc.
links:
dw element0
dw element1
dw element2
dw element3
dw element4
start:
push cs
pop ds
lea si, links
add si, (3*2)
;si is now set to the offset of element3

如果程序将插入新元素,那么在列表结尾后留下足够的位置非常重要。