⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exam302.asm

📁 我在汇编课上完成的一些作业(上机常见习题)和汇编课本上的几个例题
💻 ASM
字号:
;
data segment
     x dw 20
     y dw 30
     z dw 40
     v dw 200
data ends
code segment
     assume cs:code, ds:data
start: mov ax, data
       mov ds, ax
       mov ax, x
       imul y              ;x*y—>(dx,ax)
       mov cx, ax
       mov bx, dx
       mov ax, z
       cwd                 ;z—>(dx,ax)
       add cx, ax
       adc bx, dx          ;x*y+z—>(bx,cx)
       sub cx, 540
       sbb bx, 0           ;x*y+z-540
       mov ax, v
       cwd                 ;v—>(dx,ax)
       sub ax, cx
       sbb dx, bx          ;v-(x*y+z-540)
       idiv x              ;
       push dx
       call outax
       mov al, 02h
       mov dl, '.'
       int 21h
       mov dl, '.'
       int 21h
       mov dl, '.'
       int 21h
       pop dx
       mov ax, dx
       call outax
       mov ax, 4c00h
       int 21h

outax  proc far      ;显示AX的内容
       push bx       ;保护现场
       push cx
       push dx
       mov bx, ax
       mov ch, 04    ;数据位计数器
rot:  mov cl, 4      ;数据位数有4bit
      rol bx, cl     ;将最高4bit移
      mov al, bl     ;到bl最低4bit
      and al, 0fh    ;并取出送到al
      add al, 30h    ;转换为ASCII码
      cmp al, 3ah    ;al>'9'?
      jb print       ;是'0' ~ '9'转
      add al,07      ;是'A' ~ 'F'再加7
print:  mov ah, 02
        mov dl, al
        int 21h      ;显示al字符
        dec ch       ;四位已经显示完没?
        jnz rot      ;还没有,转ROT
        pop dx       ;恢复现场
        pop cx
        pop bx
        ret          ;返回
outax  endp          ;子程序结束

code ends
     end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -