汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。
因此汇编语言亦称为符号语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。
汇编语言把汇编程序翻译成机器语言的过程称为汇编。 汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。
但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 汇编语言的特点: 1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
2.保持了机器语言的优点,具有直接和简捷的特点。 3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 5.经常与高级语言配合使用,应用十分广泛。
汇编语言的应用: 1.70%以上的系统软件是用汇编语言编写的。 2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。
3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。 学习汇编语言和别的程序语言一样,都需要有耐心,推荐看看清华大学出版社的一本汇编教材《IBM-PC汇编语言程序设计(第2版)》,不过相对与CC++之类的程序语言来说,汇编的学习稍困难一些。
2. 汇编语言程序怎么写啊assume cs:code
code segment
s1: db 'Press any key when you ready.',0dh,0ah,'$'
s2: db 'Input your password','$'
start:
mov ax,cs
mov ds,ax
mov dx,offset s1 ;ds:dx指向字符串开头
mov ah,9 ;int 21h的9号子程序,从光标位置开始显示
int 21h
mov ah,0
int 16h
mov dx,offset s2
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
3. 用汇编语言怎么写标题看你用什么汇编了。用WIN32的话..应该是在
CreateWindowExA proto dwExStyle:DWORD,
lpClassName:DWORD,
lpWindowName:DWORD, ;;;;;;;;;在这儿设程序名称
dwStyle:DWORD,
X:DWORD,
Y:DWORD,
nWidth:DWORD,
nHeight:DWORD,
hWndParent:DWORD ,
hMenu:DWORD,
hInstance:DWORD,
lpParam:DWORD
4. 汇编语言怎么用,写的界面在哪,语法呢.我初学汇编一般用到Debug调试
可以这样:操作系统的开始→运行→输入"cmd"(没有引号,下同)按回车,如果写些简单的,就可以直接在弹出的Dos命令界面中输入"debug",按回车。
可以直接输入命令了,比如a,编写汇编程序(只限于简单的);t,查看各寄存器的存储情况;u,查看汇编程序,其他命令可以自己学。
如果要写些复杂的,可以在Dos界面中写"edit",在跳出来的蓝色屏幕编辑器中写程序,写完了保存(格式为.asm),然后用LINK和MASM进行连接编译(这部分你要查一下用法,只要自己动手过一遍就清楚)。生成exe就可以直接运行啦。
语法三言两语不大好说吧?这是我原来学的时候写的一个很简单的程序:
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start
如果你想学的话,推荐一本非常好的书:
书名:汇编语言
作者:王爽
出版社:邮电出版社
补充:
1.开始→运行→输入"cmd"(没有引号,下同)按回车即可进入Dos
2.在写字板里写完程序以后,以".asm"保存,比如保存为“text.asm”,而不是“text.txt”。
3.假设你的MASM保存在D盘的MASM文件夹下。
在DOS中键入如下命令:
c:>d:(敲完前面这几个字符按回车,下同)[命令解释:进入D根目录]
d:>cd masm[打开D盘下的MASM文件夹]
d:masm>masm text.asm[用MASM对前面写好的程序text.asm进行编译]
然后会出现:Object filename [text.OBJ]:并等待输入,在后面输入将要生成的OBJ文件名就可,比如text.obj
接着会出现:Source listing [NUL.LST]:此处为中间文件,一般用不到,所以不用输入,直接按回车
然后会出现:Cross-reference [NUL.CRF]:中间文件,直接回车
然后会出现:50536+415656 Bytes symbol space free
0 Warning Errors
0 Severe Errors
D:masm>
这就说明已经编译好了,在masm文件夹下会新生成一个文件:TEXT.OBJ
接着在 D:masm>;处继续输入:
D:masm>link text.obj
会出现:Run File [TEXT.EXE]:并等待输入,在后面输入将要生成的EXE文件名就可,比如text.exe,按回车
然后会出现:List File [NUL.MAP]:中间文件,直接回车
接着会出现:Libraries [.LIB]:直接回车
至此,如果程序没有写错的话,就会能生成正确的EXE文件了。
5. 大小写转换 汇编语言怎么写原发布者:※123456
实验1汇编语言选择结构程序设计班级xxxxx学号xxxxx姓名xxxxxx实验题目:完善例子:要求连续将键盘输入的小写字母转为大写字母,字母之间用“-”号间隔;若输入大写字母则直接输出,其他字符则不处理和输出,提示重新输入。实验目的:1.掌握选择结构程序设计;2.掌握跳转类指令的使用;4.掌握MASM、LINK、DEBUG等工具的使用。实验设备:硬件:PC机软件:DOS操作系统、编辑软件、MASM5.0实验内容:1.程序代码DATASEGMENTSTRDB'Wrongword!Pleaseinputagain:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAH,01HINT21HMOVBL,AL;保存在BL中MOVDL,'-';送‘-’号到DLMOVAH,02H;显示‘-’INT21H;取回输入的字符MOVAL,BLCMPAL,'a';与'a'比较JBA;小于'a'转ACMPAL,'z';与'z'比较JAEXIT;大于'z'转到EXITSUBAL,20H;取大写字母MOVDL,AL;输出MOVAH,02HINT21HC:MOVDL,0AH;输出换行MOVAH,02HINT21HMOVDL,0DH;输出回车MOVAH,02HINT21HJMPSTART;无条件转A:CMPAL,'A'JAEBJBD
6. 用汇编语言怎么写标题看你用什么汇编了。
用WIN32的话..应该是在CreateWindowExA proto dwExStyle:DWORD,lpClassName:DWORD,lpWindowName:DWORD, ;;;;;;;;;在这儿设程序名称dwStyle:DWORD,X:DWORD,Y:DWORD,nWidth:DWORD,nHeight:DWORD,hWndParent:DWORD ,hMenu:DWORD, hInstance:DWORD,lpParam:DWORD。
7. 汇编语言怎么写1到100的累加和DSEG SEGMENT
RESULT DW ?;存放和
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV AX,1;从1开始加
MOV RESULT,0;和的初值赋0
MOV CX,100;循环100次
NEXT:
ADD RESULT,AX;每次向和中累加AX
INC AX;然后AX加1
LOOP NEXT
MOV AX,4C00H;结束程序
INT 21H
CSEG ENDS
END START