当前位置:首页 » 网页前端 » JMP堆叠排序脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

JMP堆叠排序脚本

发布时间: 2022-05-29 19:07:52

1. 下列指令中,影响堆栈内容的指令是A.POP B.CALL C.JMP D.IRET 为什么不选A为什么

我感觉到ABD
C应该不影响
===================
楼下是正确的。
AD是出栈操作,不影响栈的内容
B要执行入栈操作,存储指令指针内容,所以影响栈
C与栈无关。

2. JMP作图(以X拟合Y)时如何修改X轴的顺序

数据表填好数据→表,堆叠→堆叠列→表,排序→分组依据,标签→右击第一列的标签→列属性→值排序→通过上下移动就可以调整x轴标签的位置→正常做图……

3. 反汇编中的mov,jmp 等是什么意思列举一下。

下边是一些汇编中的指令后边都有意思!
051指令集

资料转移指令
MOV 移动
MOVC 程式记忆体移动
MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令
PUSH 放入堆叠
POP 由堆叠取回
XCH 8位元交换
XCHD 低4位元交换
SWAP 高低4位元交换

算术指令
ADD 两数相加
ADDC 两数相加再加C
SUBB 两数相减再减C
INC 加一指令
DEC 减一指令
MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B
DIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存B
DA (DA A 只此一条指令)调整为十进数

逻辑指令
ANL做AND(逻辑与)运算
ORL做OR(逻辑或)运算
XRL 做(逻辑异或)运算
CLR 清除为0
CPL 取反指令
RL 不带进位左环移
RLC 带进位左环移
RR 不带进位右环移
RRC 带进位右环移

控制转移类指令
JC C=1时跳
JNC C=0时跳
JB 位元=1时跳
JNB 位元=0时跳
JBC 位元=1时跳且清除此位元
LCALL 长调用子程序
ACALL 绝对调用子程序
RET 由副程式返回
RETI 由中断副程式返回
AJMP 绝对转移
SJMP 相对转移
JMP @A+DPTR 散转,相对DPTR的间接转移
JZ A=0时跳
JNZA 0时跳
CJNE 二数比较,不相等时跳
DJNZ 减一,不等于0时跳
NOP 空操作

位变量指令
SETB 设定为1

ORG 程序开始,规定程序的起始地址
END 程序结束
EQU 等值指令(先赋值后使用)例:SUM EQU 30H
DB 定义字节指令
DW 定义字内容
DS 定义保留一定的存贮单元数目
BIT 位地址符号指令 例:SAM BIT P1.0
RET 子程序返回指令
RETI 中断子程序返回指令
$ 本条指令地址

算术运算指令
指令 说明 周期
ADD A,Rn A←A+Rn 12
ADD A,direct A←A+direct 12
ADD A,@Ri A←A+Ri 12
ADD A,#data A←A+data 12
ADDC A,Rn A←A+Rn+C 12
ADDC A,direct A←A+direct+C 12
ADDC A,@Ri A←A+Ri+C 12
ADDC A,#data A←A+data+C 12
SUBB A,Rn A←A-Rn-C 12
SUBB A,direct A←A-direct-C 12
SUBB A,@Ri A←A-Ri-C 12
SUBB A,#data A←A-data-C 12
INC A A←A+1 12
INC Rn Rn←Rn+1 12
INC direct direct←direct+1 12
INC @Ri @Ri←@Ri+1 12
INC DPTR DPTR←DPTR+1 12
DEC A A←A-1 12
DEC Rn Rn←Rn-1 12
DEC direct direct←direct-1 12
DEC @Ri @Ri←@Ri-1 12
MUL AB 两个无符号的8位数据相乘,其中高阶8位放入B缓存器,低阶8位则放入累积器ACC 24
DIV AB 两个无符号的8位数据相除,把ACC值除以B缓存器值,商数放回ACC,余数放在B 48
DA A 累加器作十进制调整 48


