8086汇编2:补充点基础知识

(1)8086 加电启动的时候,CS为FFFFH,IP为0000H,即启动时CPU从FFFF0H单元中读取指令执行。
(2)要修改CS\IP的值时,必须使用JMP指令。格式为:jmp 段地址:偏移地址。
如果要单独修改IP,则用jmp 某一个合法的寄存器,比如mov IP,AX
(3)8086CPU有4个段寄存器,其中CS是用来存放指令的段地址,IP用于存放指令的偏移地址。任意时刻CPU将CS:IP指向的内容当作指令执行。


我们要读取10000单元的内容,可以用一下程序段进行
mov bx,1000H
mov ds,bx
mov al,[0]


MOV作用:
(1)将数据直接送入寄存器
(2)将一个寄存器的内容存入另外寄存器
(3)强内存单元的内容送入一个寄存器。mov al,[0];中括号表示偏移地址
MOV指令的几种形式:
mov 寄存器,数据
mov 寄存器,寄存器
mov 寄存器,[内存单元]//注意是偏移地址
mov [内存单元],寄存器
mov 段寄存器,寄存器


思考: mov 寄存器,段寄存器  这个指令正确吗?  答案:可以执行






-----------------------------------------------------------
(4)8086不支持将地址送到段寄存器,硬件设计上就是非法的,必须通过通用寄存器再转存到段寄存器。
(5) 注意,读取2个字节时,都是读取低字节(偶地址)
mov ax,[0]//读取1,0
mov ax,[2]//读取3,2
在内存和寄存器之间存送字形数据时,高地址单元和高8位寄存器、低地址与低8位寄存器相对应
-----------------------------------------------------------------------------------------------------
 (6)栈的指令为:push   pop,操作时是以字为单元的
段寄存器SS:保存栈顶段地址
SP:存放栈顶的偏移地址


如果栈为空,则SP指向栈顶的下一个地址



















































































你可能感兴趣的:(汇编与反汇编)