鱼C论坛

 找回密码
 立即注册
查看: 13009|回复: 27

[汇编作业] 求汇编检测点3.1答案与解析

[复制链接]
发表于 2014-9-10 12:32:31 | 显示全部楼层 |阅读模式
3鱼币
请前辈指教,关于汇编语言第三版检测点3.1的答案与解析

本帖被以下淘专辑推荐:

  • · 汇编|主题: 1, 订阅: 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-10 20:13:06 | 显示全部楼层
mov ax,[0000]   那么答案是0870H才对啊。为什么是2662H呢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-11 14:04:10 | 显示全部楼层
内存,结果如下:  
0000:0000 70 80 F0 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  

mov ax,1
mov ds,ax
这个就是段地址ds为 0001

所以mov ax,[0000] ,你可以理解为 0001:0000 或 0000:0010
因为这2种表达方式所算出的物理地址都是同一个 00010

0001:0000  :  0001 X 16 + 0000 = 00010
0000:0010 :   0000 X 16 + 0010 = 00010

明白了?

打了这么多字,很辛苦的,下次多给点鱼币啊啊啊啊啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-9-13 15:25:11 | 显示全部楼层
選擇ゞ忘記 发表于 2014-9-11 14:04
内存,结果如下:  
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60  
0000:0010 62 26 E6 D6 ...

谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-17 10:28:43 | 显示全部楼层
检测点3.1
(1)  在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:
0000:0000 70 80 F0 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=   0   
mov al,[0002]  ax= 00e6H
mov bx,0       bx=   0   
mov bl,[000c]  bx= 0026H
add al,bl      ax= 000CH

用DEBUG进行验证:
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.
C:\DOCUME~1\000>debug
-e 0000:0
0000:0000  68.70   10.80   A7.f0   00.30   8B.ef   01.60   70.30   00.e2
0000:0008  16.00   00.80   AF.80   03.12   8B.66   01.20   70.22   00.60
0000:0010  8B.62   01.26   70.e6   00.d6   B9.cc   06.2e   14.3c   02.3b
0000:0018  40.ab   07.ba   14.00   02.00   FF.26   03.06   14.66   02.88
-d 0000:0 1f
0000:0000  70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60   p..0.`0.....f "`
0000:0010  62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88   b&....<;....&.f.
-a
0DB4:0100 mov ax,1
0DB4:0103 mov ds,ax
0DB4:0105 mov ax,[0000]
0DB4:0108 mov bx,[0001]
0DB4:010C mov ax,bx
0DB4:010E mov ax,[0000]
0DB4:0111 mov bx,[0002]
0DB4:0115 add ax,bx
0DB4:0117 add ax,[0004]
0DB4:011B mov ax,0
0DB4:011E mov al,[0002]
0DB4:0121 mov bx,0
0DB4:0124 mov bl,[000c]
0DB4:0128 add al,bl
0DB4:012A
-r
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0DB4  ES=0DB4  SS=0DB4  CS=0DB4  IP=0100   NV UP EI PL NZ NA PO NC
0DB4:0100 B80100        MOV     AX,0001
-t
AX=0001  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0DB4  ES=0DB4  SS=0DB4  CS=0DB4  IP=0103   NV UP EI PL NZ NA PO NC
0DB4:0103 8ED8          MOV     DS,AX
-t
AX=0001  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0105   NV UP EI PL NZ NA PO NC
0DB4:0105 A10000        MOV     AX,[0000]                          DS:0000=2662
-t
AX=2662  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0108   NV UP EI PL NZ NA PO NC
0DB4:0108 8B1E0100      MOV     BX,[0001]                          DS:0001=E626
-t
AX=2662  BX=E626  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=010C   NV UP EI PL NZ NA PO NC
0DB4:010C 89D8          MOV     AX,BX
-t
AX=E626  BX=E626  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=010E   NV UP EI PL NZ NA PO NC
0DB4:010E A10000        MOV     AX,[0000]                          DS:0000=2662
-t
AX=2662  BX=E626  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0111   NV UP EI PL NZ NA PO NC
0DB4:0111 8B1E0200      MOV     BX,[0002]                          DS:0002=D6E6
-t
AX=2662  BX=D6E6  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0115   NV UP EI PL NZ NA PO NC
0DB4:0115 01D8          ADD     AX,BX
-t
AX=FD48  BX=D6E6  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0117   NV UP EI NG NZ NA PE NC
0DB4:0117 03060400      ADD     AX,[0004]                          DS:0004=2ECC
-t
AX=2C14  BX=D6E6  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=011B   NV UP EI PL NZ AC PE CY
0DB4:011B B80000        MOV     AX,0000
-t
AX=0000  BX=D6E6  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=011E   NV UP EI PL NZ AC PE CY
0DB4:011E A00200        MOV     AL,[0002]                          DS:0002=E6
-t
AX=00E6  BX=D6E6  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0121   NV UP EI PL NZ AC PE CY
0DB4:0121 BB0000        MOV     BX,0000
-t
AX=00E6  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0124   NV UP EI PL NZ AC PE CY
0DB4:0124 8A1E0C00      MOV     BL,[000C]                          DS:000C=26
-t
AX=00E6  BX=0026  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=0128   NV UP EI PL NZ AC PE CY
0DB4:0128 00D8          ADD     AL,BL
-t
AX=000C  BX=0026  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0001  ES=0DB4  SS=0DB4  CS=0DB4  IP=012A   NV UP EI PL NZ NA PE CY
0DB4:012A C6061799FF    MOV     BYTE PTR [9917],FF                 DS:9917=9A
-q

