栈、堆、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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