我想好好地学习80x86汇编语言,各位大神们可以给我写建议吗?
我很喜欢汇编,很想把这门语言学好,我是软件工程专业的学生
追问:debug 不支持32位的吧?
我很喜欢汇编,很想把这门语言学好,我是软件工程专业的学生
追问:debug 不支持32位的吧?
答案:初学的话看《汇编语言》王爽的,很好入门
只能是算入门,如果真想学好,那么就要多付出实践,当你想写个什么东西的时候会有很多不懂,这个时候你才是真正的开始了汇编之旅。那么就需要在网络上查资料了,
===
共勉
其他:记熟指令,多编程实践 简单高效的学习方法:在掌握基本硬件结构、进制(如各种寄存器,内存结构及地址表达方式, 16及2进制等)的基础上,用Debug逐一熟悉各指令 直观、实用、易理解、容易记住 另外 学汇编要静心 学习汇编语言的易做图是其他任何语言无与伦比的!
比如学习除法指令DIV(许多初学者觉得除法不好掌握):以16/4为例
首先用A命令输入以下指令:
-A100
0AFB:0100 MOV AX,10 <===这里的10是16进制数,即10进制的16(DEBUG都是16进制数)
0AFB:0103 MOV BL,4
0AFB:0105 DIV BL
0AFB:0107 NOP
0AFB:0108
-R <===用R查看各寄存器初始值
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B81000 MOV AX,0010
-P <===单步跟踪(执行MOV AX,0010 指令后看到AX已由初值0000变成了0010)
AX=0010 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0103 NV UP EI PL NZ NA PO NC
0AFB:0103 B304 MOV BL,04
-P <===单步跟踪(执行MOV BL,04 指令后看到BX已由初值0000变成了0004)
AX=0010 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0105 NV UP EI PL NZ NA PO NC
0AFB:0105 F6F3 DIV BL
-P <===单步跟踪(执行DIV BL 指令后看到AX已由先前的0010变成了0004)16/4=4(AL) 余0(AH)
AX=0004 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0107 NV UP EI PL NZ NA PO NC
0AFB:0107 90 NOP
我们换一个数再试试: 16/5=?
-A103
0AFB:0103 MOV BL,5
0AFB:0105
-RIP
IP 0107
:100
-P
AX=0010 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0103 NV UP EI PL NZ NA PO NC
0AFB:0103 B305 MOV BL,05
-P
AX=0010 BX=0005 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0105 NV UP EI PL NZ NA PO NC
0AFB:0105 F6F3 DIV BL
-P
AX=0103 BX=0005 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0107 NV UP EI PL NZ NA PO NC
0AFB:0107 90 NOP
-
最后看到:AX=0103 即16/5的结果是商为3(AL),余数为1(AH).
非常直观!!!
强烈建议:用DEBUG去学习80X86各项指令,事半功倍! 学汇编还是多看程序,看多了在自己写,这样提高很快,不要死扣指令。
上一个:求用汇编语言将一16进制数转换成ASC11码输出
下一个:哪位仁兄有单片机万年历汇编语言编程,不加别的芯片,只用单片机at89c51,并加详细说明,急用,非常感谢