鱼C论坛

 找回密码
 立即注册
查看: 12875|回复: 206

王爽汇编问题

[复制链接]
发表于 2016-12-4 11:05:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
王爽汇编问题
人生日历截图20161204105858.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-4 11:06:00 | 显示全部楼层
王爽汇编问题
人生日历截图20161204105819.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-4 12:40:42 | 显示全部楼层
本帖最后由 人造人 于 2016-12-4 12:45 编辑

无标题1.png
看书59页 无标题2.png
第一步:sp=sp-2
无标题.png
无标题3.png
不管是ax还是sp,0减2就是fffe
这和ffff加1变成0,0减1变成ffff是一样的原理
无标题4.png
看ss是1000,sp变成了fffe
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-4 12:43:41 | 显示全部楼层
无标题5.png
再补一张图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-4 12:49:50 | 显示全部楼层
再补两张图
无标题6.png 无标题7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-4 13:16:19 | 显示全部楼层
无标题8.png
并没有从栈低出来呀,你指的是?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-4 13:19:44 | 显示全部楼层
无标题.png
不明白这个问题,可否举个例子?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-4 13:30:27 | 显示全部楼层
本帖最后由 人造人 于 2016-12-4 13:31 编辑

是谁告诉你段寄存器这样用的?
无标题1.png
我只知道段寄存器这样用
无标题2.png
无标题3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-4 13:33:42 | 显示全部楼层
这个也不明白
无标题4.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-4 13:45:18 | 显示全部楼层
这个如何解释呢?
无标题5.png
不是说
无标题6.png
难道是后来的cpu升级,支持了这种操作吗
如果是这样,那你的问题就出现在修改cs段寄存器上了,修改cs,ip应该使用转移指令
还有可能是虚拟86模式(Windows下的那个是虚拟86模式),我是在dos实模式下试的(虚拟机)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-4 13:51:33 | 显示全部楼层
无标题6.png
似乎是无法将立即数直接送人段寄存器,可以将内存单元中的数直接送人段寄存器 无标题7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-6 21:35:04 | 显示全部楼层
本帖最后由 wyuri 于 2016-12-6 22:15 编辑

谢谢,非常感谢, 不好意思,应该经常动手,谢谢,辛苦了,一会我研究研究怎么加分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-6 22:24:11 | 显示全部楼层
wyuri 发表于 2016-12-6 21:35
谢谢,非常感谢, 不好意思,应该经常动手,谢谢,辛苦了,一会我研究研究怎么加分

是啊,不会的问题,试一试也许就解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-6 22:24:32 | 显示全部楼层
人造人 发表于 2016-12-4 13:16
并没有从栈低出来呀,你指的是?

这个怪我,是我看错了,这个怪我不仔细,感谢感谢太感谢了,如果不说,我还不仔细看题呢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-6 22:25:47 | 显示全部楼层
wyuri 发表于 2016-12-6 22:24
这个怪我,是我看错了,这个怪我不仔细,感谢感谢太感谢了,如果不说,我还不仔细看题呢。

^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-7 11:19:34 | 显示全部楼层
本帖最后由 wyuri 于 2016-12-7 11:29 编辑


不好意思  还要问您点问题
王爽汇编第五章实验4
(3)
下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存 0:200处,不全程序上级调试,跟踪运行结果。
assume cs:code
code segement
         mov ax,code
         mov ds,ax
         mov ax,20h
         mov es,ax
         mov bx,0
         mov cx,18h
    s:mov al,[bx]                   我做的是把al改成ax
         mov es:[bx],al               我做的是把al改成ax
         inc bx                                                            我inc的是一次又不影响结果为什么没有这么做的
         loop s                                                     
         mov ax,4c00h
         int 21h
code ends                                 拜托看完整个叙述再来解释好么
end
还有第五章实验4
(1)
向内存 0:200~0:23f 一次传送数据 0~63(3fh)。
我这样做
assume cs:code
code segment
         mov ax,20h
         mov ds,ax
         mov bx,0
         mov cx,40h
s:       mov [bx],bx
         inc bx
         loop s
         mov ax,4c00h
         int 21h