逻辑运算指令
指令 说明 周期
ANL A,Rn A←A and Rn 12
ANL A,direct A←A and direct 12
ANL A,@Ri A←A and Ri 12
ANL A,#data A←A and data 12
ANL direct,A direct←direct and A 12
ANL direct,#data direct←direct and data 24
ORL A,Rn A←A or Rn 12
ORL A,direct A←A or direct 12
ORL A,Rn A←A or Rn 12
ORL A,@Ri A←A or Ri 12
ORL A,#data A←A or data 12
ORL direct,A direct←direct or A 12
ORL direct,#data direct←direct or data 24
XRL A,Rn A←A xor Rn 12
XRL A,direct A←A xor direct 12
XRL A,@Ri A←A xor Ri 12
XRL A,#data A←A xor data 12
XRL direct,A direct←direct xor A 12
XRL direct,#data direct←direct xor data 12
CLR A 清除累加器 12
CPL A 累加器反相 12
RL A 累加器向左旋转 12
RLC A 累加器和C左旋 12
RR A 累加器向右旋转 12
RRC A 累加器和C右旋 12
SWAP A 累加器的高低四位互换 12


数据转移指令
指令 说明 周期
MOV A,Rn A←Rn 12
MOV A,direct A←direct 12
MOV A,@Ri A←Ri 12
MOV A,#data A←data 12
MOV Rn,A Rn←A 12
MOV Rn,direct Rn←direct 24
MOV Rn,#data Rn←data 12
MOV direct,A direct←A 12
MOV direct,Rn direct←Rn 24
MOV direct,direct direct←direct 24
MOV direct,@Ri direct←Ri 24
MOV direct,#data direct←data 24
MOV @Ri,A Ri←A 12
MOV @Ri,direct Ri←direct 24
MOV @Ri,#data Ri←data 12
MOV DPTR,#data 16 Ri←16bit data 24
MOVC A,@A+DPTR A←程序内存的数据 24
MOVC A,@A+PC A←程序内存的数据 24
MOVX A,@Ri A←外部RAM的数据(8bit地址) 24
MOVX A,@DPTR A←外部RAM的数据(16bit地址) 24
MOVX @Ri,A 外部的RAM(8bit)←A 24
MOVX @DPTR,A 外部的RAM(16bit)←A 24
PUSH direc 推迭区←direct 24
POP direc direct←堆栈区 24
XCH A,Rn A和Rn互换 12
XCH A,direct A和direct互换 12
XCH A,@Ri A和Ri互换 12
XCHD A,@Ri A和Ri的低四位互换 12


位运算指令
指令 说明 周期
CLR C 清除进位旗标 12
CLR bit 清除直接位 12
SETB C 设定进位旗标 12
SETB bit 设定直接位 12
CPL C 进位旗标反相 12
CPL bit 直接位反相 12
ANL C,bit C←C and bit 24
ANL C,/bit C←C and bit(反相) 24
ORL C,bit C←C or bit 24
ORL C,/bit C←C or bit(反相) 24
MOV C,bit C←bit 12
MOV bit,C bit←C 24
JC rel 若C=1跳至rel 24
JNC rel 若C=0跳至rel 24
JB bit,rel 若bit=1跳至rel 24
JNB bit,rel 若bit=0跳至rel 24
JBC bit,rel 若bit=1跳至rel,且清除此位 24



程序跳跃指令
指令 说明 周期
ACALL addr11 绝对式子程序呼叫 24
LCALL addr16 远程子程序呼叫 24
RET 从子程序返回 24
RETI 从中断子程序返回 24
AJMP addr11 绝对式跳跃 24
LJMP addr16 远程跳跃 24
SJMP rel 短程跳跃 24
JMP @A+DPTR 间接跳跃 24
JZ rel 若A=0跳至rel 24
JNZ rel 若A不等于0跳至rel 24
CJNE A,direct,rel 若A不等于direct跳至rel 24
CJNE A,#data,rel 若A不等于data跳至rel 24
CJNE Rn,#data,rel 若Rn不等于data跳至rel 24
CJNE @Ri,#data,rel 若Ri不等于data跳至rel 24
DJNZ Rn,rel Rn减1不等于0跳至rel 24
DJNZ direct,rel direct减1不等于0跳至rel 24
NOP 没动作 12


