(1)写出每条汇编指令执行后相关寄存器中的值.
No.1) mov ax,62627 -> AX = F4A3H
方法: 1)16进制表示的数据的后面加H,2进制表示的数据后面加B,10进制表示的数据后面什么都不加.
2)10进制转16进制,直接除16取余,然后逆向排列
No.2) mov ah,31H -> AX = 31A3H
No.3) mov al,23H -> AX = 3123H
No.4) add ax,ax -> AX = 6246H
No.5) mov bx,826CH -> BX = 826CH
No.6) mov cx,ax -> CX = 6246H
No.7) mov ax,bx -> AX = 826CH
No.8) add ax,bx -> AX = 04D8H
注:16位寄存器只能存放4位16进制的数据,超过4位得丢失最高位.
No.9) mov al,bh -> AX = 0482H
No.10) mov ah,bl -> AX = 6C82H
No.11) add ah,ah -> AX = D882H
注:8位寄存器只能存放2位16进制的数据,超过2位得丢失最高位.
No.12) add al,6 -> AX = D888H
No.13) add al,al -> AX = D810H
注:仔细计算al的值.
No.14) mov ax,cx -> AX = 6246H
(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算的2的4次方.
-----> mov ax,2 //ax=2
add ax,ax //ax=ax+ax=2+2=4
add ax,ax //ax=ax+ax=4+4=8
add ax,ax //ax=ax+ax=8+8=16
- [evilswell] 漏了进位1呵 07/22 11:22
- [fpamc] FD48H+2ECCH=2B14H? 应该是2c14h吧 07/21 12:35
- [fpamc] 第一题,立即数后边要加H 07/21 12:03
- [fpamc] 嗯嗯,这章很重要。。。呃,,每章都很重要,。。 07/21 00:43
- [sean] 我原来还以为是先执行,执行结束后再改变ip的值。疏忽了。 07/16 09:17
- [evilswell] 理解CPU的工作原理很重要呵....现在我能每一步骤的CPU工作的原理图画出来 07/10 17:44
- [fpamc] 所有指令都是读取后,放入指令缓冲器,改变ip指向下一条指令,然后执行。 07/10 17:24
- [evilswell] 嗯嗯、段地址*16+0H=00010H+0H=00010H 07/10 15:24
- [fpamc] 第一题应该是10h~1000FH 07/10 11:08
- [fpamc] 路过。 07/09 16:16