汇编检测点2.1
本帖最后由 教官 于 2016-1-28 09:48 编辑mov ax,62627 ax=f4a3H(十进制转换十六进制)
mov ah,31H ax=31a3h(ah是ax的高8位,取代f4)
mov al,23H ax=3123H(al是ax的低8位,取代a3)
add ax,ax ax=6246H(ax=3123*2)
mov bx,826ch bx=826cH(没什么好说的)
mov cx,ax cx=6246H(没什么好说的)
mov ax,bx ax=826cH(bx=ax)
add ax,bx ax=04d8H(ax=ax+bx)
mov al,bh ax=0482H(al是ax的低8位,bh是bx的高8位,bh取代al)
mov ah,bl ax=6c82H(ah是ax的高8位,bl是bx的低8位,bl取代ah)
add ah,ah ax=d882H(ah=ah*2)
add al,6 ax=d888H(al是ax的低8位,6是十进制,al=82H=130,130+6=136=88H)
add al,al ax=d810H(al=al*2,因为是8位运算,所以最高位舍弃,而不是没有)
mov ax,cx ax=6246H(cx=6246H)
mov ax,2 (定义ax为2,2^4=16)
add ax,ax (ax=2+2)
add ax,ax (ax=4+4)
add ax,ax (ax=8+8) 第一问要怎么看他是十进制转换十六进制啊{:10_281:} 指路小伙 发表于 2016-6-28 13:34
第一问要怎么看他是十进制转换十六进制啊
后面带H为十六进制没注释的是十进制 指路小伙 发表于 2016-6-28 13:34
第一问要怎么看他是十进制转换十六进制啊
一般的数字都是十进制的 你注意的话会看到有的数值的后面有个H那是16进制的缩写 add ax,bx ax=04d8H(ax=ax+bx)这里我一直搞不懂为什么是04d8H,请问有没有人能给我解释一下? 懵逼,我好像做错了 Anime 发表于 2017-2-1 13:04
add ax,bx ax=04d8H(ax=ax+bx)这里我一直搞不懂为什么是04d8H,请问有没有人能给 ...
add ax,bx AX=826C+826C=104D8H,舍弃高位,04D8 影乖 发表于 2017-2-2 00:39
add ax,bx AX=826C+826C=104D8H,舍弃高位,04D8
感谢!
哇老师啊这题好坑啊第一个竟然是10进制
害我全部错了。
{:10_306:} 虽然做错了,起码我用心完成了 Anime 发表于 2017-2-1 13:04
**** 作者被禁止或删除 内容自动屏蔽 ****
AX+BX=826C+826C
因为数据是16进制的,所以C+C=24,需要往前进一位。最低位上就是24-16=8。
最高位同理,8+8=16,往前进一位,但是这个进位被丢掉了。
所以结果是04D8。 1 ax f4a3h
2 ax 1fa3h
3 ax 1f17h
4 ax 3e2eh
5 bx 826ch
6 cx 3e2eh
7 ax 826ch
8 ax 04d8h
9 ax 0482h
10ax 6c82h
11ax d882h
12ax d888h
13ax d810h
14ax 3e2eh 我去 我给绕晕了 进制转换 笔算 容易出错
mov ah,31H ax=31a3h(ah是ax的高8位,取代f4)
mov al,23H ax=3123H(al是ax的低8位,取代a3)怎么取代 第一个原来要转化成十六进制,恩,知识点甲鱼老师讲过 Anime 发表于 2017-2-1 13:04
**** 作者被禁止或删除 内容自动屏蔽 ****
ax=ax+bx (104d8=826c+826c,因ax只能存一个字的长度,把最高位的“1”给存到另一个地方了所以结果为04D8) 每一步计算都把AX,BX,CX的值结果列出来,这是一种笨办法,但很管用 add ax,bx8226H 2000H mov bx,ax8226H 8226H 怎么等于这个add ax,bx044CH 8226H这点我有点头蒙 刚开始学习,感谢大家分享
页:
[1]
2