缩写符号说明
缩写符号 说明 备注
Rn 缓存器R0-R7
direct 8bit内部数据存储器,包括
1.内部数据存储器(00-7F)的地址
2.特殊功能缓存器(80-FF)的地址,如P0,PSW,TMOD..等
@Ri 由缓存器R0或R1所寻址的内部RAM数据
#data 8bit常数
#data 16 16bit常数
addr 16 16bit的目的地址,可使跳跃指令跳跃64k
addr 11 11bit的目的地址,可使跳跃指令跳跃2k
rel 具正负号的8位地址偏移量,用于相对地址的跳跃
bit 1个bit:只所有可以位寻址的位。(如PSW.7为CY旗号)
A 累加器(累积器)
C或CY 进位旗号
AC 辅助进位旗号
Bb 指定位B0-B7
D 半字节(4Bit)助忆符号
F0 旗号0
I 中断
PC 程序计数器
P0 I/O port 0
P1 I/O port 1
P2 I/O port 2
P3 I/O port 3
PSW 程序状态字组(类似于旗号缓存器)
SP 堆栈指针缓存器
B 缓存器B
DPTR 数据指针缓存器
X 外部滋要内存的助忆符号
@ 间接地址符号
$ 程序计数迄目前的值
reg 缓存器

8051 INSTRUCTION SET
1.Arithmetic operations:
Mnemonic Byte Cyc
ADD A,@Ri 1 1
ADD A,Rn 1 1
ADD A,direct 2 1
ADD A,#data 2 1
ADDC A,@Ri 1 1
ADDC A,Rn 1 1
ADDC A,direct 2 1
ADDC A,#data 2 1
SUBB A,@Ri 1 1
SUBB A,Rn 1 1
SUBB A,direct 2 1
SUBB A,#data 2 1
INC A 1 1
INC @Ri 1 1
INC Rn 1 1
INC DPTR 1 1
INC direct 2 1
INC direct 2 1
DEC A 1 1
DEC @Ri 1 1
DEC Rn 1 1
DEC direct 2 1
MUL AB 1 4
DIV AB 1 4
DA A 1 1

2.Logical opreations:
ANL A,@Ri 1 1
XRL A,@Ri 1 1
ANL A,Rn 1 1
XRL A,Rn 1 1
ANL A,direct 2 1
XRL A,direct 2 1
ANL A,#data 2 1
XRL A,#data 2 1
ANL direct,A 2 1
XRL direct,A 2 1
ANL direct,#data 3 2
XRL direct,#data 3 2
ORL A,@Ri 1 1
CLR A 1 1
ORL A,Rn 1 1
CPL A 1 1
ORL A,direct 2 1
RL A 1 1
ORL A,#data 2 1
RLC A 1 1
ORL direct,A 2 1
RR A 1 1
ORL direct,#data 3 2
RRC A 1 1
SWAP A 1 1

3.Data transfer:
Mnemonic Byte Cyc
MOV A,@Ri 1 1
MOV DPTR,#data16 3 2
MOV A,Rn 1 1
MOVC A,@A+DPTR 1 2
MOV A,direct 2 1
MOVC A,@A+PC 1 2
MOV A,#data 2 1
MOVX A,@Ri 1 2
MOV @Ri,A 1 1
MOVX A,@DPTR 1 2
MOV @Ri,direct 2 2
MOVX @Ri,A 1 2
MOV @Ri,#data 2 1
MOVX @DPTR,A 1 2
MOV Rn,A 1 1
PUSH direct 2 2
MOV Rn,direct 2 2
POP direct 2 2
MOV Rn,#data 2 1
XCH A,@Ri 1 1
MOV direct,A 2 1
XCH A,Rn 1 1
MOV direct,@Ri 2 2
XCH A,direct 2 1
MOV direct,Rn 2 2
XCHD A,@Ri 1 1
MOV direct,direct3 2
MOV direct,#data 3 2

