. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测2.1解题过程以及疑问  [已解决] 回复[ 7次 ]   点击[ 614次 ]  
ytbxass
[帖 主]   [ 发表时间:2008-05-23 16:11 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-05-18 08:07
检测点,2.1

1,写出每条汇编指令执行后相关寄存器中的值.

下面是每一步的计算过程:62627是一个十进制数,所以先转化成十六进制,除以16.

MOV AX,62627       AX=14A3H

  
62627/16   3914  3
3914/16   244   10
244/16    15    4
15/16     0     1

MOV AH,31H         AX= 45A3H

AH=14H +31H=45H 

         
MOV AL,23H        AX=  45c6h 

al=a3h+23h=c6h   
          
ADD AX,AX          ax=  8b8ch

ax=ax+ax=45c6h+45c6h= 8b8ch

               
MOV BX,826CH        bx=   826ch

bx=826ch 

       
MOV CX,AX        cx=   8b8ch

         
MOV AX,BX        ax=  826ch

  \\bx值赋值给AX



        
ADD AX,BX         ax =  04d8h

ax=826ch+826ch=104d8h \\十六进制运算与十进制一样,只不过是遇16进1.


         
MOV AL,BH          ax = 0482h

ax= 04d8h
bx= 826ch
bh=82h
al=bh=82h
ax=0482h

           
MOV AH,BL          ax= 6c82h

bx=826ch
ax=0482h
bl=6ch
ah=bl=6ch
ax=6c82h



       
ADD AH,AH           ax=   d882h

ax=6c82h
ah=6ch
add ah,ah 
ah=d8h
ax=d882h


     
ADD AL,6          ax=   d888h

ax=d882h
al=82h
add al,6 
al=88h
ax=d888h


  
ADD AL,AL         ax=  d810h

ax=d888h
al=88h
add al,al
al= 10h (前面1不能存入AL)
ax=d810h

           
MOV AX,CX        ax=     8b8ch        

cx=8b8ch
mov ax,cx
ax=8b8ch

只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方.

mov ax,2
add ax,ax
add ax,ax
add ax,ax

三天了,这是自己做的答案,请同学们指教有没有问题,再不去找答案了,如果没有问题的话,就可以继续往下学习了.
ytbxass
[第1楼]   [ 回复时间:2008-05-23 16:16 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-05-18 08:07
晚上吃饭了再上来看,先休息一下.现在还在工作中呢,嘿嘿,比较幸运,工作时也能学习.
huangaozhuo
[第2楼]   [ 回复时间:2008-05-24 11:36 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:0
注册日期:2008-05-08 12:02
MOV AX,62627       AX=F4A3H 吖.

顺带提一句,搂主为何不把作业贴到汇编学习blog上呢?
lujinge0911
[第3楼]   [ 回复时间:2008-05-25 09:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-04-15 21:02
LZ,十进制转换十六进制不是单纯的除以16,十进制除以16还是十进制
lujinge0911
[第4楼]   [ 回复时间:2008-05-25 10:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-04-15 21:02
MOV指令只是单纯的传入值,不做任何运算,希望楼主再仔细看看2.3节那几个表
ytbxass
[第5楼]   [ 回复时间:2008-05-25 10:18 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-05-18 08:07
MOV指令只是单纯的传入值,不做任何运算,希望楼主再仔细看看2.3节那几个表
------------------
回复:
 
所以第一个AX=62627是吧

关于三楼说的,十进制转换为十六进制是除以16取余吧,我再去看看进制转换,谢谢大家关注与支持

二楼说的 62627 转换为十六进制是:F4A0H,是不是用计算器算的?在论坛也看到有人说了这两个答案,我也不知道到底哪一个正确,系统自带的计算器,我不懂得算:(  是用笔在纸上算的。。!!
ytbxass
[第6楼]   [ 回复时间:2008-05-25 10:30 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-05-18 08:07
补充一下,刚刚去看了关于论坛上面62627转换为十六进制,的确是:F4A0H,已经没有疑问了。

   所以我再去重新计算。
ytbxass
[第7楼]   [ 回复时间:2008-05-25 10:31 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-05-18 08:07
此贴由 贴主 于 [ 2008-05-25 10:31 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved