微机原理与接口技术——汇编语言

微机相关的问题
基于微机系统的一些小问题
望提出建议供参考学习,希望提出宝贵的思路和方法


section .data

HEADER1 db 0x5A
HEADER2 db 0xA5
STATION_ADDRESS db 0x50
READ_COMMAND db 0x81
WRITE_COMMAND db 0x80
ADDRESS_HIGH db 0x30
ADDRESS_LOW db 0x40
DATA db 0xAA

section .bss

request resb 9

section .text

calc_checksum:
    xor eax, eax
    xor ebx, ebx

.loop:
    add al, byte [edi + ebx]
    inc ebx
    cmp ebx, esi
    jne .loop

    ret

main:
    ; 初始化串口
    ; 打开串口并设置波特率等参数

.loop:
    ; 读取下位机 50 的地址为300的数据
    mov byte [request], HEADER1
    mov byte [request + 1], HEADER2
    mov byte [request + 2], STATION_ADDRESS
    mov byte [request + 3], READ_COMMAND
    mov byte [request + 4], ADDRESS_HIGH
    mov byte [request + 5], ADDRESS_LOW
    mov byte [request + 6], 0x01
    mov edi, request
    mov esi, 7
    call calc_checksum
    mov byte [request + 7], al
    ; 发送请求报文
    ; 等待下位机的回复报文
    ; 解析报文中的数据码

    ; 写入下位机 50 的3040地址数据为AA
    mov byte [request], HEADER1
    mov byte [request + 1], HEADER2
    mov byte [request + 2], STATION_ADDRESS
    mov byte [request + 3], WRITE_COMM

img


问题是这个