8086匯編習題筆記
阿新 • • 發佈:2018-05-07
獲取 任務 ring img pan AC 習題 set 內存
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匯編習題筆記