第三章.md

第三章 寄存器

内存中字的存储

1566611889156

1566611907195在此图中,1地址字型为124EH,2地址字型为0012H


DS和[address]

ds作为段地址,address为偏移地址,同cs

ds --> data segment

1566612238918将1000H:0的内容读入al中

改变DS内容需要首先将数据存入通用寄存器,不能直接存入

将数据存入内存单元

mov bx, 1000H
mov ds, bx
mov [0], al

字的传送

1566613572822对于读取地址来说,读取字(两个字节),要高一位,同本章内存中字的存储

如:mov ax,[0] #ds = 1000H

ax = 1123H


mov, add, sub 指令

1566613954986


数据段

1566614064908

1566614105983


小结

1566614412695


栈 (后进先出LIFO)

push ax

pop ax

8086cpu对栈的操作都是已字为单位进行(ax就是字型啊(づ ̄3 ̄)づ╭❤~)

1566614930238

1566615110751

push: sp = sp - 2

pop: sp = sp + 2

栈为空时,sp指向栈最底部单元(字节)+ 1

1566615408287

1566642429559


栈顶越界

8086CPU没有检测栈越界机制

1566642878122


push pop

push [0]

pop [0] 由ds地址给出

1566643730265


1566644525285

原文地址:https://www.cnblogs.com/nsfoxer/p/14353836.html