code ends
end
还有第五章的5.8
将内存ffff:0~ffff:b 单元中的数据复制到 0:200~0:20b 单元中。
我这样做的而且上机跟踪结果是正确,但是为什么在书上和很多网上的答案里没有我这样的?
assume cs:code
code segment
         mov ax,0ffffh
         mov ds,ax
         mov ax,20h
         mov es,ax
         mov bx,0
         mov cx,6
  s:     mov ax,[bx]
         mov es:[bx],ax
         inc bx
         inc bx
         loop s
         mov ax,4c00h
         int 21h
code ends
end
我跟踪的结果都是正确的,但是网上没有一个这么做的 ,我怕我是错的,只是侥幸对。
别说两个操作对象位数不一直,不匹配那下面的图片怎么解释。谢谢了,辛苦再看看什么鬼的密密麻麻
QQ截图20161206144551.png
QQ截图20161206144621.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-7 13:33:02 | 显示全部楼层
本帖最后由 人造人 于 2016-12-7 13:34 编辑
wyuri 发表于 2016-12-7 11:19
不好意思  还要问您点问题
王爽汇编第五章实验4
(3)


下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存 0:200处,不全程序上级调试,跟踪运行结果。
assume cs:code
code segement
         mov ax,code
         mov ds,ax
         mov ax,20h
         mov es,ax
         mov bx,0
         mov cx,18h
    s:mov al,[bx]                   我做的是把al改成ax
         mov es:[bx],al               我做的是把al改成ax
         inc bx                                                            我inc的是一次又不影响结果为什么没有这么做的
         loop s                                                     
         mov ax,4c00h
         int 21h
code ends                                 拜托看完整个叙述再来解释好么
end

s:mov al,[bx]                   我做的是把al改成ax
         mov es:[bx],al               我做的是把al改成ax
把al改成ax后
因为 inc bx
只加了1, 无标题.png
例如
bx = 0时
0x53b8复制到es:0
es:0 的值 0xb8
es:1 的值 0x53

inc bx后
bx = 1
0x0b53复制到es:1
es:1 的值 0x53
es:2 的值 0x0b
这样就重复了一个
无标题.png
这样就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-7 13:46:39 | 显示全部楼层
wyuri 发表于 2016-12-7 11:19
不好意思  还要问您点问题
王爽汇编第五章实验4
(3)

(1)
向内存 0:200~0:23f 一次传送数据 0~63(3fh)。
我这样做
assume cs:code
code segment
         mov ax,20h
         mov ds,ax
         mov bx,0
         mov cx,40h
s:       mov [bx],bx
         inc bx
         loop s
         mov ax,4c00h
         int 21h
code ends
end

和上面是一样的问题
     mov bx,0
         mov cx,40h
s:       mov [bx],bx
         inc bx
bx是16位的
当bx = 0时
ds:0 = 0x00
ds:1 = 0x00

当bx = 1时
ds:1 = 0x01
ds:2 = 0x00

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

使用道具 举报

 楼主| 发表于 2016-12-7 13:47:38 | 显示全部楼层
本帖最后由 wyuri 于 2016-12-7 14:02 编辑
人造人 发表于 2016-12-7 13:33
下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存 0:200处,不全程序上级调试,跟踪运行结果 ...


为什么不是a+s  而是(b-a)/2,     (b-a)/2是什么意思,没太看懂   
  我好像明白点了,“a:”和“b:”表示在这个段所在的位置,而不是长度,那么应该是 mov cx,b   啊,  怎么是 mov cx,(b-a)/2呢

麻烦解释解释,辛苦了

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

使用道具 举报

 楼主| 发表于 2016-12-7 13:53:21 | 显示全部楼层
本帖最后由 wyuri 于 2016-12-7 14:07 编辑
人造人 发表于 2016-12-7 13:46
(1)
向内存 0:200~0:23f 一次传送数据 0~63(3fh)。
我这样做


但是我inc了一次就把之前的结果给盖住了

当bx = 1时                                                 inc
ds:1 = 0x01                                             bx+1
ds:2 = 0x00                                             ds:2    这个地方的位置就被盖住了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 12:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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