ZKX's LAB

微机原理,用汇编语言编写一个程序 微机原理汇编程序怎么运行

2021-04-06知识0

~请教一道微机原理的汇编程序题~有加分~ .model small386stackdatacodemain proc farmov ax,@datamov ds,axxor ax,axmov bx,3500hmov cx,3DoAdd:add al,[bx]inc bxloop DoAddmov cl,2shl al,clmov bl,10xor cx,cxDoBCD:div blxor dx,dxmov dl,ahpush dxinc cxtest al,aljnz DoBCDmov bx,3510hDoSave:pop axmov[bx],alinc bxloop DoSaveexit:mov ax,4c00hint 21hmain endpend main

微机原理刚学汇编 写汇编程序时毫无头绪 比如不知道怎么样开头 像c语言之类的都有固定头文件啥的 汇 建议如下:工欲善其事,2113必先利其器5261,软件先安好。现在学4102习的汇编一般都是165316位的,而PC一般都是是x86或者x64,16位的程序是没法直接运行的,所以需要安装虚拟的运行环境,推荐使用DOSBox,用来运行你编写的汇编代码编译后生成的16位exe的程序。当然代码编辑器的话,推荐用Notepad+。顺便说一下,DOSBox安装之后还需要一些配置,还要添加masm.exe,link.exe等程序,配置难度适中,如果不会配置,请给我发私信(因为联系方式此处不便透露)。汇编代码其实不难,关键是入门时,也要遵循一定的语法,这里是一个hello world的例子(运行是可以的,不用怀疑):data segmentstr_1 db 'hello world。','$';定义一个字符串,以$结束data endscode segmentmain proc farassume cs:code,ds:datastart:push dssub ax,ax;相当于 mov ax,0hpush axmov ax,datamov ds,axlea dx,str_1mov ah,9hint 21hretmain endpcode endsend start对于这段代码,没有堆栈段(因为用不上),编译会警告没有堆栈段,但是不影响。这段代码算是一个典型的汇编代码的例子了吧,汇编代码的结构差不多就这样,多是先要有数据段,代码段等的定义,然后是assume将数据段与ds,。

微机原理 汇编程序 1.SS、SP解释:堆栈操作是在堆栈段(SS)的栈顶(SP)进行操作的。2.0020H解释:LEA AX,TABLE的功能是将TABLE的偏移地址(0020H)送给寄存器AX,作为AX的内容3.11、8解释:2K*8位表示有2K个单元,每个单元有一个地址,又因为2K是2的11次方,所以片内选择2K个单元需要有11根地址线;8位表示每个单元的数据线位数是8位,即数据线为8根

#微机原理汇编程序怎么运行

随机阅读

qrcode
访问手机版