. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
主题 : :  检测点3.2  [待解决] 回复[ 6次 ]   点击[ 381次 ]  
maq622
[帖 主] [ 发表时间:2018-09-18 16:44 ] 
荣誉值:0
信誉值:0
注册日期:2018-09-14 17:24
答案这些我是都明白的,但敢问大佬们,为什么(1)中开始
mov ax,1000H
mov ds,ax
这里为什么是要把1000H赋值给ds寄存器呢?明明现在是对2000H段地址的push指令的操作,前两句有什么意义吗?
(2)也是同样的问题。感谢大佬们能看到回复
frinck
[第3楼] [ 回复时间:2021-02-26 10:38 ] 
荣誉值:0
信誉值:0
注册日期:2020-01-14 16:43
首先明确两个字段的涵义:“DS:IP”这里的涵义是数据段中的数据,,“push 内存地址”这个含义是将内存地址所指的数据入栈到栈指针目前所指定的位置。
所以给DS赋值1000h的意思就是指定数据段,push  [0]的意思是将ax*16+0物理位置的数据入栈到指针所指的位置。因此其实就是分为两个部分,ds负责数据,push负责读取的数据放在哪里
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved