企业如何利用HarmonyOS开发工具提升小程序开发效率与合规性
746
2022-10-07
汇编子程序使用
1: 引子
基本定义格式:
1: far 不再相同代码段 调用: call far ptr max
2: near 在相同代码段 调用: call max
name proc far|naername endp
操作数因子:
1: 取数
通用操作:push bpmov bp,sp 1: 取第一个数 mov ax,[bp+4] '特殊 bp指向堆栈段bp2: 取第二个数 mov ax,[bp+6]
基本结构:
assume cs:code, ss:stackstack segment db 16 dup (0)stack endscode segmentmain proc ;这是我们的主程序start: mov ax,stack mov ss,ax mov sp,16 mov ax,1000 call far ptr s ;依然用s标识调用的入口 mov ax,4c00h int 21hmain endpsubp proc ;这个作为子程序 s: add ax,ax retsubp endpcode endsend start
2:熟悉基本程序
题目: 实现 MAX (int a,int b)函数 即为返回a b中的最大值
datas segment a dw '1'; b dw '2'; res dw 0;datas endsstacks segment stack dw 100 dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacksmain proc ; 主程序start: mov ax,datas; mov ds,ax; push a; push b; call max mov sp,4; mov res,ax mov ah,4ch; int 21hmain endpmax proc near ;子程序 push bp; mov bp,sp; mov ax,[bp+4] mov bx,[bp+6] cmp ax,bx jg let mov ax,bx; let: pop bp ret 0max endp codes endsend start
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~