第4章80x86汇编语言程序设计ML[/options|filelist[/linklinkoptions]/AT Enable tiny model (.COM file)/nologo Suppress copyright message/Bk<linker>Usealternatelinker/Sa Maximize source listing/cAssemble without linking/Sc Generate timings in listing/CpPreservecaseofuseridentifiers/Sf Generate first pass listing/CuMap allidentifiers to upper case/Sk<width>Setlinewidth/CxPreserve casein publics,externs/Sn Suppress symbol-table listing/coffgenerateCOFFformat objectfile/Sp<length>Setpagelength/D<name>[=text]Definetextmacro/Ss<string>Setsubtitle/EPOutputpreprocessed listingto stdout/St<string>Settitle/F<hex>Setstacksize(bytes)/SxListfalseconditionals/Fe<file>Nameexecutable/Ta<file>Assemblenon-.ASMfile/Fl[filelGenerate listing/wSameas/wo/wxWX Treat warnings as errors/Fm|filelGeneratemap/Fo<file>Nameobjectfile/W<number>Setwarninglevel/FPiGenerate8Ox87emulatorencoding/XIgnoreINCLUDE environmentpath/Fr|filelGeneratelimitedbrowserinfo/ZdAddlinenumberdebuginfo/FR/filelGeneratefullbrowserinfo/ZfMakeallsymbolspublic/G<cdz>UsePascal,C,orStdcallcalls/ZiAdd symbolicdebuginfo/H<number>Setmax externalnamelength/ZmEnableMASM5.10 compatibility/<name>Addincludepath/Zpn]Set structurealignment/link<linkeroptionsandlibraries>/Zs Perform syntax checkonly6
6 ML [ /options ] filelist [ /link linkoptions ] /AT Enable tiny model (.COM file) /nologo Suppress copyright message /Bl<linker> Use alternate linker /Sa Maximize source listing /c Assemble without linking /Sc Generate timings in listing /Cp Preserve case of user identifiers /Sf Generate first pass listing /Cu Map all identifiers to upper case /Sl<width> Set line width /Cx Preserve case in publics, externs /Sn Suppress symbol-table listing /coff generate COFF format object file /Sp<length> Set page length /D<name>[=text] Define text macro /Ss<string> Set subtitle /EP Output preprocessed listing to stdout /St<string> Set title /F <hex> Set stack size (bytes) /Sx List false conditionals /Fe<file> Name executable /Ta<file> Assemble non-.ASM file /Fl[file] Generate listing /w Same as /W0 /WX /Fm[file] Generate map /WX Treat warnings as errors /Fo<file> Name object file /W<number> Set warning level /FPi Generate 80x87 emulator encoding /X Ignore INCLUDE environment path /Fr[file] Generate limited browser info /Zd Add line number debug info /FR[file] Generate full browser info /Zf Make all symbols public /G<c|d|z> Use Pascal, C, or Stdcall calls /Zi Add symbolic debug info /H<number> Set max external name length /Zm Enable MASM 5.10 compatibility /I<name> Add include path /Zp[n] Set structure alignment /link <linker options and libraries> /Zs Perform syntax check only 第4章 80x86汇编语言程序设计
第4章80x86汇编语言程序设计[address]assembleACrange addresscomparedumpD[range]Eaddress[iist]enterfi11Frange list[=address][addresses]GgohexH valuel value2inputportload[address][drive][firstsector][number]moveM range addressN[pathname][arglist]nameoutput0port byteP[number]proceed[=address]quitQR[register]registerrange listsearchS[value][=address]traceUunassemb1e[range][drive][firstsector][number]writew[address]allocate expanded memoryXA[#pages]XD[handle]deallocate expanded memoryXM[Lpage][Ppage][handle]map expanded memory pagesXSdisplay expanded memory status7
7 第4章 80x86汇编语言程序设计
第4章80x86汇编语言程序设计实验1汇编语言程序设计一、实验目的1.熟悉MASM6.11汇编语言程序开发环境。2.掌握汇编语言程序的调试方法和常用的调试工具。二、实验内容1. 安装MASM6.11。2. 设置MASM6.11PWB。3.设在内存中首地址为BLOCK的区域存有一批数据:61H,84H,93H,0C4H,17H,0FFH,52H,2AH。分别按下列要求编写汇编语言程序:(1)视该批数据为8位无符号数,采用冒泡法将其按升序排序;(2)视该批数据为8位有符号数,采用冒泡法将其按升序排序。三、实验要求1.根据实验内容编写程序。2.上机调试程序。3.记录并分析程序运行结果,8
8 实验1 汇编语言程序设计 一、实验目的 1. 熟悉MASM 6.11汇编语言程序开发环境。 2. 掌握汇编语言程序的调试方法和常用的调试工具。 二、实验内容 1. 安装MASM 6.11。 2. 设置MASM 6.11 PWB。 3. 设在内存中首地址为BLOCK的区域存有一批数据:61H,84H, 93H,0C4H,17H,0FFH,52H,2AH。分别按下列要求编写汇编 语言程序: (1) 视该批数据为8位无符号数,采用冒泡法将其按升序排序; (2) 视该批数据为8位有符号数,采用冒泡法将其按升序排序。 三、实验要求 1. 根据实验内容编写程序。 2. 上机调试程序。 3. 记录并分析程序运行结果。 第4章 80x86汇编语言程序设计
第4章80x86汇编语言程序设计实验1参考程序bubble.asm.model small1.输入源程序bubble.asm.data2.MLbubble.asmndw83.DEBUGbubble.exeblockdb61h.84h.93h.0c4h.17h.0ffh.52H.2ah.stack60hcmp al,block[bx+1].codejna continue.startupxchg al,block[bx+1]mov ax,@datamov block[bx],almov ds,axcontinue: add bx,1mov cx,nlooploop2dec cxmov cx,dxloopl: mov dx,cxlooplooplmov bx,0.exitloop2:mov al,block[bxend9
9 实验1 参考程序bubble.asm .model small .data n dw 8 block db 61h,84h,93h,0c4h,17h,0ffh,52H,2ah .stack 60h .code .startup mov ax,@data mov ds,ax mov cx,n dec cx loop1: mov dx,cx mov bx,0 loop2: mov al,block[bx] 第4章 80x86汇编语言程序设计 cmp al,block[bx+1] jna continue xchg al,block[bx+1] mov block[bx],al continue: add bx,1 loop loop2 mov cx,dx loop loop1 .exit end 1. 输入源程序bubble.asm 2. ML bubble.asm 3. DEBUG bubble.exe
第4章80x86汇编语言程序设计MASM汇编语言表达式、运算符4.24.2.1常量、运算符及表达式1.常数十进制常数一后缀D/d(可省略)十六进制常数一后缀H/h二进制常数一后缀B/b八进制常数——后缀Q/q改变默认进制.RADIXn字符串常数'Hello,Everybody!伪指令“EQU”和“=”符号常数符号名EQU数值表达式EQU符号名<字符串>例:NEQU 10N=1010
10 4.2 MASM汇编语言表达式、运算符 4.2.1 常量、运算符及表达式 1. 常数 ◼ 十进制常数——后缀D/d (可省略) ◼ 十六进制常数——后缀H/h ◼ 二进制常数——后缀B/b ◼ 八进制常数——后缀Q/q ◼ 改变默认进制——.RADIX n ◼ 字符串常数——'Hello, Everybody!' ◼ 符号常数——伪指令“EQU”和“ = ” 符号名 EQU 数值表达式 符号名 EQU <字符串> 例:N EQU 10 N=10 第4章 80x86汇编语言程序设计