news 2026/5/9 10:41:51

Deepseek生成8088单板机的流水灯程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Deepseek生成8088单板机的流水灯程序

1.Deepseek会话指令

8位LED,端口地址800H,程序加载地址CS:IP 为0000:2000,用emu8086编写一流水灯程序

2.DeppSeek生成的程序

#make_bin# ; BIN is plain binary format similar to .com format, but not limited to 1 segment; ; All values between # are directives, these values are saved into a separate .binf file. ; Before loading .bin file emulator reads .binf file with the same file name. ; All directives are optional, if you don't need them, delete them. ; set loading address, .bin file will be loaded to this address: #LOAD_SEGMENT=0500h# #LOAD_OFFSET=0000h# ; set entry point: #CS=0500h# ; same as loading segment #IP=0000h# ; same as loading offset ; set segment registers #DS=0500h# ; same as loading segment #ES=0500h# ; same as loading segment ; set stack #SS=0500h# ; same as loading segment #SP=FFFEh# ; set to top of loading segment ; set general registers (optional) #AX=0000h# #BX=0000h# #CX=0000h# #DX=0000h# #SI=0000h# #DI=0000h# #BP=0000h# ; add your code here ; ============================================ ; 流水灯控制程序 ; 控制8位LED,端口地址800H ; 程序加载地址:CS:0000, IP:2000 ; 功能:实现多种流水灯效果 ; ============================================ PORT_LED EQU 800H ; LED控制端口地址 ORG 2000H ; 设置IP=2000H START: ; 初始化:关闭所有LED MOV AL, 0FFH ; 假设高电平灭,低电平亮(可根据实际调整) CALL OUTPUT_LED MAIN_LOOP: ; 效果1:从左到右流水(单灯流动) CALL FLOW_LEFT_TO_RIGHT ; 效果2:从右到左流水 CALL FLOW_RIGHT_TO_LEFT ; 效果3:两边向中间汇聚 CALL FLOW_CENTER_IN ; 效果4:中间向两边扩散 CALL FLOW_CENTER_OUT ; 效果5:全亮全闪 CALL BLINK_ALL JMP MAIN_LOOP ; 无限循环 ; ============================================ ; 子程序:向LED端口输出数据 ; 输入:AL = 要输出的数据 ; ============================================ OUTPUT_LED PROC MOV DX, PORT_LED OUT DX, AL RET OUTPUT_LED ENDP ; ============================================ ; 效果1:从左到右流水(单灯移动) ; ============================================ FLOW_LEFT_TO_RIGHT PROC PUSH CX PUSH AX MOV CX, 8 ; 循环8次 MOV AL, 01111111b ; 初始:最左灯亮(第7位为0) FLOW_LR_LOOP: CALL OUTPUT_LED ; 输出到LED CALL DELAY ; 延时 ROR AL, 1 ; 循环右移:01111111→10111111→11011111... LOOP FLOW_LR_LOOP POP AX POP CX RET FLOW_LEFT_TO_RIGHT ENDP ; ============================================ ; 效果2:从右到左流水 ; ============================================ FLOW_RIGHT_TO_LEFT PROC PUSH CX PUSH AX MOV CX, 8 MOV AL, 11111110b ; 初始:最右灯亮(第0位为0) FLOW_RL_LOOP: CALL OUTPUT_LED CALL DELAY ROL AL, 1 ; 循环左移:11111110→11111101→11111011... LOOP FLOW_RL_LOOP POP AX POP CX RET FLOW_RIGHT_TO_LEFT ENDP ; ============================================ ; 效果3:两边向中间汇聚 ; ============================================ FLOW_CENTER_IN PROC PUSH CX PUSH AX MOV CX, 4 ; 4个步骤 MOV AL, 01111110b ; 初始:两边亮(第7位和第0位为0) FLOW_CI_LOOP: CALL OUTPUT_LED CALL DELAY_LONG ; 稍长延时 ; 修改位模式:01111110→10111101→11011011→11100111 ; 先右移左边0位,再左移右边0位 MOV AH, AL AND AH, 0F0H ; 保留高4位 SHR AH, 1 ; 右移 AND AL, 0FH ; 保留低4位 SHL AL, 1 ; 左移 OR AL, AH ; 合并 LOOP FLOW_CI_LOOP POP AX POP CX RET FLOW_CENTER_IN ENDP ; ============================================ ; 效果4:中间向两边扩散 ; ============================================ FLOW_CENTER_OUT PROC PUSH CX PUSH AX MOV CX, 4 MOV AL, 11100111b ; 初始:中间两个亮 FLOW_CO_LOOP: CALL OUTPUT_LED CALL DELAY_LONG ; 修改位模式:11100111→11011011→10111101→01111110 MOV AH, AL AND AH, 0F0H SHL AH, 1 ; 左移 AND AL, 0FH SHR AL, 1 ; 右移 OR AL, AH LOOP FLOW_CO_LOOP POP AX POP CX RET FLOW_CENTER_OUT ENDP ; ============================================ ; 效果5:全亮全闪 ; ============================================ BLINK_ALL PROC PUSH CX PUSH AX MOV CX, 5 ; 闪烁5次 BLINK_LOOP: MOV AL, 00000000b ; 全亮 CALL OUTPUT_LED CALL DELAY_SHORT MOV AL, 11111111b ; 全灭 CALL OUTPUT_LED CALL DELAY_SHORT LOOP BLINK_LOOP POP AX POP CX RET BLINK_ALL ENDP ; ============================================ ; 延时子程序(基本延时) ; ============================================ DELAY PROC PUSH CX PUSH DX MOV CX, 02H ; 外循环 DELAY_OUTER: MOV DX, 0FFFFH ; 内循环 DELAY_INNER: DEC DX JNZ DELAY_INNER LOOP DELAY_OUTER POP DX POP CX RET DELAY ENDP ; ============================================ ; 较长延时(用于汇聚/扩散效果) ; ============================================ DELAY_LONG PROC PUSH CX PUSH DX MOV CX, 02H DELAY_LONG_OUTER: MOV DX, 0FFFFH DELAY_LONG_INNER: DEC DX JNZ DELAY_LONG_INNER LOOP DELAY_LONG_OUTER POP DX POP CX RET DELAY_LONG ENDP ; ============================================ ; 较短延时(用于闪烁效果) ; ============================================ DELAY_SHORT PROC PUSH CX MOV CX, 0FFFH DELAY_SHORT_LOOP: LOOP DELAY_SHORT_LOOP POP CX RET DELAY_SHORT ENDP DB 55H,55H,55H,55H,55H,55H ;添加Bootloader接受结束标志数据串 ; ============================================ ; 程序结束 ; ============================================ END START HLT ; halt!

