2. 显示所有ASCII码的程序 asci.com
MOV CX,0100 MOV DL,00
MOV AH,02 ;0105 INT 21
INC DL LOOP 0105 INT 20
3. 由键盘输入任意字符串,然后显示出来 key.com
MOV DX,0116 ;0116:字符个数,0117:实际输入数(包含$),0118:实际数 MOV AH,0A INT 21 MOV DL,0A MOV AH,02 INT 21 MOV DX,0118 MOV AH,09 INT 21
INT 20 ;0114 DB 20 ;0116
0116 06
4. 显示一字符串 stri.com
MOV DX,109 MOV AH,09? INT 21? INT 20?
DB 'May I help you? $' ;0109 ?
5. 将1~16放入以2000H开始的单元中; asm-2000.com
MOV BX,2000 MOV CX,0010 MOV AL,01
MOV [BX],AL ;0108 INC AL INC BX LOOP 0108 INT 20
6
6. 将1000H开始的4个单元中的大数找出来; dashu.com
MOV BX,1000
MOV AL,[BX] MOV CX,0003
INC BX ;0108 CMP AL,[BX] JNB 010F MOV AL,[BX]
DEC CX ;010F JNZ 0108 MOV DL,AL INT 20
7. 比较连续两个单元中数的大小,相等=88,不相等=FFH; comp50-2.COM
MOV SI,1000 MOV DI,2000 MOV CX,0002
MOV AL,[SI] ;0109 CMP AL,[DI] JZ 0113 MOV AL,FF JMP 0119
INC SI ;0113 INC DI LOOP 0109 MOV AL,88
INT 20 ;0119
8. 在1000h开始的100个单元中,搜索“$”字符,将字符的地址放入BX中,搜索不到则BX=FFFFH scas.com
MOV DI,1000 MOV AL,24 MOV CX,0064 CLD REPNZ SCASB
JZ 0112 MOV BX,FFFF JMP 0115
DEC DI ;0112
7
MOV BX,DI INT 20
9. 将5000为首的4个数,测试该数的最高位,为1送2000单元,为0送1000号单元; stor-lod.com
MOV SI,5000 MOV DI,1000 MOV BX,2000 MOV CX,0004 CLD LODSB
TEST AL,80 JNZ 0115 STOSB
JMP 011A
XCHG BX,DI ;0115 STOSB
XCHG BX,DI DEC CX JNZ 010D
INT 20 ;010D
10. 比较SI和DI的内容,相等则AL=00,不等则AL=FFH;COMPS.COM
MOV SI,1000 MOV DI,2000 CLD
MOV CX,0002 REPZ CMPSB
JZ 0112 MOV AL,FF JMP 0114
MOV AL,00 ;0112 INT 20 ;0114
11. 人机对话程序
:0100 DB “What’s your name? $” :0113 DB “Please input your code? $” :012c DB “OK! $”
:0131 MOV DX,0100 ;显示What’s your name?
8
MOV AH,09 INT 21 MOV DL,0A MOV AH,02 INT 21 MOV DL,0D INT 21
MOV DX,0200 ;从键盘输入名字 MOV AH,0A INT 21 MOV DL,0A MOV AH,02 INT 21 MOV DL,0D INT 21
MOV DX,0202 MOV AH,09 INT 21 MOV DL,0A MOV AH,02 INT 21 MOV DL,0D INT 21
MOV DX,0112 MOV AH,09 INT 21 MOV DL,0A MOV AH,02 INT 21 MOV DL,0D INT 21
MOV DX,0210 MOV AH,0A INT 21 MOV DL,0A MOV AH,02 INT 21 MOV DL,0D INT 21
MOV DX,012A MOV AH,09 INT 21 INT 20
;把名字显示出来 ;显示Please input your code? ;从键盘输入密码 ;显示OK! 9
:0200 DB 06 :0210 DB 08
七、汇编语言上机过程
1.上机前的软件准备:MASM510,Uedit32 2. 在MS-DOS操作系统下操作
1. 文本编辑器 (如:EDIT.COM ,Uedit32等) ○
2. 汇编程序 (如:MASM.EXE ,TASM.EXE 等) ○
3. 连接程序 (如:LINK.EXE 等) ○
4. 调试程序 (如:DEBUG.EXE 等) ○
八、汇编源程序
1.在屏幕上显示一个字符的源程序程序:
program segment ;定义段,段名“program”可任意取
assume cs:program ;把上面段的段基址放入 CS,即程序所在段的位置 mov dl,41h ;将显示字符的ascii码装入DL
mov ah,2 ;21功能的2号子功能调用,向屏幕输出一个字符 int 21h ;21号DOS功能调用 mov ah,4ch ;汇编结束,DOS返回 int 21h
program ends ;段终止 end ;汇编终止 2.显示所有ASCII的源程序:
program segment ;定义段;段名“program”可任意取 assume cs:program ;把上面定义段的段基址放入 CS mov cx,100h ;装入循环次数
mov dl,0 ;装入第一个ASCII码,随后每次循环装入新码 next: mov ah,2 int 21h
10