计算机组成原理(汇编语言)编译程序能不能直接将高级语言翻译成机器语言,而中间不经过汇编语言?编译程序通常都是直接输出机器指令的字节数据,只有特别指定参数,才会输出。
汇编语言编译器是怎么编写的 汇编编译器:把汇编语言源程序转换为机器语言的程序,汇编编译器也可以生成源代码列表文件,其中包括行号,内存地址,源代码语句,程序中使用的符号及变量,交叉引用列表.在Windows/Dos 下可用的汇编编译器有Microsoft宏汇编编译器MASM,Borland Turbo Assember(TASM)和The NetWide Assembler(NASM),其中NASM是跨平台的编译器可用于Windows/Dos/Linux下.他们的语法相近,都是Intel语法风格.在Linux下可用的汇编编译器有NASM,gas.NASM和gas的语法风格相去甚远,NASM使用的是Intel 语法风格的汇编语法,而gas使用的是AT&T的汇编语法风格.
汇编语言怎么用,写的界面在哪,语法呢.我初学 汇编一般用到Debug调试可以这样:操作系统的开始→运行→输入\"cmd\"(没有引号,下同)按回车,如果写些简单的,就可以直接在弹出的Dos命令界面中输入\"debug\",按回车。可以直接输入命令了,比如a,编写汇编程序(只限于简单的);t,查看各寄存器的存储情况;u,查看汇编程序,其他命令可以自己学。如果要写些复杂的,可以在Dos界面中写\"edit\",在跳出来的蓝色屏幕编辑器中写程序,写完了保存(格式为.asm),然后用LINK和MASM进行连接编译(这部分你要查一下用法,只要自己动手过一遍就清楚)。生成exe就可以直接运行啦。语法三言两语不大好说吧?这是我原来学的时候写的一个很简单的程序:assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789,0abch,0defh,0fedh,0cbah,0987hdata endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segmentstart:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axpush ds:[0]push ds:[2]pop ds:[2]pop ds:[0]mov ax,4c00hint 21hcode endsend start如果你想学的话,推荐一本非常好的书:书名:汇编语言作者:王爽出版社:邮电出版社补充:1.开始→运行→输入\"cmd\"(没有引号,下同)按回车。