$\begin{aligned}d(x,y)&=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2+\dots+(x_n-y_n)^2}\\&=\sqrt{\sum_{i=1}^{n}{(x_i-y_i)^2}} \end{aligned}$
[x] 5555
DOS功能调用
急急急,要挂科了~~~
单个字符输入 (功能 1)
;输入后的数据暂存在al中 mov ah,1 int 21h
单个字符输出 (功能 2)
;将要输出存在dl中的数据 ;要先把字符转移到 dl 寄存器中,才可以成功的输出 mov dl,xxx mov ah,2 int 21h
字符串的输入 (功能 10)
;需要现在数据段申请空间 data segment buf db 32 ;定义缓冲区的长度 actlen db ? ;自动获取输入的长度 string 32 dup(?) ;申请空间 data ends ;在代码段 lea dx,buf ;送入偏移地址 mov ah,10 ;调用10号输入 int 21h ;将输入的字符串最后加上 '$' mov bl,actlen mov ah,0 mov string[bx],'$'
字符串的输出 (功能 9)
;先将字符串所在地址的偏移地址送入到 dx lea dx,变量名 mov ah,9 int 21h
算术运算
乘法(
mul
和imul
)- 有符号乘法
;语法格式 imul OPS ;原 因数保存在 al 中 ;字节 乘法最后的结果保存在 ax 寄存器中 ;字 乘法结果保存在 dx和ax 寄存器中 ;eg:3 乘以 2 mov al,3 mov dx,2 imul dx ;---> 最终的结果保存在 (ax)=6
- 无符号乘法
;语法格式
mul ops ;原 因数保存在 al 中
;同上
除法(
idiv
和div
)- 有符号除法
;语法格式 idiv ops ;被除数是被保存在 ax 中的 ;8位除法:商保存在 al中,余数是保存在 ah 中的 ;16为除法:商保存在 ax 中,余数保存在 dx 中 ;eg: 5 除以 2 mov ax,5 ;被除数 mov bx,2 ;除数 div bx ; [al]=2,[ah]=1
- 无符号除法
;语法格式 div ops ;被除数是被保存在 ax 中的 ;同上
自增 1 -->
inc
inc ops ;eg: mov bx,2 inc bx ;bx = bx + 1, 值为 3
- 自减 1 -->
sub
同上。
子程序
格式
name proc near ;内容 ret endp
name proc far ;内容 ret endp