汇编语言--子程序实例

 1 .8086
 2 .model small
 3 .stack 100
 4 .data
 5     msg db ‘daaaauudc321sdsada‘,0
 6 .code
 7 ;功能:统计字符串中小写字母的个数
 8 ;入口DS:DX
 9 ;出口BX
10 COUNT    PROC
11         push si
12         push ax        ;保存现场
13         mov bx,0    ;bx计数
14         mov si,dx    ;si指针
15         mov al,[si]
16         .while al != 0
17             .if al >= ‘a‘ && al <= ‘z‘
18                 inc bx
19             .endif
20             inc si
21             mov al,[si]
22         .endw
23         pop ax
24         pop si        ;恢复现场
25         ret
26 COUNT    ENDP
27 ;功能:输出AX
28 ;入口:AX
29 DISAX    PROC
30         push bx
31         push cx
32         push dx        ;保存现场
33         or ax,ax
34         jz _0_        ;判断是否为0
35         mov bx,10    ;bx作为除数
36 again:    xor dx,dx    ;清零,必须步骤
37         div bx
38         mov cx,ax    ;cx为商
39         or cx,dx    ;dx为余数
40         jz _e_        ;如果商和余数都为0,则结束
41         push dx        ;保存余数
42         call again    ;递归调用
43         pop dx        ;恢复余数
44         add dl,‘0‘
45         jmp _1_
46 _0_:    mov dl,‘0‘
47 _1_:    mov ah,2
48         int 21h
49 _e_:    pop dx
50         pop cx
51         pop bx        ;恢复现场
52         ret
53 DISAX    ENDP
54 .startup
55     lea dx,msg
56     call COUNT
57     mov ax,bx
58     call DISAX
59 .exit
60 end
时间: 2024-10-10 22:42:08

汇编语言--子程序实例的相关文章

AT&amp;T汇编语言——简单实例及工具演示

今天就来用具体实例代码来运用一下昨天所说的只个工具的用法吧 这几个实例主要的目的是来熟悉一下汇编相关工具的用法及应用一下昨天刚说的汇编程序模板. 我们用到的工具主要有as,ld,gcc,gdb,当然,它们是运行在linux系统下的 废话少说,直接来例子了.嗯,再说一句,下面的例子是参考或来自<汇编语言程序设计>Richard Blum的 例一:打印出"hello,world!" #hellowrold.s print "hello,world!" .se

AT&amp;amp;T汇编语言——简单实例及工具演示

今天就来用详细实例代码来运用一下昨天所说的仅仅个工具的使用方法吧 这几个实例基本的目的是来熟悉一下汇编相关工具的使用方法及应用一下昨天刚说的汇编程序模板. 我们用到的工具主要有as,ld,gcc,gdb,当然.它们是执行在linux系统下的 废话少说,直接来样例了.嗯,再说一句,以下的样例是參考或来自<汇编语言程序设计>Richard Blum的 例一:打印出"hello,world!" #hellowrold.s print "hello,world!"

02_汇编语言(子程序设计01_基本输入输出函数模板)

程序要求: DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数NUM(0<=NUM<=65535),用OUTPUT方法输出这个数. 目的: INPUT函数模板 OUTPUT函数模板 代码实现: 1 ;例题:DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数,用OUTPUT方法输出这个数 2 STACK SEGMENT STACK 'STACK' 3 STAK DW 256 DUP(?) 4 STACK ENDS 5 6 DATA SEGMENT 7 NUM DW ?

foxpro常用命令

Visual FoxPro原名FoxBase,最初是由美国Fox Software公司于1988年推出的数据库产品,在DOS上运行,与xBase系列兼容.FoxPro是FoxBase的加强版,最高版本曾出过2.6.之后于1992年,Fox Software公司被Microsoft收购,加以发展,使其可以在Windows上运行,并且更名为 Visual FoxPro. FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口.按纽.列表框和文本框等控件,进一步提高了系统的开发能

C语言的只有应用领域

C语言的只有应用领域. 常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C,Dev-C++,C-Free, win-tc 等等...

常见汇编代码

# 常见汇编代码 # 1. 编写程序:比较AX,BX,CX中带符号数的大小,将最大的数放在AX中 code segment         assume cs:code                   mov ax,32         mov bx,74         mov cx,23                 sort: cmp ax,bx               jge X          ;如果ax大于等于bx就跟cx比较              xchg ax,b

02:名字、作用域和约束(Bindings)-[程序设计语言]-摘记&amp;注解

阅读导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 2.对象生存期和存储管理 2.1静态分配 2.2基于栈的分配 2.2堆分配和垃圾收集 3.作用域规则 3.1静态作用域 3.2嵌套子程序 3.3动态作用域 4.引用环境的约束 4.1子程序闭包 4.2一级和二级子程序 5.作用域里的约束 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有名字的东西,比如

文学博客

C语言是目前世界上流行.使用最广泛的高级程序设计语言.         C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的. C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言. 常用的编译软件有Microsoft Visual C ,Borland C ,Watcom C ,Borland C , Borland C Builder,Borland

00-C语言概述

学习重点: 认识C语言 学习C语言 学习内容: 1.C语言是当今应用最为广泛,最具影响力的程序设计语言之一.它不仅具有功能丰富,表达能力强,应用面广,生成目标程序简练,程序执行效率高及良好的可移植性,而且同时兼备高级语言和低级语言的特点.既能有效地进行算法描述,又能对硬件直接进行操作:既适合开发系统级软件,又适合编写应用类程序.C语言发展非常迅速,主要在于其强大的功能. 2.现今流行的操作系统Windows,iMac,Linux等,其核心内容仍然是标准的C语言规范.在C语言中加上汇编语言子程序,