[汇编]统计成绩分布
1 data segment 2 ; add your data here! 3 goals dw 76,69,84,90,73,88,99,63,100,80 ;字存储成绩 4 S6 dw 30h;ascil的'0'便于输出 5 S7 dw 30h 6 S8 dw 30h 7 S9 dw 30h 8 S10 dw 30h 9 ends 10 11 code segment 12 main proc far 13 assume cs:data,ds:code 14 start: 15 ; set segment registers: 16 push ds 17 sub ax,ax 18 push ax 19 mov ax,data 20 mov ds,ax 21 begin: 22 mov cx,10;loop循环次数 23 call cout 24 mov cx,5 25 call print 26 ret 27 main endp 28 ;----------------------------------- 29 cout proc near ;统计成绩的子程序 30 mov si,0 31 next: 32 mov ax,goals[si];把分数给ax 33 mov bx,10;被除数 34 div bl ;无符号除[(AL)=(AX)/SRC,(AH)=(AX)%SRC]被除数为8位 35 ;[这里获得分数的十位数] 36 mov bl,al;把分数的十位数字放在bl中 37 sub bx,6 ;把十位数字减6[因为S6为第一个箱子表示60-70分数,bx-6可做偏移量] 38 sal bx,1 39 add S6[bx],1;对应的箱子加一 40 add si,2 ;因为是DW型要加2才会取出goals的下一个 41 loop next ;loop终止条件cx=0 ,所以上面cx先赋值10,每次循环自减 42 ret 43 cout endp 44 ;---------------------------------- 45 print proc near ;输出子程序 46 mov si,0 47 continue: 48 push ax 49 mov ax,S6[si] ;用ax转成字,注意保护ax 50 mov dl,al ;02中断,dl为输出字符 51 mov ah, 02h 52 int 21h 53 add si,2 54 pop ax 55 mov dl,02h ;输出一个笑脸 56 mov ah, 02h 57 int 21h 58 loop continue 59 print endp 60 ;--------------------------------- 61 code ends 62 end start
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?