4.Boolean variable manipulation:
Mnemonic Byte Cyc
CLR C 1 1
ANL C,bit 2 2
SETB C 1 1
ANL C,/bit 2 2
CPL C 1 1
ORL C,bit 2 2
CLR bit 2 1
ORL C,/bit 2 2
SETB bit 2 1
MOV C,bit 2 1
CPL bit 2 1
MOV bit,C 2 2

5.Program and machine control:
Mnemonic Byte Cyc
NOP 1 1
JZ rel 2 2
RET 1 2
JNZ rel 2 2
RETI 1 2
JC rel 2 2
ACALL addr11 2 2
JNC rel 2 2
AJMP addr11 2 2
JB bit,rel 3 2
LCALL addr16 3 2
JNB bit,rel 3 2
LJMP addr16 3 2
JBC bit,rel 3 2
SJMP rel 2 2
CJNE A,direct,rel 3 2
JMP @A+DPTR 1 2
CJNE A,#data,rel 3 2
DJNZ Rn,rel 2 2
CJNE @Ri,#data,rel 3 2
DJNZ direct,rel 3 2
CJNE Rn,#data,rel 3 2

4. 关于汇编中JMP跳转的等价变形

retn是返回调用者的下一条指令的指令。正常情况下,它是返回到CALL指令的下一条指令。执行CALL指令的时候,系统会自动把其下一条指令的地址压入堆栈,然后转到调用子程序,子程序执行完毕,最后一条指令就是retn,它从堆栈弹出先前压入堆栈的地址给指令指针寄存器IP,并跳转到这个地址继续执行。

三条等价指令中,第一条把立即数00489670赋给eax,第二条把这个数压入堆栈,第三条执行retn,正是这条指令把刚才压入堆栈的立即数00489670弹出并赋给IP,并跳转到这个地址继续执行,从而实现了与jmp 00489670指令完全相同的功能,所以称为等价。

5. 51和6502单片机中调用跳转指令JMP JSR RST这3个指令时,倒底要不要堆栈

51单片机里面有JMP指令,不需要堆栈;JSR和RST指令51单片机是没有的。51指令中用到堆栈的有:LCALL ,ACALL,RET,RETI等。

6. 能给我份 行者脚本命令全集么 谢谢拉

脚本编辑说明:
脚本一个指令必须占一行,()前是指令名称,()中的是指令参数,没有参数可以不用写().
指令名称可以使用大小写.

Label:标签Label(XX),LABEL(检测打怪圈),标签下面为若干脚本命令

Jmp:跳转到指定标签Jmp(XXX),如Jmp(检测打怪圈),跳到并执行此条目,实现控制脚本执行流程的作用

Call:调用函数Call(XXX),如call(开始打怪),执行一段指定代码,与Jmp不同执行完后会后会执行Call语句后的一条语句

Exit:退出运行脚本 Exit()

Pause:暂停运行脚本:Pause()

条件判断指令,如果判断正确会执行下一条指令或下面跟着{}中的指令,否则会跳过下一条指令
或跳过下面跟着{}中的指令继续执行
例:
ITEMCOUNT(回城卷,<,1)
{
MSG(身上没有回城卷,使用走回城)
JMP(走回城)
}
USEITEM(回城卷)
DELAY(5000)



ITEMCOUNT(回城卷,>=,1)
JMP(使用回城卷回城)
MSG(没有回城卷,走回城)

描述 命令 举例

使用物品 useitem(名称[ID=XXX]) USEITEM(返回卷轴[ID=736])
无备注

购买物品 buyitem(名称[ID=XXX],数量) BUYITEM(返回卷轴[ID=736],1)
无备注

出售物品 sellitem(*) SELLITEM(*)
自动出售所有在INI文件中设置好的物品

