这你个问题高手不愿答,楼上三位又都是混分的。我也在学汇编,说一下我的理解
首先内存中的数字是按高高低的原则存放的,就是高位放高字节,低位放低字节:
如数字:0123H,在内存中表现形式为:
地址 内容
ds:0 23
ds:1 01
程序中入栈是以字为单位,出栈也是如此。
但如果是字符串,如:'0123'
那么在内存中就是:
地址 内容
ds:0 30
ds:1 31
ds:2 32
ds:3 33
也就是说和书写顺序是相同的
1、MOV CL,10
MUL CL ;乘的结果存放在AX中
2、子程序参数传递方法有
寄存器传递参数、堆栈传递参数、制定存储单元(内存RAM)传递参数、CALL后续区传递参数
3、好像不好画图,就文字解释一下也一样。
1)MOV AX,8057H
SS=FFA0H,SP=00B0H
2)PUSH AX
SS=FFA0H,SP=00AEH,
FFA0:00B0=80H,FFA0:00AF=57H
3)MOV AX,0F79H
SS=FFA0H,SP=00AEH
4)PUSH AX
SS=FFA0H,SP=00ACH,
FFA0:00AE=0FH,FFA0:00AD=79H
5)POP BX
SS=FFA0H,SP=00AEH,BX=0F79H
FFA0:00AE=0FH FFA0:00AD=79H
POP[BX]
6)SS=FFA0H,SP=00B0H,[BX]=8057H
FFA0:00B0=80H,FFA0:00AF=57H
XOR AX,AX
ADD AX,789H ;AX=(0789 )H
SUB AX,200H ;AX=(0589 )H
ADD AL,AH ;AX=(058E)H
MOV AX,0
ADD AX,110
MOV CX,4
P0:SUB AX,CX
LOOP P0:
AX=(64)H,CX=(00)H,CF=(0)
采用了小端存储方式,在该存储方式下,所有的的数据高位和低位都对调,这与程序没什么关系 。
比如存储一个数字:0x12345678
在小端存储方式下,地址从低到高存储的数据依次为:34 12 78 56
在大端存储方式下,地址从低到高存储的数据依次为:12 34 56 78