我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: ASSUME伪指令是干什么用的? 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

yinx



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
家族: 丢丢
发贴: 2333
威望: 0
浮云: 1260
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-05-11

5come5帮你背单词 [ actually /'æktjuəli/ ad. 实际上 ]


ASSUME伪指令是干什么用的?

Copy code
TITLE EXAMPLE PROGRAM
DATA SEGMENT
    VARX DW 15H
    VARY DW 10H
    VARZ DW ?
DATA ENDS
STACK1 SEGMENT PARA STACK
    DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA,SS:STACK1
START:    MOV AX,DATA
    MOV DS,AX
    MOV AX,VARX
    SHL AX,1
    ADD AX,VARX
    ADD AX,VARY
    SUB AX,5
    SAR AX,1
    MOV VARZ,AX
    MOV AH,4CH
    INT 21H
CODE ENDS
    END START


这是微机原理与接口课本第150页的例程,
用老师给的Emu8086软件编译通过并运行正确,
我把ASSUME那一行注释掉,还是可以编译通过运行正确。

那么这条伪指令是干什么用的呢?

网上有说是“告诉汇编程序,在程序中,哪些段是当前段,它们分别由哪个段寄存器指向”
但是我把它注释掉之后,编译器仍然知道去哪找数据段哪找代码段啊。
不解
顶端 Posted: 2007-10-29 20:31 | [楼 主]
ity



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 394
威望: 0
浮云: 1105
在线等级:
注册时间: 2007-06-19
最后登陆: 2008-06-29

5come5帮你背单词 [ boy /boi/ n. 男孩,待者,服务员 ]


Quote:
引用第12楼hhbhhb于2007-10-31 13:23发表的  :
其实关键是MOV的时候用的是哪个段寄存器……
我觉得并不是DS被assume到哪。。而是那个段被assume到哪个寄存器……
不过既然可以用那我也不知道了……

你什么时候又跑来这边混了............
顶端 Posted: 2007-10-31 22:30 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.008171(s) query 6, Time now is:11-22 20:55, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号