. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  谁帮我这个菜鸟解析一下3.1的检测点  [待解决] 回复[ 5次 ]   点击[ 477次 ]  
lonedemon
[帖 主]   [ 发表时间:2010-11-10 22:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-13 21:32
如题。帮我把3.1检测点解析一下。
545231790
[第1楼]   [ 回复时间:2010-11-18 15:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-07-06 22:26
等待楼下的同学
zhllhz
[第2楼]   [ 回复时间:2010-11-22 10:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-12-18 19:17
回复:[贴 主]
------------------
你问题如果能提的更具体点,让大家了解你不明白哪个知识点就更好了。
avantasia
[第3楼]   [ 回复时间:2010-11-22 18:28 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-10-17 22:33
mov ax,1 ------ax=0001H
mov ds,ax------ds=0001H
mov ax,[0000]--ax=[ds*16H+0000H]=[00010]
因为0000:0010和0001:0000表示同一个内存地址,即[00010],所以ax等于0000:0010处的字单元,ax=2662H
novelasm
[第4楼]   [ 回复时间:2011-01-15 00:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-13 23:25
楼上的错了应该是ds*10H+0000H才对 如果非要用16来表示就把16H的H去掉
不知我说的对不 ^_^
tianxing9151
[第5楼]   [ 回复时间:2011-02-18 22:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-06-23 00:14
这个检测点我做的最后结果AX=000C BX=0026 不知道对不对
其实3楼的解释比较具体了~~
mov ax,1 -----1是10进制的数转换成16进制就是0001H
mov ds,ax-----ds=0001H 因为段寄存器不能直接传送数据所以用了AX作为中转
mov ax,[0000]--[0000]表示的是以0为偏移地址的内存单元,而段地址是存在DS中的也就是0001:0000物理地址就是0001*16+0000=00010 其实前几章就有解释*16就是左移4位2进制数也就是一位16进制0001左移1位就是00010
不知道这样解释是否对
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved