205633 发表于 2011-4-23 16:32:22

汇编第2章 监测点2.1和2.2的疑问

本帖最后由 loop 于 2011-4-25 03:25 编辑

SA是什么意思啊?
监测点2.2还是看不清楚啊?感觉段地址乘以16加偏移地址等于物理内存地址很清晰 然后到寻址范围就突然模糊了不知道为什么一点也不明白了啊?
0000H-FFFFH 64KB寻址范围

为何我做出的提不一样呢

检测点2.2
0001H
00010H
0001FH

20000H
000001H
1FFFFFH
2.1监测点做的却完全一样 2.2我非常模糊啊

2.1我做的如下
监测点2.1
mov ax,62627   ax=F4A3h因为62627是10进制转换成16进制就是F4A3 然后将f4a3移动到ax中 所以ax=f4a3
mov ah,31h   ax=31a3h因为将31h移动到ah中 ah是ax的高位所以f4被替换成31 所以ax现在是31a3h
mov al,23h   ax=3123h因为将23移动到al中 al是ax的低位 所以23h替换掉a3h 所以ax就是3123h
add ax,ax      ax=3123h+3123h=6246h将ax和ax相加结果存入ax中
mov bx,826ch   bx=826ch因为将826ch移动到bx中
mov cx,ax      cx=ax=6246h因为将ax的值移动到cx中
mov ax,bx      ax=826ch因为bx的值移动到ax中
add ax,bx      ax=04d8h因为ax和bx相加结果存入ax中 ax=ax+bx=826ch+826ch=104d8 只能存放4位所以是04d8
mov al,bh      ax=0482h       因为将bh的值移动到albh的值是82 al的值是d8
mov ah,bl      ax=6c82h因为将bl的值移动到ah中 bl的值是6ch ax=0482hah的值04替换成6c
add ah,ah      ax=d882h因为ah+ah放入ah中ah=ah+ah=6c+6c=d8
add al,6       ax=d888h   因为al=al+6=82h+6=88h
add al,al      ax=d810h   因为al=al+al=88h+88h=110h100h要丢弃所以al=10h所以ax=d810h
mov ax,cx      ax=6246h因为将cx的值移动到ax中 所以ax=6246h

2^4=2*2*2*2=4*2*2=8*2=16
3^4=3*3*3*3=9*3*3=27*3=81

loop 发表于 2011-4-23 20:34:25

本帖最后由 loop 于 2011-4-23 20:47 编辑

检测2.1
可能你理解错了,题目要求用学过的4条指令,编程求2的4次方。
给你点提示:
mov ax,2
…………
后面的自己动手做一下,最多4条汇编指令。


检测2.2
1、因为偏移地址范围0000H~FFFFH.
0001*16+0000H=00010H 最小范围
0001*16+FFFFH=1000FH 最大范围

2、看这里:http://bbs.fishc.com/forum.php?mod=viewthread&tid=522&extra=page%3D1
页: [1]
查看完整版本: 汇编第2章 监测点2.1和2.2的疑问