- 试编写程序,给从主存40000H到4B3FH(总共是有三个F但是禁止输入同样的符号)的每个单元中均写入55H,并逐个单元读出比较。若写入的与读出的完全一致,则将 AL置 7EH;若有错,则将AL置81H。
- 试编写程序,统计由主存40000H开始的16K个单元中所存放的字符“A”的个数,并将结果存放在DX中。
求具体的代码截图和运行结果截图,一定要有运行结果截图
微机原理汇编语言程序实践
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
9条回答 默认 最新
关注引自免费微信小程序-皆我百晓生,希望对题主有所帮助,如有帮助,还望采纳。
以下是汇编语言实现的代码:
ORG 100H MOV AX, 4000H ; 设置起始地址 MOV CX, 4B3FH-4000H ; 设置循环次数 ; 初始化主存数据 MOV DI, AX MOV AL, 55H MOV AH, 0 LABEL_WRITE: MOV [DI], AL ; 写入55H INC DI ; 递增地址 LOOP LABEL_WRITE ; 循环写入 ; 比较主存数据 MOV DI, AX MOV CX, 4B3FH-4000H ; 设置循环次数 LABEL_COMPARE: CMP [DI], AL ; 与55H进行比较 JNE WRONG ; 不一致跳转到WRONG标签 INC DI ; 递增地址 LOOP LABEL_COMPARE ; 循环比较 ; 所有数据一致 MOV AL, 7EH ; 将AL置为7EH JMP FINISH ; 数据不一致 WRONG: MOV AL, 81H ; 将AL置为81H ; 结束 FINISH: HLT END以下是统计字符"A"个数的代码:
ORG 100H MOV AX, 4000H ; 设置起始地址 MOV CX, 4000H+4000H ; 设置循环次数 ; 统计字符个数 MOV BX, 0 ; 用于记录个数的寄存器 LABEL_COUNT: CMP BYTE PTR [AX], 'A' ; 与字符'A'进行比较 JNE NOT_A ; 不是字符'A'跳转到NOT_A标签 INC BX ; 个数加1 NOT_A: INC AX ; 递增地址 LOOP LABEL_COUNT ; 循环统计 ; 结果存储在DX中 MOV DX, BX HLT END希望能帮到你!
评论 打赏 举报 编辑记录解决 1无用