《微机原理与接口技术》(第四版)周何琴
- 编程实现:在显示器上显示全部标准和扩展ASCII码(其编码为00~FFH)字符。(参考例4.33。)
| CODE SEGMENT |
| ASSUME CS:DODE |
| START: |
| MOV CX,0FFH |
| MOV AL,00H |
| LOOP1: |
| MOV DL,AL |
| MOV AH,02H |
| INT 21H |
| INC AL |
| LOOP LOOP1 |
| |
| MOV AH,4CH |
| INT 21H |
| CODE ENDS |
| END START |
- 编程实现:从键盘输入一个十进制数字0~9,查表求键入数字的七段代码,存入DL中,并在键入数字之前,显示提示信息“Please input a number:”。(参考例4.34。)
| DATA SEGMENT |
| TABLE DB 40H,79H,24H,30H,19H |
| DB 12H,02H,78H,00H,18H |
| PROMPT DB 'Please input a number:','$' |
| DATA ENDS |
| |
| CODE SEGMENT |
| ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA |
| START: |
| PUSH DS |
| MOV AX,DATA |
| MOV DS,AX |
| MOV DX,OFFSET PROMPT |
| MOV AH,09H |
| INT 21H |
| MOV AH,1 |
| INT 21H |
| AND AL,0FH |
| MOV BX,OFFSET TABLE |
| XLAT |
| MOV DL,AL |
| POP DS |
| HLT |
| CODE ENDS |
| END START |
- 某个学生的英语成绩已存放在BL中,如果低于60分,则显示F(Fail),如高于或等于85分,则显示G (Good),否则显示P(Pass),试编写完整的汇编语言程序来实现。(程序流程见图4.8。)
| MOV AL,66 |
| CMP AL,85 |
| JAE GOOD |
| CMP AL,60 |
| JAE PASS |
| JB FAIL |
| |
| GOOD: |
| MOV DL,'G' |
| JMP OVER |
| PASS: |
| MOV DL,'P' |
| JMP OVER |
| FAIL: |
| MOV DL,'F' |
| JMP OVER |
| OVER: |
| MOV AH,02H |
| INT 21H |
- 在TABLE开始的内存宇节单元中,存放了12个带符号数,试编写完整的汇编语言程序统计其中的正数、负数和零的个数,分别存入PLUS.NEG 和ZERO单元中。(参考例3.89。
| DATAS SEGMENT |
| CAT DB 0AH,0DH,"$"; |
| msg1 DB "positive: ","$" |
| msg2 DB "negative: ","$" |
| msg3 DB "zero : ","$" |
| TABLE DB 1,2,-3,4,5,0,-6,7,-8,-9,0,10 |
| DATAS ENDS |
| |
| STACKS SEGMENT |
| STACKS ENDS |
| |
| CODES SEGMENT |
| ASSUME CS:CODES,DS:DATAS,SS:STACKS |
| START: |
| MOV AX,DATAS |
| MOV DS,AX |
| MOV SI,OFFSET TABLE |
| MOV CL,0 |
| MOV CH,0 |
| MOV BH,0 |
| MOV BL,0 |
| |
| AGAIN: |
| CMP CL,12 |
| JE OVEROUTPUT |
| MOV AL,[SI] |
| CMP AL,0H |
| JZ ZERO |
| JS NEGATIVE |
| JMP POSITIVE |
| |
| ZERO: |
| ADD CH,1 |
| JMP over |
| NEGATIVE: |
| ADD BL,1 |
| JMP over |
| POSITIVE: |
| ADD BH,1 |
| JMP over |
| |
| OVER: |
| ADD CL,1 |
| ADD SI,1 |
| JMP again |
| |
| OVEROUTPUT: |
| LEA DX, msg1 |
| MOV AH, 09H |
| INT 21H |
| |
| add BH,48 |
| mov DL,BH |
| mov AH,2 |
| int 21H |
| |
| LEA DX, CAT |
| MOV AH, 09H |
| INT 21H |
| |
| LEA DX, msg2 |
| MOV AH, 09H |
| INT 21H |
| |
| add BL,48 |
| mov DL,bl |
| mov AH,2 |
| int 21H |
| |
| LEA DX, CAT |
| MOV AH, 09H |
| INT 21H |
| |
| LEA DX, msg3 |
| MOV AH, 09H |
| INT 21H |
| |
| add CH,48 |
| mov DL,CH |
| mov AH,2 |
| int 21H |
| |
| LEA DX, CAT |
| MOV AH, 09H |
| INT 21H |
| |
| MOV AH,4CH |
| INT 21H |
| CODES ENDS |
| END START |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律