N88-BASIC、アセンブラ、Cでポインター (6回目)

2023/1/31(火) N88-BASIC、アセンブラ、Cでポインター (6回目) C言語にポインターが存在する意味が 文字列中のアルファベットの小文字を 大文字に変換するプログラムを作ることで 何となく分かるようにするシリーズです 今回はアセンブラ(8086系)の プログラムの紹介です 前回のポインターを使用したCからの変換です プログラムと解説はコメント(/* … */)を見て下さい blg~.zip中のptr006asm.cです #include <stdio.h> /* printf等使用の為 */ void main( void ) /* mainから実行 */ { c har * p; /* p = a (aは&a[0]) */ char a[256]; /* 255文字+終端'\0' */ printf( "? " ); gets_s(a, 256); /* 文字列入力 */ printf( "%s\n" , a); /* 文字列表示 */ p = a; /* mov ebx,aがerrorの為 */ __asm /* 次の{}内がアセンブラ */ { mov ebx,p; ; ebxレジスタ(32bit) = p L1: mov al,[ebx] ; alレジスタ(8bit) = *ebx test al,al ; al & al (0のチェック) je L3 ; if (al == 0 ) goto L3 cmp al, 'a' ; if (al < 'a...