第4章演習の編集

演習1:siから始まる3ワードのユニットには、符号なしの数値があり、これらの3つの数値を加算する必要があり、結果は次のユニットに格納されます。

  重要:これは符号なしの数値であることに注意してください。加算中、CFがキャリーを生成している限り、オーバーフローが発生します。

DATA SEGMENT 
    BUF DW XXH、YYH、ZZH 
    SUM DW?、?
    データ終了
コードセグメントの
    仮定CS:CODE、DS:DATA 
開始:MOV AX、DATA 
    MOV DS、AX 
    
    LEA SI、BUF   
    LEA DI、SUM 
    MOV AX、[SI] 
    ADD AX、[SI + 2 ] 
    MOV [DI]、AX 
    MOV AX、0 
    ADC AX、O 
    MOV [DI + 2 ]、AX 
    MOV AX、[DI] 
    MOV AX、[SI + 4 ] 
    MOV [DI]、AX 
    ADC [DI + 2 ]、0 
    MOV AH、4CH 
    INT 21H 
代金引換終了
終了開始

 演習2:アドレスオフセット100Hから開始して、それぞれ00H、01H、02Hまで256ユニットを書き込むプログラムを作成してみてください。、FFH。

  LOOPサイクルを選択します。

データセグメント
    ORG 100H 
    BUF1 DB 256 DUP(? 
    COUNT EQU $ - BUF1 
    DATA ENDS 
STKのセグメントSTACK 
    DB 100 DIP(? 
    STK ENDS 
コードセグメントは、
    CSを想定:CODE、DS:DATA、SS:STK 
    START:MOV AX、データ
    MOV DS、AX 
    MOV SI、OFFSET BUF1 
    MOV CX、COUNT 
    XOR AL、AL 
    NEXT:MOV [SI]、AL 
    INC AL 
    INC SI 
    LOOP NEXT 
    MOV AH 4CH 
    INT 21H 
    CODE ENDS 
END START

演習3:上記のデータブロックに書き込まれた要素の0要素、正の数、および負の数を数え、上記のデータブロックの最後の3ユニットに同じi結果を書き込みます。

 

セグメントデータ
    ORG 100H 
    BUF1のDB 00H、01H、02H ,,, FFH、私たちは今定義すると
    COUNT EQU $を - BUF1 
    DB 3 DUP(? 
    データENDS 
STKのセグメントSTACK 
    DB 100 DIP(? 
    STK ENDS 
コードセグメント
    引き受けるCS:CODE 、DS:DATA、SS:STK 
    START:MOV AX、DATA 
    MOV DS、AX 
    MOV SI、OFFSET BUF1 
    MOV CX、COUNT 
    XOR BX、BX;正および負の
    XOR DH、DHを格納するために使用、負の
    NEXT2 を格納するために使用: MOV AL、[SI] 
    CMP AL、0 
    JZ ZERO 
    JS NEGAT 
    INC BL
    JMP NEXT3    
    ZERO:INC DH 
    NEGAT:INC BH 
    NEXT3:INC SI 
    LOOP NEXT2 
    MOV [SI]、DH 
    INC SI 
    MOV [SI]、BX 
    MOV AH 4CH 
    INT 21H 
    コード終了
END START

演習4:STRG1から始まる128ユニットの内容をSTRG2から始まるユニットに転送します。

  通常、プログラムを構築するためにLOOPループ構造を選択しますが、MOVSB move stringコマンドもこれに使用できます。

データセグメント
    STRG1 DB XXH、XXH、XXH ,,,, XXH 
    SOUNT EQU $ - STRG1 
    STRG2 DB 128 DUP(? 
    DDATA ENDS 
コードセグメントは、
    CSを想定:CODE、DS:DATA 
    START:MOV AX、データ
    MOV DS、AX 
    MOV SI 、オフセットSTRG1 
    LEA DI、STRG2 
    MOV CX、COUNT 
    CLD 
    REP MOVSB 
    MOV AH、4CH 
    INT 21H 
    コード終了
END START

 

続きます、続きます...

おすすめ

転載: www.cnblogs.com/a-runner/p/12676330.html