您的位置:首页 > 编程语言

8086汇编语言自学经验分享 新手入门的汇编源代码

2016-07-22 20:28 627 查看
镇场诗:吾心为他人,此智不私藏。学术有小成,愿帮大家忙。诚心说愿望,愿见文者得启发。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1、这个是初始的代码

assume cs:code
code segment
dw 0123h,4567h,0abcdh

mov bx,0
mov ax,0

mov cx,3

s:add ax,cs:[bx]
add bx,2
loop s

mov ax,4c00h
int 21h
code ends
end


2、使用debug追踪程序



3、程序运行错误

你会看到,0700 : 0000 到0005是没见过的指令。其实这个是数据,只是我们没有进行改正程序把这些数据当成了代码。

4、修改IP



5、运行



修改源代码可以改正这个问题

assume cs:code
code segment
dw 0123h,4567h,0abcdh

start: 	               ;加入程序入口标签,就可以解决这个问题了
mov bx,0
mov ax,0

mov cx,3

s:add ax,cs:[bx]
add bx,2
loop s

mov ax,4c00h
int 21h
code ends
end start


再次追踪程序



OK了,这样做虽然可以改正错误。但是这个不是一个优秀的习惯。

一个优秀的代码,是要分段,多段的。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

学习汇编语言,为微机原理课程打一下基础。我自学的书籍是 汇编语言 王爽 清华大学出版社。这本书通俗易懂。王爽老师写的真不错,推荐新手入门选择这本书。

我将学习中一些知识点写到博客中,是因为自学的道路很苦,所以想通过分享自己的经验让大家自学的道路好一些。二是,通过博客的记录,可以有效地防止知识的遗忘。

如果您发现我有什么写的不对的地方,请您指正。我会尽快修改的。

我不是大神,我只是一个正在奋斗的普通人。所以希望大家看了我的文章,能够得到一些启发。如果能解决问题,那就太好了。

注:此文仅用于学术研究。如果我侵犯了您的权益,请告知。看到您的告知后,我将及时作出处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: