. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  为什么add/sub指令不能对DS操作  [已解决] 回复[ 5次 ]   点击[ 298次 ]  
regex
[帖 主]   [ 发表时间:2009-12-28 14:29 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
在复习第三章的时候有个问题
我们知道,mov指令可以完成寄存器到段寄存器DS的操作。 即:
mov ds,ax
而add/sub指令则不行。 这是为什么呢?
标准的说法也许是8086CPU没提供这样的功能。 但是我还是想知道。哪位朋友简单的给讲讲。多谢
scuzg
[第1楼]   [ 回复时间:2009-12-28 16:20 ]   [引用]   [回复]   [ top ] 
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46
标准的说法确实是 8086 CPU 没提供这样的功能。为什么不提供?这可能是楼主希望知道的。
其实我也没有看到过 Intel 的相关资料,但我认为是因为段寄存器仅需提供各段段基址的高16位(或称段地址或段基值),更多的功能对段寄存器来说是没有应用价值的,所以无须提供。
regex
[第2楼]   [ 回复时间:2009-12-28 17:15 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
感谢1喽朋友回复。 
以我目前的知识, 我认为跟这跟mov与add/sub的功能有关吧。
scuzg
[第3楼]   [ 回复时间:2009-12-28 19:29 ]   [引用]   [回复]   [ top ] 
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46
也可以这样说(跟mov与add/sub的功能有关):add/sub 等指令不支持段寄存器作为操作数。
regex
[第4楼]   [ 回复时间:2009-12-29 00:46 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
嗯, 我才学汇编,以后有不懂得地方, 还希望您不吝赐教! 多谢。
regex
[第5楼]   [ 回复时间:2010-01-01 15:34 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
此贴由 贴主 于 [ 2010-01-01 15:34 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved