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: