编写程序,查找内部RAM的30-49h单元中出站0ABH并将结果存入50H单元
1个回答
关注
展开全部
您好,根据您的要求,我为您编写了如下程序:MOV AX, 30H ; 将30H存入AX寄存器MOV BX, 49H ; 将49H存入BX寄存器MOV CX, 0ABH ; 将0ABH存入CX寄存器MOV DX, 50H ; 将50H存入DX寄存器MOV SI, AX ; 将AX的值赋给SILOOP:MOV AL, [SI] ; 将SI指向的内存单元的值存入ALCMP AL, CX ; 比较AL和CX的值JE FOUND ; 如果相等,跳转到FOUNDINC SI ; SI加1CMP SI, BX ; 比较SI和BX的值JLE LOOP ; 如果小于等于,跳转到LOOPFOUND:MOV [DX], AL ; 将AL的值存入DX指向的内存单元END:HLT ; 结束程序
咨询记录 · 回答于2023-02-18
编写程序,查找内部RAM的30-49h单元中出站0ABH并将结果存入50H单元
您好,根据您的要求,我为您编写了如下程序:MOV AX, 30H ; 将30H存入AX寄存器MOV BX, 49H ; 将49H存入BX寄存器MOV CX, 0ABH ; 将0ABH存入CX寄存器MOV DX, 50H ; 将50H存入DX寄存器MOV SI, AX ; 将AX的值赋给SILOOP:MOV AL, [SI] ; 将SI指向的内存单元的值存入ALCMP AL, CX ; 比较AL和CX的值JE FOUND ; 如果相等,跳转到FOUNDINC SI ; SI加1CMP SI, BX ; 比较SI和BX的值JLE LOOP ; 如果小于等于,跳转到LOOPFOUND:MOV [DX], AL ; 将AL的值存入DX指向的内存单元END:HLT ; 结束程序
图片有点模糊可以打字吗
编写程序,查找在内部RAM的30H-49H单元中出现0ABH的次数,并将结果存入50H
单元
MOV R0, #30H ; 将R0寄存器初始化为30H地址MOV R1, #49H ; 将R1寄存器初始化为49H地址MOV R2, #0 ; 将R2寄存器初始化为计数器,用于计算0ABH的出现次数LOOP: MOV A, @R0 ; 将R0指向的内部RAM地址中的值存入累加器A中 CJNE A, #0ABH, NOT_FOUND ; 如果累加器A的值不等于0ABH,跳转到NOT_FOUND标签 INC R2 ; 如果累加器A的值等于0ABH,将R2寄存器的值加1NOT_FOUND: INC R0 ; 将R0寄存器的值加1,指向下一个内部RAM地址 DJNZ R1, LOOP ; 如果R1寄存器的值不为0,则跳转回LOOP标签MOV @50H, R2 ; 将计数器R2的值存入50H地址中
你看看对不对