title: 汇编笔记_第二章
date: 2018-12-25 14:39:23
tags:
8086寄存器组
一共14个寄存器
段名 | 段寄存器 | 偏移地址 |
---|---|---|
代码段 | CS | IP |
数据段 | DS | BX,SI,DI等地址寄存器 |
附加段 | ES | BX,SI,DI等地址寄存器 |
堆栈段 | SS | SP或BP |
解:物理地址=SA*16+EA
EA变化范围为0H~FFFFH
所以物理地址的变化范围为:\((0001H*16 + 0H)~(0001H*16 + FFFFH)\);
就是00010H~1000FH;
解;
\[\mathrm{
20000H=SA*16+EA
}\]
\[\mathrm{
SA = (20000H - EA)/16
}\]
\[\mathrm{
SA = 2000H - EA/16
}\]
\[\mathrm{
EA\in[0000H , FFFFH]
}\]
\[\mathrm{
SA\in[1001H , 2000H]
}\]
jmp 段地址:偏移地址//同时修改CS、IP
,jmp 寄存器//用寄存器中的值修改IP
操作数的物理地址=段地址*10H + EA
mov al,5
mov ax,3060H
mov ax,bx
mov ax,ds:[2000H]
mov ds:[4000H],ax
mov ax,[value]
mov ax,es:[value]
mov ax,[bx]
\(操作数的物理地址=(ds)*10H + \{(bx) , (si) , (di)\};\)
\(操作数的物理地址=(ss)*10H + (bp);\)
四个间接寻址寄存器:BX , BP , SI , DI;
mov ax,[bx]
指令执行前:
\(DS = 1500H\)
\(BX = 4580H\)
\(AX = 1010H\)
\(19580H = 64H\)
\(19581H = 23H\)
\(EA = BX = 4580H\)
指令执行后:
\(AX = 2364H\)
mov AX,TOP[SI]
指令执行前;
\(DS =1500H\)
\(SI = 7310H\)
\(AX = 1010H\)
\(TOP = 25H\)
\(1C335H = 28H\)
\(1C336H = 24H\)
\(EA = TOP + SI = 7335H\)
指令执行后;
\(AX = 2428H\)
mov AX,[BX + DI]
执行前:
\(DS = 2100H\)
\(BX = 0158H\)
\(DI = 10A5H\)
\(AX = 0FFFFH\)
\(221FDH = 34H\)
\(221FE - 12H\)
有效地址:
\(EA=BX+DI=0158+10A5=11FDH\)
\(物理地址=21000 + 11FD = 221FDH\)
执行后:
\(AX=1234H\)
mov AX,MASJ[BX[SI]
mov AX,[MASK + BX + SI]
mov AX,[BX + SI].MASK
有效地址:
\(EA = MASK + BX + SI\)
\(物理地址=DS + EA\)
看不懂233,,,,,
(end)
原文:https://www.cnblogs.com/31415926535x/p/10175441.html