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