97_editerindos_temp.asm
来自「汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂」· 汇编 代码 · 共 166 行
ASM
166 行
.386
.model small
.stack 200
;stack segment para stack
; DW 200 DUP(?)
;stack ends
.data
;data segment para
toprow EQU 08
botrow EQU 15
lefcol EQU 26
attrib DB ?
row DB 00
shadow DB 19 DUP(0dbh)
menu Byte 0c9h,17 DUP(0cdh),0bbh
Byte 0bah,' Add records ',0bah
Byte 0bah,' Delete records ',0bah
Byte 0bah,' Enter orders ',0bah
Byte 0bah,' Print records ',0bah
Byte 0bah,' View records ',0bah
Byte 0c8h,17 DUP(0cdh),0bch
prompt Byte 'To select an item,use <Up/Down Arrow>'
Byte ' and press <Enter>.'
Byte 13,10,'Press <Esc> to exit.'
;data ends
;code segment para
; assume CS:code,DS:data,SS:stack
.code
main PROC FAR
mov ax,@data
;mov ax,data
mov ds,ax
mov es,ax
call Q10CLEAR ;满屏
mov row,botrow+4 ;设置行
A20:
call B10MENU
mov row,toprow+1
mov attrib,16H
call D10DISPLY
call C10INPUT
cmp al,1bH
jne A20
mov ax,0600H
call Q10CLEAR
mov ax,4c00h
INT 21H
main ENDP
B10MENU PROC NEAR
pusha
mov ax,1301H
mov bx,0060H
lea bp,shadow
mov cx,19
mov dh,toprow+1
mov dl,lefcol+1
B20:
INT 10H
inc dh
cmp dh,botrow+2
jne B20
mov attrib,71H
mov ax,1300H
movzx bx,attrib
lea bp,menu
mov cx,19
mov dh,toprow
mov dl,lefcol
B30:
INT 10H
ADD bp,19
inc dh
cmp dh,botrow+1
jne B30
mov ax,1301H
movzx bx,attrib
lea bp,prompt
mov cx,79
mov dh,botrow+4
mov dl,00
INT 10H
popa
RET
B10MENU ENDP
C10INPUT PROC NEAR
pusha
C20:
mov ah,10H
INT 16H
cmp ah,50H
je C30
cmp ah,48H
je C40
cmp al,0dH
je C90
cmp ah,1bH
je C90
jmp C20
C30:
mov attrib,71H
call D10DISPLY
inc row
cmp row,botrow-1
jbe C50
mov row,toprow+1
jmp C50
C40:
mov attrib,71H
call D10DISPLY
dec row
cmp row,toprow+1
jae C50
mov row,botrow-1
C50:
mov attrib,17H
call D10DISPLY
jmp C20
C90:
popa
RET
C10INPUT ENDP
D10DISPLY PROC NEAR
pusha
movzx ax,row
sub ax,toprow
imul ax,19
lea si,menu+1
add si,ax
mov ax,1300H
movzx bx,attrib
mov bp,si
mov cx,17
mov dh,row
mov dl,lefcol+1
INT 10H
popa
RET
D10DISPLY ENDP
Q10CLEAR PROC NEAR
pusha
mov ax,0600H
mov bh,61H
mov cx,0000
mov dx,184fH
INT 10H
popa
RET
Q10CLEAR ENDP
;code ENDS
END main
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?