8086指令系统汇编实训实例(3)

2019-03-23 11:17

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


8086指令系统汇编实训实例(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中建一局公司重要管理文件试题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: