正在画流程图,稍后附上
;x86汇编_用循环结构编程计算阶乘n!
code segment ;代码段开始
assume cs:code,ds:code ;定义代码段和数据段的段地址都是本段(代码段)的段地址
org 100h;指定程序被载入内存时的起始地址
start: ;程序开始的标号
push cs;将代码段地址压栈
pop ds;从栈中弹出到数据段寄存器,与上句话一起,将代码段的值赋给数据段
push cs;再将代码段地址压栈
pop es;从栈中弹出数据到附加段寄存器
q0:lea dx,tips;q0标号,此处传递tips标号的偏移地址到dx
mov ah,9 ;ah=9
int 21h ;调用21h中断,ah=9时,显示字符串,字符串从ds:dx到一个$符号结束
q1:mov ah,0; ah = 0
int 16h;调用16h中断,ah=0时,从键盘读字符,al为字符码
cmp al,1bh ;将1bh与字符码比较,1bh是esc的字符码
jz exit;如果相等,则跳转到exit标号的位置
cmp al,'0';将al与0的字符码相比
jb q1 ;如果al
cmp al,'8';将al与8的字符码相比
ja q1 ;如果al>'8',跳转到q1标号的位置
mov ah,0eh; ah=0eh
int 10h;调用10h中断,ah=0eh时,显示al表示的字符
sub al,30h;al =