当前位置: 代码迷 >> 汇编语言 >> 看《深入理解计算机系统》遇到的有关问题
  详细解决方案

看《深入理解计算机系统》遇到的有关问题

热度:5505   发布时间:2013-02-26 00:00:00.0
看《深入理解计算机系统》遇到的问题
本帖最后由 zhujun051512 于 2012-11-18 19:05:33 编辑
小弟正在看《深入理解计算机系统》第二版,practice problem3.3有这样一个问题:
(1)movl %ax,(%esp) 
(2)movb %si,8(%ebp)
解释这个表达式错在哪里。
答案是说:指令下标和寄存器id不匹配。
(2)比较好理解,应该movb改成movl,但是(1)已经是movl了,为什么有错呢?
顺便问一下,每章的homework problems没有答案,有无必要做?有点想偷懒不想做。
------解决方案--------------------------------------------------------
movl是双字传输指令,两个都应改为movw
------解决方案--------------------------------------------------------
课后习题理论上没必要做,这本书只是个引子。相当于导论,当做科普书看,其他的再选择性深入学习。
------解决方案--------------------------------------------------------
#2 正解
movl %ax,(%esp)也可改为 movl %eax,(%esp)
  相关解决方案