『壹』 汇编语言 子程序设计
数放在ax里面
MOV AX,DATAS
MOV DS,AX
mov ax,0f2h
mov cl,4
push ax
shl ax,cl
cmp ah,9
ja n1
add ah,30h
mov dl,ah
mov ah,02h
int 21h
jmp n2
n1:
add ah,37h
mov dl,ah
mov ah,02h
int 21h
n2:
pop ax
and al,0fh
cmp al,9
ja n3
add al,30h
mov dl,al
mov ah,02h
int 21h
jmp n4
n3:
add al,37h
mov dl,al
mov ah,02h
int 21h
n4:
mov ah,4ch
int 21h
上面是16进制输出
『贰』 汇编语言程序中,已经知道主程序,怎么找主程序中的子程序
call xxx 是调用子程序。
xxx就是子程序名。用文本查找方式找到xxx:就是这个子程序开始位置。
『叁』 汇编语言子程序是如何定义的
这样定义的:
子程序名 PROC NEAR|FAR
.
.
RET
子程序名 ENDP
子程序名相当于标号,表示本过程的符号地址。过程有NEAR和FAR两种类型,FAR型的过程可供段间调用,NEAR型过程仅供段内调用。
在一个过程中,至少要有一条返回指令RET,它可以书写在过程中的任何位置,但是过程执行的的最后一条指令一定是RET。
注意事项
一、子程序调用指令
格式:CALL [NEAR PTR] 子程序名
CALL指令的两个作用,1.将断点地址(CALL指令的下一条指令地址)压栈保存,2.转去子程序执行。
[NEAR PTR]可以省略。
二、返回指令
格式:RET [N]
指令作用:实现子程序执行完后返回主程序的指令。从堆栈栈顶弹出一个字数据(段内调用)送入IP作为返回地址。N是立即数,执行完RET之后,再将SP增加N,也叫“平栈”。
『肆』 用汇编语言编写子程序后如何调用
通过C语言函数形式封装汇编语言程序段,而后就可完全按照C语言函数的形式内调用。这种方法保证了容子程序段与主程序衔接的完全适配,使用简便。使用方法如下:
用低划线_后接关键字asm指示后面的语句是汇编语句。汇编语句既可以是单句,例如__asm
mov
bx,1;也可以是复合语句,即,用花括号对包含的多条单句,例如:
__asm
{
mov
al,
3
mov
dx,
0xE008
add
ax,dx
}
在语法规则中,这些语句与C语言的语句完全等价。因此,可以直接进行编译。
『伍』 汇编程序放再计算机的哪里
你问的问题令人很晕
汇编是一种编程语言
是编程语言
WINDOWS是程序
WINDOWS是用C语言编写出来的
C语言也是一种编程语言
把编程语言转化成可执行程序的软件叫做编译器
每种语言都有编译器
有的语言有很多不同版本的编译器
当源程序被编译器转化成可执行程序后
就可以独立运行
WINDOWS就是一个程序
它跟汇编压根没有任何关系
机器语言也是一种语言
计算机可以直接运行机器语言编写的程序
不需要编译
其实编译的过程就是把其他语言的程序转换成机器语言的过程