8086汇编常见问题及解决方案

本文详细列举了8086汇编编程中遇到的一些典型问题,包括低级错误如忘记设置data段,键盘输入与扫描码的处理,文件读写操作,如何避免死循环,解决跳转指令距离过远的问题,屏幕输出方法,程序结束退出,设置颜色,生成随机数以及获取和显示时间的方法。并提供了俄罗斯方块的完整8086汇编代码示例链接。
摘要由CSDN通过智能技术生成

(乱序)
附: 8086汇编,俄罗斯方块完整代码:
https://github.com/Dulun/Assembly

1.低级错误

忘记设置data段

mov ax,data
mov ds, ax

2.键盘输入&扫描码

equ:宏替换,

$left   equ 75
$right  equ 77
$quit   equ 113

int 16h 中断:从键盘缓冲区读取数据
入口参数:AH=00H——读键盘
出口参数:ZF=1——无字符输入,否则,AH=键盘的扫描码,AL=ASCII码。

mov ax, 0h
int 16h
cmp al,'a'       ;ascii码
...
cmp ah, 75        ;扫描码(上下左右esc)

3.文件读写

data
...
    path1           db 'c:/score.txt'
    buffer1         db 0
    buffer2         db 49
...

data ends

read_score proc near

    mov ax, data
    mov ds, ax

    ;打开文件TEST.TXT
    mov ah,3DH
    lea dx,path1
    mov al,2
    int 21H
    jc gones


    ;读取文件内容,存入buffer1
    lea dx,buffer1
    mov bx,ax
    mov cx,1
    mov ah,3FH
    int 21H

    ; ;显示buffer1中的内容
    ; mov cx,ax
    ; lea si,buffer1
    ; NEXT:
    ; mov dl,[si]
    ; mov ah,2
    ; int 21H
    ; INC si
    ; LOOP NEXT
    xor ax,ax
    mov al,buffer1[0]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值