存放仓库物品 saveitem(短剑[ID=1],1) SAVEITEM(道具名[ID=],数量)
存放指定的物品到仓库,需要注意的是,不能象卖物品一样使用INI文件设置,必须指定物品ID和数量

取出仓库物品 loaditem(短剑[ID=1],1) LOADITEM(道具名[ID=],数量)
对应于SAVEITEM,就是从仓库中取物品,用法和BUYITEM相同(取的东西必须是仓库中已有的)

脚本信息 msg(信息) MSG(死亡回城!)
括号中的信息只有自己可见

开始战斗 set(fightstart) SET(FIGHTSTART)
自动开始战斗

结束战斗 set(fightstop) SET(FIGHTSTOP)
自动结束战斗

脚本延时 delay(N) DELAY(1000)
延时执行脚本下一步,单位:毫秒.例子中为延时1秒

条目 label(XX) LABEL(检测打怪圈)
条目下面为若干脚本命令

跳至 jmp(XXX) JMP(检测打怪圈)
跳到并执行此条目,起到连接脚本动作的作用

移动到 moveto(X,Y,Z) MOVETO(-96716,255766,-3443)
移动到坐标X,Y,Z

选定NPC npcsel(NPC名[ID=XXX]) NPCSEL(杰克森[ID=7002])
选定NPC

和NPC对话 npcdlg(NPC名[ID=7002]) NPCDLG(杰克森[ID=7002])
与NPC对话

选定对话项目 dlgsel(XX) DLGSEL(出售)
选定和NPC对话时出现的某一个项目

检测人物属性 charstatus(xxxxxx) CHARSTATUS(WEIGHT,>=,45%)
例子中的是检测负重超过45%,还有检测其他的命令

检测点 posoutrange(x,y,z,范围) POSOUTRANGE(-96716,255766,-3443,3000)
检测是否在此范围之外

检测范围内 posinrange(x,y,z,范围) POSINRANGE(-96716,255766,-3443,3000)
检测是否在此范围之内

死亡回城 gohome() GOHOME()
和charstatus一起用可以达到死亡自动回城的效果

说话 say(文本) SAY(早) 其他玩家可见

退出运行脚本 exit() EXIT()
退出脚本的运行,如果退出命令前没有条件激活跳到其他label.则脚本停止

暂停运行脚本 pause() PAUSE()
暂停运行脚本的段落

判断包含文字 strindlg(文字) STRINDLG(蘑菇)
判断NPC对话中是否有特定的文字,如果有,即执行下面的指令,用法同ITEMCOUNT(),多用于判断是否接过任务用.

判断不包含文字 stroutdlg(文字) STROUTDLG(蘑菇)
对应于STRINDLG,判断对话中有无特定的文字,如果没有,即执行下面的指令

人物站立或坐下 ChangeWaitType(x) ChangeWaitType(1)
x = 0 坐
x = 1 站

人物状态判断,HP.MP.WEIGHT为百分比
CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],num)
CharStatus(STAND,==,0)
CHP,CMP为人物当前实际值
WEIGHT为负重百分比
LV为人物等级
RACE为人物种族(人类=0,精灵=1,黑暗精灵=2,半兽人=3,矮人=4)
STAND判断是否站立

ForceAttack()强行攻击 可用于降级

动作指令:
MOVETO(x,y,z)
说明:移动到x,y,z

NPCSEL(名字[ID=x])
说明:选择NPC

NPCDLG(名字[ID=x])
说明:跟NPC对话

DLGSEL(名称)
说明:对话选择

GOHOME()
说明:死亡回城

SAY(文字)
说明:一般说话

MSG(文字)
说明:外挂提示,别人看不到

UseItem(名字[ID=x])
说明:使用道具

BuyItem(名字[ID=x],数量)
说明:购买物品
例1:BuyItem(返回卷轴[ID=736],2)
例2:BuyItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)

