ASM
『高級言語プログラマのためのアセンブラ入門』 187ページあたり EXTERN MSG:BYTE CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov ah,09H mov dx,OFFSET MSG int 21H ;--------…
『高級言語プログラマのためのアセンブラ入門』 187ページあたり EXTERN PUT_AX:NEAR EXTERN NUM1:WORD CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov ax,NUM1 call PUT_AX ;-…
『高級言語プログラマのためのアセンブラ入門』 191ページあたり TEST1 RECORD F1:4,F2:5,F3:7 EXTERN PUT_AX:NEAR CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov ax,03FFFH a…
『高級言語プログラマのためのアセンブラ入門』 190ページあたり .RADIX 16 CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov ah,9 mov dx,OFFSET MSG int 21 mov ah,4C int 21 MSG DB "Hello World",0DH,0AH,'$' CDSEG ENDS END START
『高級言語プログラマのためのアセンブラ入門』 189ページあたり CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov ah,BYTEDT mov dx,OFFSET MSG int 21H ; mov ax,NEWDT ; mov ax,MYDT mov ah,BYTEDT[1] int 21H MSG DB "Hello World"…
『高級言語プログラマのためのアセンブラ入門』 188ページあたり CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov ah,09H mov dx,OFFSET MSG int 21H INCLUDE 2008020801_INCLUDE.asm 2008020801_INCLUDE.asm mov ah,4CH int 21H MSG …
『高級言語プログラマのためのアセンブラ入門』 187ページあたり 数値も文字列も使える EQU 数値だけ使える = 文字列だけ使える TEXTEQU ということらしい。 あって嬉しいのか?単なる対象性のためだけ?と思ったが、どうやら私のイメージしたものとは違うよ…
『高級言語プログラマのためのアセンブラ入門』 186ページあたり「,」が入ろうと、スペースが入ろうと大丈夫なようだ F09 EQU ah, 09H F4C EQU ah,4CH CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov F09 mov dx,OFFSET MSG int 21H …
『高級言語プログラマのためのアセンブラ入門』 186ページあたり「$」も識別子に使えるらしい CRLF$ EQU 0DH,0AH,'$' CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov ah,09H mov dx,OFFSET MSG int 21H mov ah,4CH int 21H MSG DB "H…
『高級言語プログラマのためのアセンブラ入門』 186ページあたり「&」で連結できるらしい。 CHAR_M EQU M CHAR_E EQU E CHAR_S EQU S MES EQU CHAR_M&CHAR_E&CHAR_S ECHO MES CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov ah,09H m…
『高級言語プログラマのためのアセンブラ入門』 186ページあたりEQU は、テキストマクロとしても使えるらしい。 ORG_ADR EQU 100H MES EQU "Hello World" REG_AH EQU ah CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG ORG_ADR START: mov REG_AH,09H…
『高級言語プログラマのためのアセンブラ入門』 186ページあたり ;ORG_ADR EQU 100H MES EQU "Hello World" ORG_ADR = 100H ;MES = "Hello World" CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG ORG_ADR START: mov ah,09H mov dx,OFFSET MSG int 21…
『高級言語プログラマのためのアセンブラ入門』 186ページあたり ORG_ADR EQU 100H MES EQU "Hello World" CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG ORG_ADR START: mov ah,09H mov dx,OFFSET MSG int 21H mov ah,4CH int 21H MSG DB MES,0DH,0…
『高級言語プログラマのためのアセンブラ入門』 185ページあたり「DUP(値)」と「DUP(?)」の違いを確認。 CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから ;-----------------------codeここ…
『高級言語プログラマのためのアセンブラ入門』 185ページあたり CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG ORG 100H START: mov ah,09H mov dx,OFFSET MSG int 21H mov ah,4CH int 21H MSG DB 'G',10 DUP(6FH),"gle",0DH,0AH,'$' CDSEG ENDS END ST…
『高級言語プログラマのためのアセンブラ入門』 185ページあたり CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov al,127 call LCMP mov al,DB_M128 ; -128 call LCMP mov al,DB_M129 ;…
『高級言語プログラマのためのアセンブラ入門』 184ページあたり「DB, DW, DD, DF, DQ, DT」の別名としても使える。 なんで必要なんだろうね?と思ったら、PTR 演算子の型指定に使えるというのがミソらしい。
『高級言語プログラマのためのアセンブラ入門』 183ページあたりas_com.asm 改で DB のところを DW で書けるかやってみた。「H」が「0x48」、「e」が「0x65」、「l」が「0x6c」といった感じなので、 上下バイトを逆に書く必要があった。 CDSEG SEGMENT ASSUM…
『高級言語プログラマのためのアセンブラ入門』 183ページあたり複数行コメント。 「COMMENT」「区切り文字」「コメント本体」「区切り文字」らしい。 COMMENT $ hoge hoge $ COMMENT . hoge hoge . COMMENT ( hoge hoge ( なんてのが書けた。
『高級言語プログラマのためのアセンブラ入門』 182ページあたり50ページあたりの EXE 形式の簡易化セグメント方式の記述を参考に、 as_com.asm 改で COM 形式で TINY モデルを使ってみる。 ;CDSEG SEGMENT ; ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG .MODEL TINY…
ファイルまわりのファンクションコールは後回しにし、先に進む。 『高級言語プログラマのためのアセンブラ入門』 180ページ以降の第7章のディレクティブ(擬似命令)as_com.asm 改で「ORG 100H」をコメントアウトしてみる。 CDSEG SEGMENT ASSUME cs:CDSEG,ds:…
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 0AH は、「コンソールからの文字列入力」 EXTERN PUT_AX:NEAR CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;--------------------…
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 09H は、「ディスプレイへの文字列の出力」 CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov ah,0…
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 08H は、「キーボードから1文字入力」 ファンクションコール 01H とはエコーがないのが違う。 EXTERN PUT_AX:NEAR CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK S…
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 07H は、「コンソールから直接入力」 ファンクションコール 01H とはエコーがないのが違う。 「キーボードから」と「コンソールから」というのも違う。これは、リダイレ…
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 06H は、「コンソールとの直接入出力」 まず入力の確認用コード(dl に FF を設定) EXTERN PUT_AX:NEAR CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov a…
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 02H は、「ディスプレイへの1文字出力」 CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov dl,'A' …
『高級言語プログラマのためのアセンブラ入門』 171ページあたりファンクションコール 01H は、「キーボードから1文字入力」 EXTERN PUT_AX:NEAR CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------…
『高級言語プログラマのためのアセンブラ入門』 160ページ EXTERN PUT_AX:NEAR CODE SEGMENT PUBLIC ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax ;-----------------------codeここから mov ax,0A5A5H mov bx,05A5AH xchg ax,bx call PUT_A…
『高級言語プログラマのためのアセンブラ入門』 157ページの tst_sub.asm をコンパイル、実行。 0FF4 FFFF