王爽老师《汇编语言》第三章作业

来源:百度知道 编辑:UC知道 时间:2024/06/14 12:09:07
学习 王爽老师《汇编语言》第三章作业2009-04-07 14:01检测点3.1

(1)在Debug中,用“d 0:0 1f”查看内存,结果如下。

0000:0000 70 80 D0 30 EF 60 30 E2-00 80 80 12 66 20 22 60

0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88

下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。

mov ax,1

mov ds,ax

mov ax,[0000] AX=[2662H]

mov bx,[0001] BX=[E626H]

mov ax,bx AX=[E626H]

mov ax,[0000] AX=[2662H]

mov bx,[0002] BX=[D6E6H]

add ax,bx AX=[FD48H]

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]

提示,注意ds的设置。

(2)内存中的情况如图3.6所示。

各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0BX=0;

①写出CPU执行的指令序列(用汇编指令写出)。

②写出CPU执行每条指令后,CS,IP和相关寄存器中的数值。

我记得书上讲debug命令讲的很清楚啊?
你就不会照着来啊?
ds = 0001这个时候就是指向第二排数据了.
=============================================
=============================================
关键
(0001:0000 和 0000:0010 是一个地方.
0000:0010=00010
0001:0000=00010
地址表达式中前4位是段地址,后四位是偏移地址。
计算物理地址的公式是=段地址*10h+便宜地址
所以这两个是相同的 .)
============================================
============================================
所以ds变为1后,第二排的数据就被送如ax,bx了.
仔细琢磨琢磨
其实在电脑中数据和程序没区别.就看cs:ip.它指向哪里哪里就是要执行的代码.

mov ax,1
mov ds,ax ;(DS)=1
因为立即数不能直接送段寄存器,要达到目的,以通用寄存器为桥梁是一种普遍的做法,通用寄存器中,AX又是最快的