已知,(ds)=2000h,(bx)=100h,(si)=02h,从物理地址20100h单元开始,依次存放数据12h
时间: 2023-09-04 10:08:44 浏览: 182
这是一个关于8086处理器内存寻址的问题。根据题意,可以得出以下信息:
- (ds) = 2000h:数据段寄存器(ds)中存放的段地址为2000h。
- (bx) = 100h:基址寄存器(bx)中存放的偏移地址为100h。
- (si) = 02h:源变址寄存器(si)中存放的偏移地址为02h。
- 从物理地址20100h单元开始:数据存放的起始物理地址为20100h。
根据8086处理器的内存寻址方式,可以得出数据存放的起始逻辑地址为:
```
起始逻辑地址 = (ds) x 10h + (bx) + (si)
= 2000h x 10h + 100h + 02h
= 20020h
```
因此,数据存放的起始逻辑地址为20020h,依次存放的数据为12h。
相关问题
已知,(DS)=2000H,(BX)=100H,(SI)=02H,从物理地址20100H单元开始,依次存放数据12H、34H、56H、78H;而从物理地址21200H单元开始,依次存放数据2AH、4CH、8BH、98H。试说明下列各条指令单独执行后AX寄存器的内容
这是一个8086处理器的内存操作问题。根据题目给出的信息,我们可以得到以下数据存放的起始逻辑地址:
- 起始逻辑地址1 = (DS) x 10h + (BX) + (SI) = 2000h x 10h + 100h + 02h = 20020h
- 起始逻辑地址2 = (DS) x 10h + (BX) + (SI) = 2000h x 10h + 100h + 02h = 20020h
因此,第一组数据存放的起始逻辑地址为20020h,第二组数据存放的起始逻辑地址为21202h。
下面分别说明各条指令单独执行后AX寄存器的内容:
1. MOV AX, [20020h]
这条指令从逻辑地址20020h处读取一个字(word)数据,并将其存入AX寄存器中。因为20020h单元存放的数据为12h、34h,所以执行完这条指令后,AX寄存器的内容为3412h。
2. MOV AX, [21202h]
这条指令从逻辑地址21202h处读取一个字(word)数据,并将其存入AX寄存器中。因为21202h单元存放的数据为2Ah、4Ch,所以执行完这条指令后,AX寄存器的内容为4C2Ah。
3. ADD AX, [20022h]
这条指令将逻辑地址20022h处的一个字数据加到AX寄存器中的内容上。因为20022h单元存放的数据为56h、78h,所以执行完这条指令后,AX寄存器的内容为3412h + 7856h = A368h。
4. SUB AX, [21204h]
这条指令将逻辑地址21204h处的一个字数据从AX寄存器中的内容中减去。因为21204h单元存放的数据为8Bh、98h,所以执行完这条指令后,AX寄存器的内容为4C2Ah - 988Bh = C3A5h。
因此,各条指令单独执行后AX寄存器的内容分别为:
1. 3412h
2. 4C2Ah
3. A368h
4. C3A5h
在汇编语言中,已知DS=3000H,BX=4000H,SI=01H,字节单元(34000H)=11H,(34001H)=22H,(340002H)=33H,(34003H)=44H,(34004H)=55H,执行指令JMP WORD PTR[BX]之后IP和CS值是多少
根据题目中给出的信息,DS=3000H,BX=4000H,SI=01H,字节单元(34000H)=11H,(34001H)=22H,(340002H)=33H,(34003H)=44H,(34004H)=55H,执行指令JMP WORD PTR[BX]之后IP和CS的值如下:
1. 由于JMP指令需要跳转到一个地址,因此需要将[BX]中的值作为跳转地址。由于[BX]是一个字节指针,因此需要根据段地址DS和偏移地址BX计算跳转地址。
跳转地址 = DS * 16 + BX = 3000H * 16 + 4000H = 70000H
2. JMP指令会跳转到跳转地址处执行,因此IP应该被设置为跳转地址的偏移地址,即IP=70000H mod 10000H = 0000H(这里对16位寄存器的最大值FFFFH取模,得到的结果是0000H)
3. 跳转地址的段地址应该是跳转指令的下一条指令的段地址,即CS=IP+2=0002H
因此,执行指令JMP WORD PTR[BX]之后IP=0000H,CS=0002H。
阅读全文