如何快速看懂汇编语言程序

 我来答
thebabe
推荐于2018-10-28 · TA获得超过829个赞
知道小有建树答主
回答量:729
采纳率:66%
帮助的人:519万
展开全部
首先得了解汇编指令吧,其次得用机器的逻辑思考问题,明白其中的存储、累加、判断、转移等概念。

比如,1+2+....+100这样的问题,虽然我们可以给出公式计算,但机器并不知道,它只能知道,而且只能每次做一个加法,而且鉴于CPU的架构不能存所有的这些数值-如果这些数量不定的话更复杂,比如这些数是放在一个内存区域的,内存区域约定如下:第一个数表示总共有多少个数,后面是相应的数据,在这些数没有规律时是不能用公式的。
另外,许多CPU约定只有一个累加器(同时也是一个寄存器,假设它是寄存器AX),它允许从内存读一个数(MOV或者LD指令),只能进行内存数据加法(ADD [地址])。
于是我们只能这样,首先设置指针寄存器BX:
start: mov BX,#地址 ; 设置内存区域起始地址,保存在BX中
mov CX,[BX]; 取出总数到CX中,假设CX可以做简单递增或递减
dec CX ; 预减一次计数器,因为加法只需做CX-1次

inc BX

mov AX, [BX]; 取出数据
loop: inc BX ;递增BX,使之指向真实数据

ADD AX,[BX];用下一数据进行累加,并将结果保存在AX中

dec CX ;假定这个减法会影响标志位ZF
JNZ loop ;如果没有减到0就继续loop到这里之间的操作

mov [BX], AX; 保存累加结果到数据区的尾部
HALT ; 停机

可以看出,上述代码并不能告诉我具体结果是多少,除非我们通过工具去访问这一内存区域,于是一个系统会设计出来专门让我们进行基本的输入输出,把计算机的内部情况甚至内存情况通过I/O口送出来,这些IO设备,比如键盘负责接收我们的机器指令(可以是汇编结果,也可以是高级语言产生的二进制指令和数据流),把结果输出到打印机或者CRT这样的输出设备上(通常映射为端口,IO PORT)。这就是BIOS完成的工作,如int 8负责时钟,int 10负责屏幕,int 16负责键盘等等。更进一步,可以进一步封装称DOS调用,如int 21负责基本的输入输出包括文件操作等等。WINDOWS等操作系统则通过驱动层进行多级抽象提供操作界面给编程人员,编程人员再进一步封装出对话框或全屏文字菜单或流式(行式操作)操作界面给最终用户。
gcbjoy
2015-11-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:2170万
展开全部
有些人编写的小程序没有分段落、注释也不清楚。可以先将其编译链接生成可执行文件,再用SR.exe等反汇编工具进行反汇编。反汇编出的原程序会自动分段、自动加上很多的注释,可以帮助你快速看懂程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baiyangdeai
推荐于2018-03-12 · TA获得超过199个赞
知道答主
回答量:232
采纳率:0%
帮助的人:193万
展开全部
找到汇编语言指令手册,看到什么指令不明白就查,这样肯定是最快的方法了,但是要求你有比较好的理解领悟能力。 首先你应该对基本的寄存器有个大概的了解,另外大致了解一下汇编程序基本的执行过程,这并不要花费多少时间的。
追问
请问你花了多少时间精通的汇编,我发现指令我知道,太长了,我就看不懂了,怎么解决这个瓶颈啊。
追答
不要说我精通,不敢当。我只是掌握基本的了。我是在校学生,自己选的限选课《微机原理及应用》,就是这学期学的,我是自己对编程感兴趣,所以才选的。上课14周,每周4个学时,一共56学时,上机大概12个学时左右吧  光上课是不行的 自己平时要多练 我课下看的是王爽写的《汇编语言》,通熟易懂,可以看看。汇编指令多,只有多练才能掌握,不像高级语言那么简单,但是算法是一样,执行过程也很类似的。
给自己点信心,下点苦功夫,一定学的好,编程往往不是考验我们的智商,而是勇气和毅力。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangfan2000
2012-06-22 · TA获得超过2549个赞
知道小有建树答主
回答量:586
采纳率:50%
帮助的人:570万
展开全部
就象学一门外语,要看懂,得先弄清楚英文单词的意思,然后是句话的意思,然后是一段话的意思,……最后整篇文章也就差不多弄明白了。所以要先熟悉那些常用的语句,一些基本的程序结构,一本可以象查英文单词一样查阅的汇编语言书。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
renling456000
2015-10-30 · 超过12用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:32.2万
展开全部
个人没什么敲门,
看汇编程序,都是一行一行的看。
必须的记住每一条命令的功能,和效果。
然后就是看程序的命名,和注释了。

然后就是能操作看到实际的执行效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式