鱼C论坛

 找回密码
 立即注册
查看: 2556|回复: 4

《汇编语言》第二版检测点3.1习题

[复制链接]
发表于 2012-4-24 20:14:13 | 显示全部楼层 |阅读模式
2鱼币
本帖最后由 天麒 于 2012-4-24 20:16 编辑

《汇编语言》第二版检测点3.1习题

一、在Debug中,用“d 0:0 1f”查看内存,结果如下

0000:0000   70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010   62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88

下面程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值
mov ax,1
mov ds,ax
mov ax,[0000]  AX=2662H (这个对象是ax,这里的高位地址和低位地址对应的结果可以找到、)
mov bx,[0001]  BX=E626H
mov ax,bx      AX=E626H
mov ax,[0000]  AX=2662H
mov bx,[0002]  BX=D6E6H
add ax,bx      AX=FD48H
add ax,[0004]  AX=2C14H
mov ax,0       AX=0
mov al,[0002]  AX=00E6H)(这个的对象是al,只可以存放8位,然后就不会找对应的高位地址和低位地址,求指点)
mov bx,0       BX=0
mov bl,[000C]  BX=0026H
add al,bl      AX=00E7H

以上红色部分为提问内容,谢谢诸位

最佳答案

查看完整内容

由于ax为16位,mov ax,[0000]就是将ds:[0000]作为ax的低位(al),ds:[0001]作为ax的高位(ah)传给ax al为8位,mov al,[0002] 就是将ds:[0002]传给al,ah值保持不变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-24 20:14:14 | 显示全部楼层
由于ax为16位,mov ax,[0000]就是将ds:[0000]作为ax的低位(al),ds:[0001]作为ax的高位(ah)传给ax
al为8位,mov al,[0002] 就是将ds:[0002]传给al,ah值保持不变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-4-24 22:06:40 | 显示全部楼层

豁然开朗、明白了、谢谢大侠、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-10-6 15:43:06 | 显示全部楼层
hxs554f 发表于 2012-4-24 20:14
由于ax为16位,mov ax,[0000]就是将ds:[0000]作为ax的低位(al),ds:[0001]作为ax的高位(ah)传给ax
al为8位, ...

在吗!!!!为什么 赋值完毕后是00e6  而不是e600呢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 13:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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