汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。
工具/原料
AssemblyLanguageMasm汇编编译器
方法/步骤
1、打开masm汇编编译程序,新建一个masm源文件脚本。DATASSEGMENT;此处输入数据段代码DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;此处输入代码段代码MOVAH,4CHINT21HCODESENDSENDSTART
2、在正文中输入我们的程序代码,并将文件命名为jisuan.asmdatasegme艘绒庳焰ntobfdb'*****xi锾攒揉敫aobowelcomeyou!*****Designedby1wangxiaobo@163.com',0dh,0ahdb'inputdata:','$'a0db?a1db?b0db?b1db?adb?bdb?dataendsstacksegmentstackdb200dup(0)stackendscodesegmentassumecs:code,ds:data,ss:stackmain:movax,datamovds,axmovah,9leadx,[obf]int21hincdxmovdl,13movah,2int21hmovdl,10int21hmovah,1int21hcmpal,13jzlab1mov[a0],almov[a],almov[a1],1x1:movah,1int21hcmpal,13jzlab1mov[b],almovbl,[b]cmpbl,[a]jnzx2add[a1],1jmpx1x2:mov[b0],blmov[b1],1x3:movah,1int21hmov[a],alcmpbl,[a]jnzx4add[b1],1jmpx3x4:movcl,[b1]cmpcl,[a1]jby1movcl,[b0]mov[a0],clmovcl,[b1]mov[a1],cly1:cmpal,13jzlab1mov[b0],almov[b1],1mov[b],almovbl,[b]jmpx3lab1:movah,2movdl,13int21hmovdl,10int21hcmp[a1],10jbz1movah,0moval,[a1]movbl,10divbladdax,3030hmovbx,axmovah,2movdl,blint21hmovdl,bhint21hjmpz2z1:add[a1],30hmovdl,[a1]int21hsub[a1],30hz2:movah,2movdl,13int21hmovdl,10int21hmovcx,0movcl,[a1]movah,2m:movdl,[a0]int21hloopmmovah,4chint21hcodeendsendmain
3、运行我们编辑的文件,计算数字平台长度的程序,如:运行时输入:111122333,结果为:4 1111*****xiaobowelcomeyou!*****Designedby1wangxiaobo@163.cominputdata:11112233341111Pressanykeytocontinue