SellItem(名字[ID=x],数量)
例1:SellItem(返回卷轴[ID=736],2)
例2:SellItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)
例3:SellItem(*)卖出道具设定中设为"卖"的全部物品

SaveItem(名字[ID=x],数量)
例1:SavelItem(返回卷轴[ID=736],2)
例2:SavelItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)
例3:SavelItem(*)保存道具设定中设为"存"的全部物品

LoadItem(名字[ID=x],数量)
例1:LoadlItem(返回卷轴[ID=736],2)
例2:LoadlItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)

ChangeWaitType(x)
人物站立或坐下
x = 0 坐
x = 1 站

条件指令:
StrInDlg(对话文字)
说明:用来判断和NPC对话的对话框中是否有指定的文字
例:
NPCSEL(克普[ID=1007534])
NPCDLG(克普[ID=1007534])
DLGSEL(任务)
STRINDLG(答应委托)
{
DLGSEL(答应委托)
JMP(任务接完)
}
JMP(任务已经接过)

StrNotInDlg(对话文字)
说明:用来判断和NPC对话的对话框中是否没有指定的文字
例:
NPCSEL(克普[ID=1007534])
NPCDLG(克普[ID=1007534])
DLGSEL(任务)
STRNOTINDLG(答应委托)
{
MSG(已经接过任务)
JMP(已接任务)
}
DLGSEL(答应委托)

CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],num)
说明:人物状态判断,HP.MP.WEIGHT为百分比
CHP,CMP为人物当前实际值
WEIGHT为负重百分比
LV为人物等级
RACE为人物种族(人类=0,精灵=1,黑暗精灵=2,半兽人=3,矮人=4)

PosInRange(x,y,z,range)
说明:检测人物当前坐标是否在以x,y,z为中心点range为半径的圆心中

PosOutRange(x,y,z,range)
说明:检测人物当前坐标是否在以x,y,z为中心点range为半径的圆心外
例:在脚本开头加入
PosOutRange(100,100,100,500)
{
MSG(请站在xxx附近开始)
EXIT()
}

ItemCount(名字[ID=x],[>=|>|==|!=|<|<=],count)
说明:比较人物身上指定名字或ID的道具数量是否满足条件

流程控制指令:
CALL(LABEL名称)
说明:调用LABEL标识的标签地址执行,执行完返回,必须要有RETURN指令
例:
CALL(下一步)
调用完成会继续执行下一步
...
EXIT()
LABEL(下一步)
...
RETURN

JMP(LABEL名称)
说明:跳转到LABEL标识的标签地址执行

RETURN()
说明:CALL调用时必须用这个返回

EXIT()
说明:结束脚本运行

DELAY(x)
说明:延迟x毫秒

PAUSE()
说明:暂停脚本的执行,提示信息给玩家,让玩家控制继续执行

LABEL(标签名)
说明:定义标签名,用来JMP或CALL

设置指令:
SET([FIGHTSTART|FIGHTSTOP])
说明:设置战斗开始或停止战斗
例:SET(FIGHTSTART)//开始战斗
SET(FIGHTSTOP)//停止战斗

7. JMP图形图表,怎么才能将几列数据的散点图和箱线图集中体现在同一个图形中,如图所示,谢谢!

你首先得把这四组数据首尾相接变成一列, 并且把原来的组名也带着如图1所示, (可以使用右键自动填充)然后按照图2操作即可. 选第三个gauge chart变量比较图。

图二

8. 自动编译脚本怎么写

MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.

MOV AH, 1 ;1号功能调用,键入、显示.
INT 21H ;
CMP AL, '0'
JB ERR
CMP AL, '9'
JBE L1 ;小于等于9转移.
ERR:
MOV DX, OFFSET MSG3
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.

JMP EXIT
;------------------------------
L1:

9. jmp怎么修改横坐标顺序

jmp修改横坐标顺序:
表填好数据→表,堆叠→堆叠列→表,排序→分组依据,标签→右击第一列的标签→列属性→值排序→通过上下移动就可以调整x轴标签的位置→正常做图。