注册 登录
编程论坛 汇编论坛

给新学汇编的一点建议

爱以走远 发布于 2007-06-02 03:07, 9505 次点击


新学汇编的可能都不知道从那里开始学 特别是自学的 因为的确汇编要比其他高级语言要难些
为了使大家少走弯路 我在这里就说说开始学汇编 这样快速入门 当然是我个人的方法
学汇编开始最基本的就是二进制 十进制 十六进制的的转换
在就是补码 原码 反码 这几种码制的转换和加减法
当然后就是一些逻辑运算 与 或 非
上面的都是最基本的
掌握拉上面的 还有就是计算机硬件的一的基础 cpu里的寄存器 存储器
在掌握寻址指令拉(这个没办法 就是靠记) 和寻址方式(这个要好好理解)
在指令里 一定要分析指令的执行后对标志寄存器的影响
还有就是mul和div 后的数放在什么地方
后就是移位指令
有拉上面的东西 就可以写一个简单的汇编程序拉
后面的就靠自己去慢慢看拉 我也不多说 入门就是上面的那些拉
汇编的模块就是
;程序模板

SSEG SEGMENT PARA STACK 'stack'
dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS

DSEG SEGMENT
;数据段:在此处添加程序所需的数据
DSEG ENDS

ESEG SEGMENT
;附加段:在此处添加程序所需的数据
ESEG ENDS

CSEG SEGMENT
assume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG



MAIN PROC FAR ;主程序入口

mov ax, dseg
mov ds, ax
mov ax,eseg
mov es, ax


;此处添加主程序代码

;按任意键退出
mov ah,1
int 21h

mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
MAIN ENDP

CSEG ENDS

END MAIN



在这里我还把汇编的编译器也传到上面来

[upload=rar]viewFile.asp?ID=21775[/upload]
里面有三个 masm tasm mcs51 里面有说明
还有就是8088汇编速查手册
http://bbs.bc-cn.net/viewthread.php?tid=135821&star=at#

DEBUG主要命令
http://bbs.bc-cn.net/viewthread.php?tid=135808

汇编精华

汇编语言的准备知识--给初次接触汇编者
http://bbs.bc-cn.net/viewthread.php?tid=35364&star=at#

汇编程序库
http://bbs.bc-cn.net/viewthread.php?tid=85580&star=at#

通用的图形字模和汉字字模汇编程序
http://bbs.bc-cn.net/viewthread.php?tid=115348&star=at#

输入10进制,输出2进制
http://bbs.bc-cn.net/viewthread.php?tid=97887&star=at#

一个简单的99乘法表
http://bbs.bc-cn.net/viewthread.php?tid=51149&star=at" target="_blank">https://bbs.bc-cn.net/viewthread.php?tid=135820
8088 汇编跳转
http://bbs.bc-cn.net/viewthread.php?tid=135821&star=at#

DEBUG主要命令
http://bbs.bc-cn.net/viewthread.php?tid=135808

汇编精华

汇编语言的准备知识--给初次接触汇编者
http://bbs.bc-cn.net/viewthread.php?tid=35364&star=at#

汇编程序库
http://bbs.bc-cn.net/viewthread.php?tid=85580&star=at#

通用的图形字模和汉字字模汇编程序
http://bbs.bc-cn.net/viewthread.php?tid=115348&star=at#

输入10进制,输出2进制
http://bbs.bc-cn.net/viewthread.php?tid=97887&star=at#

一个简单的99乘法表
http://bbs.bc-cn.net/viewthread.php?tid=51149&star=at
#



[此贴子已经被作者于2007-6-21 19:58:49编辑过]

67 回复
#2
TE202007-06-03 12:08
好东西啊,,,
#3
白居易2007-06-03 22:35
Thank you very much!!
#4
killer_l2007-06-05 12:55
很好,汇编准备要开始了.....
#5
天高飞扬2007-06-06 10:48
刚学汇编,顶一下,谢谢楼主了。
#6
jianping3402007-06-06 14:59
支持下~~虽然上面的代码好象看不懂是啥....
#7
花花公子2007-06-07 11:20
#8
无所留2007-06-08 21:30
正学汇编第一章, 谢谢楼主……
#9
qianye11012007-06-13 21:38

谢谢楼主

#10
s7788992007-06-14 11:55
#11
wy19872007-06-14 16:14

多谢你的指点。

#12
licjay2007-06-14 17:04

谢了,搂主

#13
雨竹2007-06-14 17:21

楼主啊,你是不是很懂汇编语言啊.我是刚学汇编的,可一点都不懂.要交作业了,可我编的程序老是出现乱码.我都搞不明白了.不敢问老师,她太凶了!!

#14
雨竹2007-06-14 17:26
楼主,你帮了我,我会天天顶你的.
#15
guotufu2007-06-15 16:51
支持一下!!!
#16
zez26262007-06-16 08:55

