(1)下面的程序执行前,AX=0,BX=0,写出每条指令执行完后相关的寄存器的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662H
mov bx,[0001] BX=0E626H
mov ax,bx AX=0E626H
mov ax,[0000] AX=2662H
mov bx,[0002] BX=0D6E6H
add ax,bx AX=0FD48H
add ax,[0004] AX=2C14H
mov ax,0 AX=0000H
mov al,[0002] AX=00E6H
mov bx,0 BX=0000H
mov bl,[000c] BX=0026H
add al,bl AX=000CH
(2)各寄存器的初值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0
1.写出CPU执行的指令序列(用汇编指令写出)
2.写出CPU执行每条指令后,CS,IP和相关寄存器中的值。
3.再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?
1.
指令序列
MOV AX,6622H
JMP OFFO:0100
MOV AX,2000H
MOV DS,AX
MOV AX,[0008]
MOV AX,[0002]
2.
执行完MOV AX,6622H 后CS=2000H,IP=0003H,AX=6622H
执行完JMP OFFO:0100 后CS=0FF0H,IP=0100H,AX=6622H
执行完MOV AX,2000H 后CS=0FF0H,IP=0103H,AX=2000H
执行完MOV DS,AX 后,CS=0FF0,IP=0105H,AX=2000H,DS=2000H
执行完MOV AX,[0008] 后,CS=0FF0,IP=0108H,AX=C389H,DS=2000H
执行完MOV AX,[0002]后,CS=0FF0H,IP=010BH,AX=0EA66H,DS=2000H,
3.
在计算机的内存中数据和程序是没有区别的,被CS:IP指向过的内存单元的信息CPU把它看做指令,没有被CS:IP指向过的内存单元的信息CPU把它当做数据处理。
- [tomato] 博主好久都没来过了!怎么今天有空冒个泡? 04/04 22:26
- [zouhehui] 我想请教一下:指令缓冲寄存器跟指令缓冲器的区别在哪里?谢谢! 关于描叙语言我在一些汇编语言的书上看 12/09 21:59
- [zhouhanhui] 不是指令缓冲寄存器而是指令缓冲器,描述符号应是(IP)=(AX)我个人认为使用描述符号这主要是与C语 12/09 12:24
- [游客] 互相帮助。 12/05 10:24
- [suixin] 客气 12/04 22:12
- [zouhehui] 呵呵,谢谢! 12/04 18:04
- [zouhehui] 呵呵,谢谢你们替我看作业! 12/04 17:54
- [suixin] 谢谢你 12/04 14:37
- [suixin] 我知道了错误处在那里了 MOV AX,1000H MOV SS,AX MOV SP,0 12/04 14:36
- [suixin] 你说说你的看法 12/04 14:29
- [suixin] 过奖了,我们都需要努力 11/30 21:58
- [suixin] 我们两人把这本中的内容都给概括了,呵呵 11/30 08:12