1. 程式人生 > >8086匯編習題筆記

8086匯編習題筆記

獲取 任務 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匯編習題筆記