检测点3.1
(2) 内存中的情况如图3.6所示
各寄存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0;
①   写出CPU执行的指令序列(用汇编指令写出)。
②   写出CPU执行每条指令后,CS、IP和相关寄存器的数值。
③   再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?

图3.6内存情况示意

指令序列        CS        IP        DS        AX        BX
初始值        2000h        0        0        0        0
1        mov ax,6622h        2000h        3h        0        6622h        0
2        jmp 0ff0:0100        ff0h        100h        0        6622h        0
3        mov ax,2000h        ff0h        103h        0        2000h        0
4        mov ds,ax        ff0h        105h        2000h        2000h        0
5        mov ax,[8]        ff0h        108h        2000h        c389h        0
6        mov ax,[2]        ff0h        10bh        2000h        ea66h        0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-24 17:17:15 | 显示全部楼层
15801861509 发表于 2014-9-10 20:13
mov ax,[0000]   那么答案是0870H才对啊。为什么是2662H呢。

前面mov ax,1 mov ds,ax,这两句已经把DS的段地址设置为0001,运行mov ax,[0000]时的物理地址应该为00010,不知道你能不能想明白,仔细想想
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-25 21:58:31 | 显示全部楼层
mingbai
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-24 16:14:30 | 显示全部楼层
mingbai         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-26 13:45:13 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-26 20:08:40 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-30 22:24:38 | 显示全部楼层
ca 你再看几遍书
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-19 19:23:35 | 显示全部楼层
qkqpihumq 发表于 2014-9-17 10:28
检测点3.1
(1)  在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 ...

感谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-19 19:26:30 | 显示全部楼层

不对,为什么指令 mov bx,ax 这一条指令不要写上去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-20 03:12:45 | 显示全部楼层
内存,结果如下:  
0000:0000 70 80 F0 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  

mov ax,1
mov ds,ax
这个就是段地址ds为 0001

所以mov ax,[0000] ,你可以理解为 0001:0000 或 0000:0010
因为这2种表达方式所算出的物理地址都是同一个 00010

0001:0000  :  0001 X 16 + 0000 = 00010
0000:0010 :   0000 X 16 + 0010 = 00010
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-18 23:30:49 | 显示全部楼层
有没有检测的3.1全部解释吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-18 23:32:20 | 显示全部楼层
检测点3.1
(2) 内存中的情况如图3.6所示
各寄存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0;
①   写出CPU执行的指令序列(用汇编指令写出)。
②   写出CPU执行每条指令后,CS、IP和相关寄存器的数值。
③   再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?

图3.6内存情况示意

指令序列        CS        IP        DS        AX        BX
初始值        2000h        0        0        0        0
1        mov ax,6622h        2000h        3h        0        6622h        0
2        jmp 0ff0:0100        ff0h        100h        0        6622h        0
3        mov ax,2000h        ff0h        103h        0        2000h        0
4        mov ds,ax        ff0h        105h        2000h        2000h        0
5        mov ax,[8]        ff0h        108h        2000h        c389h        0
6        mov ax,[2]        ff0h        10bh        2000h        ea66h        0
我做的为什么不和这个一样呢 有没有详细的解释?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-19 16:25:31 | 显示全部楼层
IP 0100
:0
-r ds
DS 1390
:1000
-r
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1000  ES=1390  SS=1390  CS=2000  IP=0000   NV UP EI PL NZ NA PO NC
2000:0000 B82266        MOV     AX,6622
-t

AX=6622  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1000  ES=1390  SS=1390  CS=2000  IP=0003   NV UP EI PL NZ NA PO NC
2000:0003 EA0001F00F    JMP     0FF0:0100
-t

AX=6622  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1000  ES=1390  SS=1390  CS=0FF0  IP=0100   NV UP EI PL NZ NA PO NC
0FF0:0100 16            PUSH    SS
-t

AX=6622  BX=0000  CX=0000  DX=0000  SP=FFEC  BP=0000  SI=0000  DI=0000
DS=1000  ES=1390  SS=1390  CS=0FF0  IP=0101   NV UP EI PL NZ NA PO NC
0FF0:0101 A4            MOVSB
我做的为什么和答案不一样呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-21 19:07:41 | 显示全部楼层
我还是不明白  小甲鱼 能讲讲吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-14 00:23:28 | 显示全部楼层
谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-29 17:19:40 | 显示全部楼层
感谢3楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 14:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表