鱼C论坛

 找回密码
 立即注册
查看: 2547|回复: 11

王爽 汇编有几道题不明白

[复制链接]
发表于 2013-12-30 22:33:05 | 显示全部楼层 |阅读模式
25鱼币
汇编的2.1 表红色是我不懂的地方

mov ax,62627 ax=F4A3H  
mov ah,31h   ax=31A3H
mov al,23h   ax=3123H
add ax,ax    ax=6246H
mov bx,826CH bx=826CH
mov cx,ax    cx=6246H
mov ax,bx    ax=826CH
add ax,bx    ax=04D8H
mov al,bh    ax=0482h
mov ah,bl    ax=6C82H      我的理解AL高地址AH是低地址不是等于0462,为什么是6C82
add ah,ah    ax=D882H
add al,6     ax=D888H
add al,al    ax=D810H
mov ax,cx    ax=6246H

2.2的第一道题   
1).给定段地址为001H,仅通过变化偏移地址,CPU的寻址范围为0010H~[u]1000FH[/u]

段地址乘于16加偏移地址,这道题我的算法是0010左移2位在乘于16不是等于10001吗
为什么是1000F

最佳答案

查看完整内容

1:ax可分为ah、al单独使用且用时超过FF(16进制)会益出。同理bx分为bh、bl。我们把ah叫ax的高8位(左边的8位)、bh叫bx的高8位,al、bl叫它们的底8位(右边的8位)。mov ah,bl 就是把底8位bl值送到高8位ah,而ax=0482h,bx=826CH 所以结果是ax=6C82H。 2:段地址乘于16加偏移地址是指:001H*16(16进制就是10H) =0010H;0010H+FFFFH(最大偏移量)=1000FH 所以给定段地址为001H,仅通过变化偏移地址,CPU的寻址范围为0010 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-30 22:33:06 | 显示全部楼层
本帖最后由 dlzhwm 于 2014-1-2 02:11 编辑

1:ax可分为ah、al单独使用且用时超过FF(16进制)会益出。同理bx分为bh、bl。我们把ah叫ax的高8位(左边的8位)、bh叫bx的高8位,al、bl叫它们的底8位(右边的8位)。mov ah,bl    就是把底8位bl值送到高8位ah,而ax=0482h,bx=826CH
所以结果是ax=6C82H
2:段地址乘于16加偏移地址是指:001H*16(16进制就是10H) =0010H;0010H+FFFFH(最大偏移量)=1000FH   所以给定段地址为001H,仅通过变化偏移地址,CPU的寻址范围为0010H~1000FH。希望对你有帮助。:funk:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-30 23:00:46 | 显示全部楼层
第一个问题简单自已看,回答你第二个问题,001HX16+FFFF=1000F
我要问你为什么会是10001呢???????才怪啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-31 21:01:10 | 显示全部楼层
第一个问题其实 是你自己记错 al是低地址 ah是高地址

第二个问题呢 其实没什么好说的 段地址是001H  我们不知道他的偏移地址 所以就取两个极端 0和ffff  寻址范围是0010H~1000fH  慢慢理解一下 看看三楼的大神的详细计算  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-31 21:23:38 | 显示全部楼层
第一个问题:寄存器只有高位和低位,哪有什么地址的说法,地址那是内存
第二个问题:说实话,我用计算机算了好几遍,手都麻了,结果还是1000F    你再算算10+FFFF 等于多少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-31 22:46:05 | 显示全部楼层
题目中AX=0482其中  AH(高位)=04,AL(低位)=82.  BX=826C BH=82 BL=6C
mov ah,bl 就是把bl值6C放入AH中 AH=6C  AL=82 则AX=6C82
第二题 你没有理解16进制的意思  这里‘段地址乘于16加偏移地址‘(这里16相当于 就是10进制乘以10,2进制乘以2最好理解就是加一个0) 段地址为0001:0实际地址是00010+0=00010的地址   偏移地址最小为0最大为FFFF 实际地址最小则是00010+0=00010 最大地址就是 00010+FFFF=1000F 不知道你清楚 没有

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-1 19:14:21 | 显示全部楼层

mov ah,bl    6282 条到mov ax bx 而不是这个mov al bh?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-2 22:10:31 | 显示全部楼层
建议:寄存器、MOV指令、数制、内存地址、段地址、寻址概念重学一下,就明白了。:sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-2 22:38:21 | 显示全部楼层
第一个 估计你把指令和数据的传送弄混了 指令传送是从低到高读取的  数据是从高到低读取的
比如 C8 09  读取指令就是c8 09  如果读数据就是 09c8
第二个是 16进制的001H 相当于0001H 乘16只是左移动一位变成 0010H  加上偏移地址的变化范围0000h-ffffH 就是(0010+0000)H到(0010+ffff)H 即 0010H到1000fH
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-3 09:30:32 | 显示全部楼层
学习中!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-6 16:46:43 | 显示全部楼层
回复拿一分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-8 12:16:35 | 显示全部楼层
重点问题,学习。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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