这是自动生成的代码模板
STACKS SEGMENT STACK 堆栈段
DW128 DUP(?) 注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT 数据段
请在这里定义您的数据FLAG DB0
RE DW0
DATAS ENDS
CODES SEGMENT 代码段
ASSUMECS:CODES,DS:DATAS
START: MOV AX,DATAS初始化
MOV DS,AX
请在这里添加您的代码
PART1: MOV AH ,01H 键盘输入0~100任意数
INT 21H
CMP AL,0DH
JZPART2
SUB AL,'0'
PUSH AX
MOV AX,RE
SHL AX,1
PUSH AX
MOV CL,2
SHL AX,CL
POP BX
ADD AX,BX
POP BX
MOV BH,0
ADD AX,BX
MOV RE,AX
JMP PART1
PART2: MOV AX,RE
PART3: MOV CX,AX 求和塌羡
DEC AX
ADD RE,AX
LOOP PART3
MOV AX,RE
MOV CX,0十进制显示
MOV BX,10
PART4: MOV DX,0
DIV BX
ADD DL,30H
PUSH DX
INC CX
CMP AX,0
JNZ PART4
PART5: POP DX
MOV AH,2
INT 21H
LOOP PART5
MOV AX,4C00H退出程序
INT 21H
CODES ENDS
END START
直接穗颤复制过去用吧
最简单的办法,你用C实现该功能,然后仿真运行可以查看生成的汇编代码。
C语言原型
void strCpy(char *pDst, const char *pSrc){
while(*pSrc)
{
*pDst = *pSrc
pDst ++
pSrc ++
}
}
仿真编译结果
8: while(*pSrc)9: {
0x00000EF0 E003 B 0x00000EFA
10: *pDst = *pSrc
0x00000EF2 780A LDRB r2,[r1,#0x00]
0x00000EF4 7002 STRB r2,[r0,#0x00]
11: pDst ++
0x00000EF6 1C40 ADDS r0,r0,#1
12: pSrc ++
13: }
0x00000EF8 1C49 ADDS r1,r1,#1
8: while(*pSrc)
9: {
10: 敏世 *pDst = *pSrc
11: pDst ++
12: pSrc ++
13: }
0x00000EFA 780A LDRB r2,[r1,#0x00]
0x00000EFC 2A00 CMP r2,#0x00
0x00000EFE D1F8 BNE 0x00000EF2
14: }
然后取出其中的汇编代码就改亮行了
LOOPLDRB R2, 桥歼肢[R1]
STRB R2, [R0]
ADDS R0, R0, #1
ADDS R1, R1, #1
LDRB R2, [R1]
CMP R2, #0
BNE LOOP
BX LR
注释参考C语言函数
汇编程序是好多种类,不同体系结构有不同汇编程序规范,如51、X86、DSP、arm都有自己的汇乎亩迹编设计规范耐宏的。岁并所以汇编程序设计基于ARM体系结构,就是指ARM平台下的汇编语言了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)