1、写出CPU执行的指令序列(用汇编指令写出)
因为初始值:CS:IP=2000H:0000,所有执行从CS:IP指向的内存单元读取指令所以第一条为:
mov ax,6622 ax=6622H 当前CS=2000H,IP=0000H,则CPU从内存 2000H*16+0=20000H处读取指令,读入后IP=IP+3=0003H
jmp 0fff:0100 执行指令后CS=2000H,IP=0003H,则CPU从内存 2000H*16+0003H=20003H处读取指令,读入后 IP=IP+5=0008H,0ff:0100=0ff0H*16+0100H=10000H
mov ax,2000H AX=2000H 执行指令后CS=1000H,IP=0000H,则 CPU从内存,1000H*16+0000=10000H处读取指令,读入后 IP=IP+3=0003H
mov ds,ax DS=2000H,执行指令后CS=1000H,IP=0003H,则CPU从 内存,1000H*16+0003=10003H处读取指令,读入后 IP=IP+2=0005H
mov ax,[0008] AX=C189H,执行指令后CS=1000H,IP=0005H,则 CPU从内存,1000H*16+0005=10005H处读取指令,读入后 IP=IP+3=0008H
mov ax,[0002] AX=EA66H,执行指令后CS=1000H,IP=0008H,则 CPU从内存,1000H*16+0008=10008H处读取指令,读入后 IP=IP+3=0011H
3、CS是告诉CPU,去哪个位置找内容当成指令去执行
DS是告诉CPU,去哪个位置找内容当成数据被使用
- [sunbird333] 64.. or 40h.. 12/09 01:02
- [游客] (2)有一数据存放在内存20000H单元中,给定段地址为SA,若想用偏移地址寻此单元,则SA应满足的 07/28 23:17
- [crazyman] 程序正确。 继续吧。 05/14 10:04
- [zbyhxh] 开始我用栈段作了但是结果是逆序存储,所以我改成了现在这样,按顺序排列 05/07 19:45
- [black] 具体的细节,楼主仔细考虑一下 05/07 12:22
- [black] 5,可以考虑使用栈段,把c段 当作栈来使用,每次前两个段的计算结果,可以push到c中--当然前面两 05/07 12:19
- [crazyman] loop s ;cx-2>0继续执行s ------------- cx-1 > 05/04 21:25
- [mess] 36h? ----题目中说:依次传送数据0-63(3fh)0-63(3fh) 难道不是(3fH 05/03 11:35
- [游客] mov cx,36 --- 应该是36h。 05/03 11:31
- [ppt] jmp 0fff:0100 执行指令后CS=2000H,IP=0003H,则CPU从内存 04/25 21:27