汇编网首页登录博客注册
zyc969的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言

[2012-05-20 16:09] 监测点2.1

(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  

add ah,ah      AX=D882H  

add al,6       AX=D888H  

add al,al      AX=D810H  

mov ax,cx      AX=6246H 



我的答案:

mov ax,62627   AX=EE63H  

mov ah,31H     AX=3163H  

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  

add ah,ah      AX=D882H  

add al,6       AX=D888H  

add al,al      AX=D810H  

mov ax,cx      AX=6246H



错误原因分析(自评):

第一空以及第二空出错,第二空因为第一空而出错。第一空出错原因在于十进制转十六进制时发生计算错误。
计算能力还需提高。






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

参考答案(不一定是标准答案):  

mov  ax,2         AX=2  

add  ax,ax        AX=4  

add  ax,ax        AX=8  

add  ax,ax        AX=16 


我的答案:

mov  ax,2          
add  ax,ax         
add  ax,ax          
add  ax,ax    
    
自评:对于这道题,我也尝试过用其他方法,不过没想出效果更好的方法。从数学的角度分析这道题:四行代码算2的四次方,又因为只有加减、赋值语句,每行代码必须使幂的指数加1,第一行的赋值语句实现了使指数变为1,所以后面三行刚好实现指数为4,理论上说,最少只能用四行代码写出此程序。
以上只是我个人推理,不知严密否。不知有哪位狂人能只用三行代码。
评论次数(2)  |  浏览次数(970)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2012-05-20 20:57  ]

两道题都做错了?

认真态度有待提高啊!

[  zyc969   发表于  2012-05-20 22:00  ]

写第二空时的思维是正确的,但第一空是错误的,第二空必须用到第一空的数据,所以第二空也是错的。
我十进制转十六进制的方法还是沿用的先转成二进制再转成十六进制的方法。不知道有没有更简便,不易出错的方法。十进制不断除二取余除二取余很容易出错的。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码