2007-11-01から1ヶ月間の記事一覧
『高級言語プログラマのためのアセンブラ入門』 83ページセグメントがらみを試してみる CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax mov ah,02H mov dl,DATA:[0] int 21H mov ah,4CH int 21H CODE ENDS DATA SEGMENT MSG DB "…
『高級言語プログラマのためのアセンブラ入門』 79〜83ページあたり一部を試してみる CODE SEGMENT ASSUME cs:CODE,ds:DATA,ss:STK START: mov ax,DATA mov ds,ax mov ah,02H mov dl,MSG[1] int 21H mov ah,02H mov di,1 mov dl,MSG[di] int 21H mov ah,02H …
『高級言語プログラマのためのアセンブラ入門』 79ページ mov bx, [ax] mov ax, [cx]あたりがエラーになるらしい。 ベースレジスタやインデックスレジスタでないとレジスタ間接指定できないらしい。 へー、そういうもんなんだ。
『高級言語プログラマのためのアセンブラ入門』 69ページのセグメント名について これまでは「CDSEG」「DTSEG」「STSEG」を使用してきた 普通は慣例的に「CODE」「DATA」「STACK」が使用される これからは「CODE」「DATA」「STK」を使用する とのこと。 (「S…
『高級言語プログラマのためのアセンブラ入門』 68ページの as_eseg.asm をコンパイル、実行。 ABAES レジスタの本来の用途はこんなことなのだろうか???
『高級言語プログラマのためのアセンブラ入門』 66ページの as_group.asm をコンパイル、実行。 ABAセグメントのグループ化の意図・意義が良く分からない。そんなに論理的に分けたいのか? 別々に作ったものを混ぜるためなのか?
『高級言語プログラマのためのアセンブラ入門』 64ページの as_2dseg.asm をコンパイル、実行。 ABA
ふと疑問に思ったので、確認 CDSEG SEGMENT ASSUME cs:CDSEG,ds:DTSEG,ss:STSEG START: mov ax,DTSEG mov ds,ax mov ah,09H ;mov dx,OFFSET MSG mov dx,OFFSET ds:MSG int 21H mov ah,4CH int 21H CDSEG ENDS DTSEG SEGMENT MSG DB "Hello World$" DTSEG END…
『高級言語プログラマのためのアセンブラ入門』 62ページの説明の確認+α。 CDSEG SEGMENT ASSUME cs:CDSEG,ds:DTSEG,ss:STSEG START: mov ax,DTSEG mov ds,ax ;mov ah,09H ;mov dx,OFFSET MSG mov ah,02H mov dl,MSG int 21H mov ah,4CH int 21H CDSEG ENDS…
『高級言語プログラマのためのアセンブラ入門』 62ページのコードを見ていて気がついた。 CDSEG SEGMENT ASSUME cs:CDSEG,ds:DTSEG,ss:STSEG START: mov ax,DTSEG mov ds,ax mov ah,09H mov dx,OFFSET MSG int 21H mov ah,4CH int 21H CDSEG ENDS DTSEG SEGM…
2007-11-17 id:noritsugu:20071117:MASM のデフォルトセグメントレジスタの動作確認 失敗のリベンジ?『高級言語プログラマのためのアセンブラ入門』 58ページの記述に近づけて。 CDSEG SEGMENT ASSUME cs:CDSEG,ds:DTSEG,ss:STSEG START: mov ax,DTSEG mov …
2007-11-17 id:noritsugu:20071117:MASM のデフォルトセグメントレジスタの動作確認 失敗のリベンジ? CDSEG SEGMENT ASSUME cs:CDSEG,ds:DTSEG,ss:STSEG START: ASSUME ds:CDSEG mov ax,CDSEG mov ds,ax mov ah,09H mov dx,OFFSET MSG1 int 21H mov ax,DTSE…
「ASSUME ds:コードセグメント」と変更してみる。 『高級言語プログラマのためのアセンブラ入門』 43ページの as_exe.asm 改をコンパイル、実行 CDSEG SEGMENT ASSUME cs:CDSEG,ds:CDSEG,ss:STSEG START: mov ax,CDSEG mov ds,ax mov ah,09H mov dx,OFFSET M…
『高級言語プログラマのためのアセンブラ入門』 58ページに記述されている デフォルトセグメントレジスタの確認(本のコードとは全然違う) 『高級言語プログラマのためのアセンブラ入門』 43ページの as_exe.asm 改をコンパイル、実行 CDSEG SEGMENT ASSUME c…
『高級言語プログラマのためのアセンブラ入門』 43ページの as_exe.asm から データセグメントを削除してみた。 MSG をコードセグメントに移動 「ds:DTSEG」を削除 「mov ax,DTSEG」を「mov ax,CDSEG」に変更 「DTSEG SEGMENT 〜 DTSEG ENDS」を削除 コンパ…
『高級言語プログラマのためのアセンブラ入門』 54ページの COM 形式でデータを先頭行側に配置した例をコンパイル、実行。 COM 形式では MSG のところをスキップするよう配慮が必要。 でも、配慮せず MSG 行がコードに混じっていたらどう解釈されるんだ? 『…
『高級言語プログラマのためのアセンブラ入門』 51ページの 簡易化セグメント定義 as_easy.asm をコンパイル、実行。 .MODEL SMALL .CODE .DATA がミソのようだ。単なるマクロのようなものなのか???
『高級言語プログラマのためのアセンブラ入門』 48ページの as_com.asm は、 36ページの as_first.asm とほぼ同じ。as_com.asm にはコメントがあるのと、as_first.asm の ASSUME cs:CODE,ds:CODE が、as_com.asm では ASSUME cs:CDSEG,ds:CDSEG,ss:CDSEG と…
『高級言語プログラマのためのアセンブラ入門』 43ページの as_exe.asm をコンパイル、実行 C:\tmp\everyday\MASM>ml as_exe.asm Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assemblin…
『高級言語プログラマのためのアセンブラ入門』(ソフトバンク クリエイティブ) 『はじめて読むMASM―ソフトウェア環境のからくりを学ぶ』(アスキー) 『はじめて読む8086―16ビット・コンピュータをやさしく語る (アスキーブックス)』(アスキー) 『x86アセンブ…
m32v9r.zip http://www.masm32.com/ から LNK563.EXE ftp://ftp.microsoft.com/softlib/MSLFILES/ から m32v9r.zip を展開し、install.exe を実行 LNK563.EXE は圧縮ファイルだった