inc dl ;INC:递增指令,每次将数据寄存器 DL 内的数值加 1
loop next ;循环指令,执行一次CX减1,直至CX为0,循环终止
mov ah,4ch ;汇编结束,DOS返回 int 21h
program ends ;段终止 end ;汇编终止 3.在屏幕上显示一个指定字符串的源程序:
data segment
string db 'May I help you?''$' data ends
code segment ;定义段,段名为code
assume cs:code,ds:data ;程序所在段的位置,代码段放在CS
寄存器中;数据段放在DS寄存器中
start: mov ax,data ;字符串数据段的开始地址 mov ds,ax ;ds←输出字符串数据段段地址 lea dx,string ;dx←输出字符串偏移地址
mov ah,09 ;9号子功能(显示字符串)调用 int 21h ;21号DOS功能调用
mov ah,4ch ;完成输出显示,DOS返回 int 21h
code ends ;代码段结束 end start ;整个汇编结束
4.显示所有26个大小写英文字符 alla-z.asm abc segment assume cs:abc mov cx,1ah mov dl,41h next: mov ah,02h int 21h inc dl loop next
mov cx,1ah mov dl,61h next2: mov ah,02h int 21h inc dl loop next2 mov ah,4ch
11
int 21h abc ends end
5. 对话程序 dialog2.asm
DATA SEGMENT BUF DB 09H ;允许个数 DB ? ;实际个数 DB 10 DUP (?) ;真实输入 HIT DB \NAM DB 0AH,0DH,\AGE DB 0AH,0DH,\WAN DB 0AH,0DH,\DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX DISP0: MOV DX,OFFSET HIT MOV AH,09H INT 21H MOV AH,01H INT 21H CMP AL,'Q' JZ QUIT
DISP1: MOV DX,OFFSET NAM MOV AH,09H INT 21H KELBD1:MOV DX,OFFSET BUF MOV AH,0AH INT 21H DISP2:MOV DX,OFFSET AGE MOV AH,09H INT 21H KELBD2:MOV DX,OFFSET BUF MOV AH,0AH INT 21H DISP3: MOV DX,OFFSET WAN MOV AH,09H INT 21H
12
QUIT: MOV AH,4CH INT 21H
CODE ENDS END START
6. 一位数的减法, 6-2=4 ab.asm
data segment buf db 06h,02h data ends code segment
assume cs:code,ds:data start: mov ax,data mov ds,ax mov al,buf sub al,buf+1 mov dl,al or dl,30h mov ah,02h int 21h mov ah,4ch int 21h code ends end start
7. 显示2位数结果disp10,16-3 ①
DATA SEGMENT
LIST DB 16,48,? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX CALL ADSUB CALL OUTPR QUIT: MOV AH,4CH INT 21H ADSUB PROC
MOV AL,LIST ADD AL,LIST+1
13
DAA
MOV LIST+2,AL RET ADSUB ENDP
DISPL PROC OR DL,30H MOV AH,02H INT 21H RET DISPL ENDP
OUTPR PROC MOV AL,LIST+2 MOV AH,0 MOV BL,10 DIV BL MOV DL,AL MOV BH,AH CALL DISPL MOV DL,BH CALL DISPL RET OUTPR ENDP
CODE ENDS
END START
②
DATA SEGMENT
LIST DB 16,3 ,? DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX CALL ADSUB CALL OUTPR QUIT: MOV AH,4CH INT 21H ADSUB PROC
MOV AL,LIST
14
SUB AL,LIST+1 MOV LIST+2,AL RET ADSUB ENDP
DISPL PROC OR DL,30H MOV AH,02H INT 21H RET DISPL ENDP
OUTPR PROC MOV AL,LIST+2 MOV AH,0 MOV BL,10 DIV BL MOV DL,AL MOV BH,AH CALL DISPL MOV DL,BH CALL DISPL RET OUTPR ENDP
CODE ENDS END START
8. 比较A、B两单元中的数,将较大的数送A单元。data segment
a db 39h b db 94h c db ? data ends code segment
assume cs:code,ds:data start:mov ax,data mov ds,ax mov al,a cmp al,b jnc next xchg al,b next: mov c,al
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库8086指令系统汇编实训实例(3)在线全文阅读。
相关推荐: