鱼C论坛

 找回密码
 立即注册
查看: 1834|回复: 3

汇编语言,检测点3.1,ax为啥等于2662?

[复制链接]
发表于 2013-7-28 13:57:17 | 显示全部楼层 |阅读模式
20鱼币
QQ截图20130728131957.png 为啥ax等于2662?不是62?题上也没有说是字节型数据还是字型数据啊?想不懂啊

最佳答案

查看完整内容

mov ax,1 mov ds,ax ;ds置1 mov ax,[0000] ;[0000] 带方刮号的都是偏移地址。 你要了解往ax中传送了什么值,你首先要了解代码中[0000]是哪个内存单元的值。 地址的表示方式,段基址:偏移地址 ,如图中0000:0000 0000:0010 mov ax,[0000] 像这种一个方刮号中一个立即数,知道其偏移地址为0000 ,它的段基址没有给出,但默认在寄存器ds中,你也可以显示在代码中写出如: mov ax,ds:[0000] ;由于ds 在上两步中,已 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-28 13:57:18 | 显示全部楼层
mov ax,1
mov ds,ax   ;ds置1
mov ax,[0000]  ;[0000] 带方刮号的都是偏移地址。

你要了解往ax中传送了什么值,你首先要了解代码中[0000]是哪个内存单元的值。

地址的表示方式,段基址:偏移地址 ,如图中0000:0000   0000:0010
mov ax,[0000]  像这种一个方刮号中一个立即数,知道其偏移地址为0000 ,它的段基址没有给出,但默认在寄存器ds中,你也可以显示在代码中写出如:
mov ax,ds:[0000]  ;由于ds 在上两步中,已被传值1,所以ds:[0000]就是0001:0000

图中没有0001:0000,图中62h, 26h的地址分别是0000:0010,0000:0011
在cpu执行时,这种(段基址:偏移地址)会被计算成物理地址,物理地址=段基址*16+偏移地址,是一个5位的16进制数,如00010h.

一个物理地直可由多种(段基址:偏移地址)的形式给出。
图中62h, 26h的地址分别是0000:0010,0000:0011 换成物理地址就是00010h和00011h,这两字节分别何存着62h和26h,
回头看0001:0000 (即ds:[0000])换算成物理地址是00010,它保存的是62h,下一个1:0001保存着 26h
总之图中0000:0010 (62h),0000:0011 ( 26h ),这两个地址和代码中0001:000 , 0001:0001指向两个相同的物理地址00010h (62h),00011h (26h)

mov ax,[0000] ;是往AX中传送几个字节?是两个,有寄存器参与,以寄存器长度为准,ax长度为两个字节,就把以ds:[0]为起始的两个连续字节传送到ax中,其中高地址00011h (26h)里的值传到到AX的高字节AH,低地址00010h ( 62h )传送到AX的低字节AL,于是最后就形成了AX(AHAL)的值为2662h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-28 14:40:48 | 显示全部楼层
ax,bx都是16位的寄存器啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-24 22:12:22 | 显示全部楼层
学习学习再学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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