$\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. 单个字符输入 (功能 1)

    ;输入后的数据暂存在al中
    mov ah,1
    int 21h
  1. 单个字符输出 (功能 2)

    ;将要输出存在dl中的数据
    ;要先把字符转移到  dl  寄存器中,才可以成功的输出
    mov dl,xxx
    mov ah,2
    int 21h
  1. 字符串的输入 (功能 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],'$'
  1. 字符串的输出 (功能 9)

    ;先将字符串所在地址的偏移地址送入到  dx  
    lea dx,变量名
    mov ah,9
    int 21h

算术运算

  1. 乘法(mulimul)

    • 有符号乘法
    ;语法格式
    imul OPS   ;原 因数保存在 al 中
    ;字节 乘法最后的结果保存在 ax 寄存器中
    ;字 乘法结果保存在 dx和ax 寄存器中
    ;eg:3 乘以 2
    mov al,3
    mov dx,2
    imul dx   ;---> 最终的结果保存在 (ax)=6
    • 无符号乘法
;语法格式
mul ops  ;原 因数保存在 al 中
;同上
  1. 除法(idivdiv

    • 有符号除法
    ;语法格式
    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 中的
    ;同上
  2. 自增 1 --> inc

    inc ops
    ;eg:
    mov bx,2
    inc bx     ;bx = bx + 1, 值为 3
  3. 自减 1 --> sub
    同上。

子程序

  1. 格式

    name proc near
        ;内容
        ret
    endp
    name proc far
        ;内容
        ret
    endp
Last modification:December 13, 2022
请我喝瓶冰阔落吧