SSEG SEGMENT PARA STACK 'stack'
dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS

其中 ;初始化堆栈大小为100  应为100h

#17
zez26262007-06-16 08:55

但还是要谢谢LZ了

#18
雨竹2007-06-20 10:06
谢谢你了!
我会下载那几个文件看的.
#19
雨竹2007-06-27 10:19
“爱以走远”,我又有难了。老师叫我们用DEBUG显示以下的程序,我不知道怎么做啊?
data segment
w dw -304
x dw 1000
y dw -12
z dw 20
result dw 2 dup(?)
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov ax,x
imul y
mov cx,ax
mov bx,dx
mov ax,z
cwd
add cx,ax
adc bx,220
sbb bx,0
mov ax,w
cwd
sub ax,cx
sbb dx,bx
idiv x
mov result+2,dx
   mov ah,4ch
int 21h
code ends
end start
你可以帮我吗?学这些,真的太难了!!!
#20
zez26262007-07-01 19:29

zhi chi yi xia !!!

#21
zez26262007-07-01 19:42
data segment
w dw -304 ;要以2进制的补码形式出现,下同
x dw 1000
y dw -12
z dw 20
result dw 2 dup(?)
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov ax,x
imul y ; 有符号的乘法,默认在AL或AX中,AL中时,乘积在AX中,AX中时,乘积在DX,AX中
mov cx,ax ;只是将AX的位置空出来,以备后用,下同
mov bx,dx
mov ax,z ;AX中的是16位,用于字扩展成双字,之后为32位,后面的一样
cwd
add cx,ax ;普通加法
adc bx,220 ;进位加法
sbb bx,0 ;普通减法
mov ax,w
cwd
sub ax,cx
sbb dx,bx ; 借位减法
idiv x ; 有符号的除法
mov result+2,dx ; 将结果存入从RESULT加2开始的内存单元中
   mov ah,4ch ;功能调用
int 21h ; 产生中断
code ends
end start
如有不足,敬请指正,谢谢!
#22
s7788992007-07-02 16:05
#23
jianglewa12007-07-02 22:14
还是看不懂
#24
li576815222007-07-05 18:02

很好,谢谢.虽然我汇编都学完了,但暑假还要做课程设计,还是满有用的

#25
vxue2007-07-18 15:48
汇编好,谢谢
#26
小木头2007-07-20 00:16
有道理,我是学过的
#27
kinbing2007-07-20 17:45
太好了,正想找相关资料呢.
#28
风流上进2007-07-21 11:24
楼主可真是细心啊
#29
yyxue09252007-07-24 17:36
支持啊,好东西
#30
sk9412007-07-25 00:19
爱以是个好同志
#31
bachiqingzhu2007-07-27 11:16
搂住辛苦了
#32
ha3212007-08-04 09:13
唉...还是不懂怎么汇编....!!!!晕死!
#33
mitenike20042007-08-18 10:14
非常感谢,这些都是新手需要的~
我问一下:8086 8088 还有windows汇编有什么区别,应该学习哪个呢?
请高人教教我吧~
#34
十二国记2007-08-18 21:40

感谢搂主!

#35
losttime99582007-08-27 16:01
回复:(zez2626)zhi chi yi xia !!!
我是刚入门的,学汇编感觉很困难,谢谢楼主提供的资料!!!
#36
dontbend2007-09-04 23:05

好东西啊!谢谢!

#37
byy21222007-09-07 14:14

我也刚开始学

#38
chen990992007-09-07 21:06
我学了几次汇编都没学好。看了楼主的文章,很有启发。谢谢。
#39
haopeng1232007-09-08 10:43
刚开始学,还没体会到,不过还是顶!
#40
散步的鱼2007-09-11 09:10
段名是否可以任意书写,只要是统一应用就好?
#41
zhucx42007-09-12 21:20
今天上的第一节汇编 貌似还看不懂。。。
但时谢谢楼主了
#42
xieriguo2007-09-13 16:22
指令好麻烦哦
#43
twfxtc2007-09-15 18:29
谢谢了
#44
过街男孩2007-09-16 20:01
好贴!
#45
之梦2007-09-18 15:55
多谢了,顶 一个
#46
wshyj182007-09-19 12:47

了不起

#47
yhy1111112007-09-20 02:36

初学者,多多指教,谢谢!!这么实用的东东,谢谢

#48
lingjie2192007-09-20 09:28
#49
阿亮2007-09-25 10:50
谢谢,我正准备学习下微机原理,真的很感谢你!
#50
闰十2007-09-26 13:48

我第一次来,谢谢指导!

#51
toms2007-09-26 21:15

汗!!!!~~~~楼住好强啊.
晕,我还是看不懂

12