这篇文章主要介绍了用汇编语言实现从1加到100的方法(1+2+...+100),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用汇编语言实现1+2+...+100
;课堂作业
;计算1+2+...+100
DATA SEGMENT
COUNT DW 0 ;计数
DATA ENDS
STACK SEGMENT PARA STACK
BUF DW 20H DUP (0)
LEN EQU $-BUF
STACK ENDS
CODESEG SEGMENT
ASSUME CS:CODESEG,SS:STACK,DS:DATA
START:
;初始化堆栈段ss和数据段ds
MOV AX,STACK
MOV SS,AX
MOV SP,LEN
MOV AX,DATA
MOV DS,AX
MOV CX,64H ;循环100次
MOV AX,0
S:
ADD COUNT,01H
ADD AX,COUNT
LOOP S
MOV DL,AL
MOV AL,AH
CALL DISP_2_HEX
MOV AL,DL
CALL DISP_2_HEX
CALL DISP_CREF
MOV AH,4CH
INT 21H
;将AL的高四位与低四位分别输出
DISP_2_HEX:
PUSH AX
PUSH BX
PUSHF
MOV AH,0 ;清零
MOV BL,10H ;作除法
DIV BL ;AL :商 高位 AH 余数 低位
CALL DISP_1_HEX ;输出AL的结果
MOV AL,AH
CALL DISP_1_HEX
POPF
POP BX
POP AX
RET
;输出AL的数字和字母
DISP_1_HEX:
PUSH AX
PUSH DX
PUSHF
MOV DL,AL
CMP DL,09
JBE L_1 ;小于等于9则跳过下一条语句
ADD DL,27H ;大于10则转换为小写字母并执行到下面的L_1的RET结束
;数字10与字符a差为39(27H)
;数字输出(1的ascii码为31H)
L_1:
ADD DL,30H ;数字转换为字符
MOV AH,02H
INT 21H
POPF
POP DX
POP AX
RET
;输出回车换行
DISP_CREF:
PUSH DX
PUSH AX
MOV AH,02H
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
POP AX
POP DX
RET
CODESEG ENDS
END START
输出结果为13ba(5050的十六进制)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:用汇编语言实现从1加到100的方法(1+2+...+100)
基础教程推荐
猜你喜欢
- R语言使用gganimate创建可视化动图 2022-12-10
- R语言学习代码格式一键美化 2022-12-05
- go语言的魔幻旅程14-反射 2023-09-05
- ruby-on-rails – Nginx支持的Rails应用程序中缺少Content-Length Header 2023-09-20
- Ruby on Rails在Ping ++ 平台实现支付 2023-07-22
- golang 自然语言处理工具(gohanlp) 2023-09-05
- Go语言实现一个Http Server框架(二) Server的抽象 2023-07-25
- R语言多元线性回归实例详解 2022-12-15
- R语言关联规则深入详解 2022-11-08
- R语言histogram(直方图)的具体使用 2022-10-28
