←前へ :  INDEX :  練習問題へ→


例)
先ほどの「A」と表示するプログラムを直接アドレス法、間接アドレス法を用いて書き換えると次のようになる。

直接アドレス法
CODE	SEGMENT
	ASSUME	DS:CODE,CS:CODE,ES:CODE,SS:CODE
	.186
	ORG	100h

START:
	mov	ah,2
	mov	dl,DATA
	int	21h

	mov	ax,4c00h
	int	21h

DATA	byte	'A'

	ENDS
	END	START
; 一部のコンパイラでは、
;CODE	ENDS
;	END	START
;と記述しなければいけないようです

間接アドレス法
CODE	SEGMENT
	ASSUME	DS:CODE,CS:CODE,ES:CODE,SS:CODE
	.186
	ORG	100h

START:
	mov	ah,2
	mov	bx,offset DATA
	mov	dl,[bx]
	int	21h

	mov	ax,4c00h
	int	21h

DATA	byte	'A'

	ENDS
	END	START
; 一部のコンパイラでは、
;CODE	ENDS
;	END	START
;と記述しなければいけないようです

  「DATA byte 'A'」は、変数「DATA」をバイト型で作り、初期値として'A'の文字コードを入れておけという命令です。

  ラベル名で使用できる文字は「アルファベット」「数字」「一部の記号」です。数字以外の文字で始まり、247文字以内でなければなりません。また予約語、アセンブラの命令は当然使えません。大文字小文字の区別は普通しないが、コンパイラにもよります。記号は特別な用途に用いられるものもあるため、「_(アンダーバー)」以外はあまり使いません。


←前へ :  INDEX :  練習問題へ→