思考:某内存单元的段地址为12000H,偏移地址为300H, 请计算该内存单元的物理地址是多少? 实验:在 DEBUG查看该单元的内容。 12000H 物理地址PA=段地址+偏移地址 +300HI 12000+300=12300H 12300H D:> DEBUG Y 进入 DEBUG 10000H D1200:300 ;查看1200:300单元内容 +2300H D1000:2300;查看1000:2300单元内容 12300H D1230:0女 ;查看1230:0单元内容 2300H Q丝 ;退出 DEBUG OH 12300H ●不同的段地址和偏移地址构成相同的物理地址, 说明什么?它们看到的是同一个单元吗?
思考: 某内存单元的段地址为12000H, 偏移地址为 300H, 请计算该内存单元的物理地址是多少? 实验: 在DEBUG查看该单元的内容。 物理地址PA = 段地址 + 偏移地址 = 12000 + 300 = 12300H D:\> DEBUG ;进入DEBUG -D 1200:300 ;查看1200:300 单元内容 -D 1000:2300 ;查看1000:2300 单元内容 -D 1230:0 ;查看1230:0 单元内容 - Q ;退出DEBUG ⚫不同的段地址和偏移地址构成相同的物理地址, 说明什么? 它们看到的是同一个单元吗? 12000H + 300H 12300H 10000H + 2300H 12300H 12300H + 0H 12300H
物理地址相同,就选中同一单元 地址12300H=00010010001100000000B 20根地址线:A9A6A2 Ao 寄存器组 AHAL AX BX CH CX DHDL」DX IP 地址加法器 地址总线AB 指令1 地」指令2 DI BP 数据总线DB 指令3 数据暂存器 址↓指令4 译 指令队列 总线控制总线CB 数据1 运算器 接口 控制 码十数据2 电路 器数据3 指令译码器 PSW标志 寄存器 执行部件控制电路 通过此例说明,每个内存单元有唯一的物理地址 但可由不同的段地址和偏移地址构成
通过此例说明,每个内存单元有唯一的物理地址, 但可由不同的段地址和偏移地址构成。 物理地址相同,就选中同一单元 DS ES SS CS IP 数据暂存器 PSW标志 寄存器 执行部件控制电路 指令译码器 AX BX CX DX AH BH CH DH SI DI BP SP AL BL CL DL 寄存器组 指 令 队 列 总线 接口 控制 电路 运 算 器 地 址 加 法 器 、、、 指令1 指令2 指令3 指令4 、、、 数据1 数据2 数据3 、、、 地址总线AB 数据总线DB 控制总线CB 地 址 译 码 器 地址12300H = 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 B 20根地址线: A19 A16 A12 A0
实验:利用 DEBUG学习寻址方式 在 DEBUG下汇编下列指令,并查看每条指令执行后的结果: MOV BX, 2000h MOV BXL, CS 思考:如何查看指令MOBX],CS执行后的结果? 用R命令可以吗? 操作数BX]在哪里? 它的内存地址如何构成?
实验:利用DEBUG学习寻址方式 在DEBUG下汇编下列指令,并查看每条指令执行后的结果: MOV BX, 2000h MOV [BX], CS 思考:如何查看指令MOV [BX], CS 执行后的结果? 用R命令可以吗? 操作数[BX]在哪里? 它的内存地址如何构成?
D:> DEBUG冷 ;进入 DEBUG A女 ;汇编指令 126C:0100 MOV BX,2000≌ 126C:0103MOv[Bx,CS≌ 126C:0105女 R 查看指令执行前寄存器的内容 AX=0000BX=0000CX0000DX=0000SP= FFEE BE=0000SI=0000DI=0000 DS=126C ES=126C SS=126C CS=126C IP=0100 NV UPEIPLNZNA PO NC 126C:0100B83412 MOV AX,1234 DDS:2000L20女 ;查看指令执行前内存单元的内容 126C:20000044CD21881634DB-F6C2807433A033D4D.4..t3.3. 126C:2010240C7509A051DC0A-064DDC74197A21A8$.u.Q…M.tz T=100 ;单步执行指令 AX=0000BX=2000CX0000DX=0000SP= FFEE BE=0000SI=0000DI=0000 DS=126C Es=126C SS=126C CS=126C P=0103 NVUP EIPL NA PO NC 126C:01038C0F MOV BX,CS DS:2000=4400 T女 ;单步执行指令 AX=0000BX=2000CX=0000DX=0000SP= FFEE BP=0000SI=0000DI=0000 DS=126C ES=126C SS=126C CS=126C IP=0105 NV UP EI PL NZ NA PO NO 126C:01050475 ADD AL.75 -DDS:2000L10女 ;查看指令执行后内存单元的内容 126C:20006C12CD21881634DB-F6C2807433A033D4L!.4..13.3. -Q台
D:\>DEBUG ;进入DEBUG -A ;汇编指令 126C:0100 MOV BX, 2000 126C:0103 MOV [BX], CS 126C:0105 -R ;查看指令执行前寄存器的内容 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=126C ES=126C SS=126C CS=126C IP=0100 NV UP EI PL NZ NA PO NC 126C:0100 B83412 MOV AX,1234 -D DS:2000 L20 ;查看指令执行前内存单元的内容 126C:2000 00 44 CD 21 88 16 34 DB-F6 C2 80 74 33 A0 33 D4 .D.!..4....t3.3. 126C:2010 24 0C 75 09 A0 51 DC 0A-06 4D DC 74 19 7A 21 A8 $.u..Q...M.t.z!. -T=100 ;单步执行指令 AX=0000 BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=126C ES=126C SS=126C CS=126C IP=0103 NV UP EI PL NZ NA PO NC 126C:0103 8C0F MOV [BX],CS DS:2000=4400 -T ;单步执行指令 AX=0000 BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=126C ES=126C SS=126C CS=126C IP=0105 NV UP EI PL NZ NA PO NC 126C:0105 0475 ADD AL,75 -D DS:2000 L10 ;查看指令执行后内存单元的内容 126C:2000 6C 12 CD 21 88 16 34 DB-F6 C2 80 74 33 A0 33 D4 l..!..4....t3.3. -Q
下面程序段欲完成(800:4001)←(200100H),错在哪里? l.mov[800:400h],[200:100h 课外作业4讨论 2. mov ax,200:100h mov 800: 400h. ax 4. mov ax. 200h 3. mov ds, 200h mov ds. ax nov bX 100h mov ax, 800h mov ds。800h mov es. aX mov 400h bx mov es: 400h , 100h 5. mov ax. 200h mov ax. 200h 7. mov ax, 200h mov ds. ax mov ds. ax mov ds. ax mov bx, [ 100h mov bx, 100h mov bx. 100h mov ax. 800h mov ax. 800h mov ax. 800h mov ds. ax mov ds. ax mov es. aX mov ax. 400h mov Cx,400h mov si. 400h mov ax, bx mov cx. bx mov es: si. bx
下面程序段欲完成 (800:400H) ← (200:100H) , 错在哪里? 5. mov ax, 200h mov ds, ax mov bx, [100h] mov ax, 800h mov ds, ax mov ax, 400h mov [ax], bx 4. mov ax, 200h mov ds, ax mov ax, 800h mov es, ax mov es:[400h], [100h] 6. mov ax, 200h mov ds, ax mov bx, [100h] mov ax, 800h mov ds, ax mov cx, [400h] mov cx, bx 3. mov ds, 200h mov bx, [100h] mov ds, 800h mov [400h], bx 7. mov ax, 200h mov ds, ax mov bx, 100h mov ax, 800h mov es, ax mov si, 400h mov es: si, bx 2. mov ax, 200:100h mov 800:400h, ax 1. mov [800:400h], [200:100h] 课外作业4讨论