|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我在这里设置了一个:
cmp ah, 0e
je backspace
然后在按回车但是为什么一按回车就崩溃呢?
我感觉我的逻辑没有错误的地方啊
- assume cs:code, ds:data
- data segment
- table db 128 dup (0)
- data ends
- code segment
- start:
- mov si, 0
- mov ax, 0b800h
- mov es, ax
- mov bx, 0
- start_1:
- mov ah, 0
- int 16h
-
- cmp ah, 1ch
- je over_end
-
- cmp ah, 0eh
- je backspace
-
- call input
-
- jmp short start_1
- over_end:
- mov ax, 4c00h
- int 21h
-
- input: ;判断是否为数字
- cmp al, 30h
- jae input_1 ;无符号大于等于0则转移
- jmp short input_end
- input_1:
- cmp al, 39h ;无符号小于等于9则转移
- jbe input_4
- input_2: ;判断是否为小写英文字母
- cmp al, 61h
- jae input_3
- jmp short input_end
- input_3:
- cmp al, 7ah
- jbe input_4
- jmp short input_end
- input_4:
- mov byte ptr table[si], al
- mov byte ptr es:[bx + si + 1920], al
- mov byte ptr es:[bx + si + 1920 + 1], 2
- inc bx
- inc si
- input_end:
- ret
-
- backspace: ;这块这块删除后会出现崩溃不知道原因哪位大神能给看看指点一下麻烦了
- dec bx
- dec si
- mov byte ptr table[si],0
- mov byte ptr es:[bx + si + 1920], ' '
- mov byte ptr es:[bx + si + 1920 + 1], 0
- jmp short start_1
- code ends
- end start
复制代码
- assume cs:code, ds:data
- data segment
- table db 128 dup (0)
- data ends
- code segment
- start:
- ; ^_^
- mov ax, data
- mov ds, ax
-
- mov si, 0
- mov ax, 0b800h
- mov es, ax
- mov bx, 0
- start_1:
- mov ah, 0
- int 16h
-
- cmp ah, 1ch
- je over_end
-
- cmp ah, 0eh
- je backspace
-
- call input
-
- jmp short start_1
- over_end:
- mov ax, 4c00h
- int 21h
-
- input: ;判断是否为数字
- cmp al, 30h
- jae input_1 ;无符号大于等于0则转移
- jmp short input_end
- input_1:
- cmp al, 39h ;无符号小于等于9则转移
- jbe input_4
- input_2: ;判断是否为小写英文字母
- cmp al, 61h
- jae input_3
- jmp short input_end
- input_3:
- cmp al, 7ah
- jbe input_4
- jmp short input_end
- input_4:
- mov byte ptr table[si], al
- mov byte ptr es:[bx + si + 1920], al
- mov byte ptr es:[bx + si + 1920 + 1], 2
- inc bx
- inc si
- input_end:
- ret
-
- backspace: ;这块这块删除后会出现崩溃不知道原因哪位大神能给看看指点一下麻烦了
- dec bx
- dec si
- mov byte ptr table[si],0
- mov byte ptr es:[bx + si + 1920], ' '
- mov byte ptr es:[bx + si + 1920 + 1], 0
- jmp short start_1
- code ends
- end start
复制代码
|
|