8086汇编习题笔记
Posted scrazy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8086汇编习题笔记相关的知识,希望对你有一定的参考价值。
1.若自STRING单元开始存放有一个字符串(以字符‘$’结束),请实现以下任务:
⑴ 编程统计该字符串长度(不包含字符‘$’,并假设长度为两字节)。
⑵ 把字符串长度放在STRING单元,把整个字符串往下移两个单元。
(1)
1 DATA SEGMENT 2 STRING DB ‘HELLO ASM$‘ 3 DATA ENDS 4 CODE SEGMENT 5 ASSUME CS:CODE,DS:DATA;不然会导致无效操作 6 ;LEN AX,STRING;为什么不行 7 ;MOV AX , OFFSET STRING 为毛也不行 8 LEA SI, STRING 9 ;这里如何获取内存的物理地址里的值 10 ;SI里保存偏移地址,为区分寄存器寻址需要使用中括号[],使用SI,DI,BX时候默认的段基地址为DS,使用BP(堆栈)时候,段基地址为SS 11 AGAIN: 12 MOV AL, [SI] ;这里AL里存放的是数值,不是地址,下一个字符只需要inc si即可 13 INC SI 14 CMP AL,‘$‘ 15 JNZ ACTION 16 JZ OUTPUT 17 ACTION: 18 INC DL 19 JMP AGAIN 20 OUTPUT: 21 ;注意不能直接输出,记得先转ascll码 22 ADD DL,30H 23 MOV AH,02H 24 INT 21H 25 CODE ENDS
初始寄存器值:结束后:
以上是关于8086汇编习题笔记的主要内容,如果未能解决你的问题,请参考以下文章