3.拷入Emu8086,编译生成可执行代码

4.下载运行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 1:42:48

可靠运行的守护者:A5E45127009原厂配件的核心作用

在西门子罗宾康高压变频器的复杂架构中,每个指定编号的组件都承载着不可或缺的使命。A5E45127009作为经过原厂认证的关键备件,专为系统中特定的电路控制、信号隔离或电源管理功能而设计。其卓越的稳定性和精准的参数表现,是保障变频器整体性能…

作者头像 李华
网站建设 2026/5/1 11:56:39

ESP分区

电脑中的ESP分区是干什么的?UEFI(统一可扩展固件接口)与GPT(GUID分区表)的组合已成为现代计算机系统安装和启动的主流方式。然而,在这种新的安装方式下,一个名为“ESP分区”的组件显得尤为重要&…

作者头像 李华
网站建设 2026/5/9 6:37:04

规避交付风险,驱动生产效率:环形导轨选型核心逻辑与落地实施指南

摘要: 在自动化装配线、检测站及精密制造单元中,环形导轨系统已成为实现高效循环输送的关键基础设施。然而,一个常见的误区是仅关注导轨本身的品牌与价格,忽略了从设计源头到现场调试的全链路风险。本文旨在系统性地拆解环形导轨的…

作者头像 李华
网站建设 2026/5/9 10:28:06

vue3+vite mock引入使用

1、安装对应的包 npm install vite-plugin-mock mockjs -D2、配置 Vite vite.config.js import { defineConfig } from vite import vue from vitejs/plugin-vue import { viteMockServe } from vite-plugin-mockexport default defineConfig({plugins: [vue(),viteMockServe({…

作者头像 李华
网站建设 2026/5/8 16:17:47

Kotaemon如何处理超长文档?分块策略智能选择

Kotaemon如何处理超长文档?分块策略智能选择 在构建智能问答系统时,我们常常面临一个看似简单却影响深远的问题:一份长达上百页的技术手册、法律合同或企业制度文件,该如何喂给大语言模型? 毕竟,再强大的LL…

作者头像 李华
网站建设 2026/5/3 6:31:34

Kotaemon KV Cache复用技术解析:节省内存开销

Kotaemon KV Cache复用技术解析:节省内存开销 在构建企业级智能对话系统时,一个看似不起眼却影响深远的问题浮出水面:为什么用户问完第一个问题后,后续追问的响应速度越来越慢?为什么部署一个7B参数的模型需要动辄24G…

作者头像 李华