永发信息网

栈、堆、dataseg、codeseg 这些都是什么??都存些什么东西?

答案:3  悬赏:0  手机版
解决时间 2021-02-25 02:20
  • 提问者网友:且恨且铭记
  • 2021-02-24 15:30
我是学JAVA的
最佳答案
  • 五星知识达人网友:七十二街
  • 2021-02-24 17:05
首先解释最简单的codeseg 这是代码区,顾名思义就是存储代码的。dateseg 存储静态的成员变量和字符串常量。堆 存储对象的引用,也就是new出来的东西。栈 存储局部变量以及方法的参数等
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-02-24 18:30
相当于一个运行内存大小,和ie缓存大小的空间名称 再看看别人怎么说的。
  • 2楼网友:大漠
  • 2021-02-24 17:27
我也是刚学汇编,下面的程序貌似很混乱,但是基本思路是没错的!而且能运行正确! 我没有用子程序的方法做,因为刚学到子程序那里,对它的调用有点不了解,调了好几次都错了,一气之下就直接做成这样,呵呵! 程序有些冗余,可能也有些小错误,望见谅!Datasegsegment dadw327,-4798,555,-5359,5354,347,-4554,4321,65,-2 numdw10 num1dw? DatasegendsSTACK1segmentPARASTACK DW20HDUP(0) STACK1endsCodesegsegment Assumecs:codeseg,ds:dataseg,ss:STACK1 main: movax,dataseg movds,axxorcx,cx;1.先将全部的负数变成正数 leabx,da movcx,num next: movax,[bx] testax,8000h jzp1;正数时 negax;负数时取补 mov[bx],ax p1:addbx,typeda loopnext;完成转换负数 leabx,da;2.寻找里面的最大值 movax,[bx] xorcx,cx movcx,num addbx,typeda deccx q: cmpax,[bx] jal movax,[bx]l: addbx,typeda loopq leabx,num1 mov[bx],ax;完成最大值寻找,并将其放进num1中;如果直接输出那个数字,默认是ascii输出的 movax,num1;3.将那个最大值按数字这样输出 movbx,10 xorcx,cx movcx,0lop1: movdx,0 divbx;字符型除法,被除数放dx(高位),ax(低位),所以要设dx为0 ;这是为了防止溢出 adddx,48;将余数加上ascii中48(即0),使其能输出正确的数 pushdx;将它压入堆栈 inccx cmpax,0 jeend1 jalop1end1: lop2: popbx;将刚刚压入堆栈中的数逐个输出 movdx,bx movah,02h int21h looplop2movah,4cH int21H codesegends Endmain
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