美文网首页
8086汇编(42)int指令

8086汇编(42)int指令

作者: 迷心迷 | 来源:发表于2019-04-05 10:30 被阅读0次

int指令

int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。

CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下。

1)取中断类型码n;

2)标志寄存器入栈 ,IF=0, TF=0;

  1. CS,IP入栈;

4)(IP)=(n4), (CS)=(n4+2)。

int指令的最终功能和call指令相似,都是调用一段程序。

问题一:编写、安装中断7ch的中断例程。

功能:求一word型数据的平方。

参数:(ax)=要计算的数据。

返回值: dx、ax中存放结果的高16位和低16位。

应用举例:求2*34562 。

assume cs:code

code segment

start:
                 mov ax, 3456
                 int 7ch
                 add ax, ax
                 adc dx, dx
    
                 mov ax, 4c00h
                 int 21h
code ends
end start

我们需要做一下3部分工作。

1)编写实现求平方功能的程序

  1. 安装程序,将其安装在0:200处

3)设置中断向量表,将程序的入口地址保存在7ch表项中,使其成为中断7ch的中断例程。

安装程序如下。

assume cs:code


code segment

start:
                    mov ax, cs
                    mov ds, ax
                    mov si, offset  sqr
                    mov ax, 0
                    mov es, ax
                    mov di, 200h
                    mov cx, offset sqrend-offset sqr
                    cld
                    rep  movsb

                    mov ax, 0
                    mov es, ax
                    mov word ptr es:[7ch*4], 200h
                    mov word ptr es:[7ch*4+2], 0

                    mov ax, 4c00h
                    int 21h

sqr:
                     mul ax
                     iret

sqrend:
                    nop

code ends
end start

问题二:编写、安装中断7ch的中断例程。

功能:将一个全是字母,以0结尾的字符串,转化成大写。

参数: ds:si指向字符串的首地址

应用举例:将data段中的字符串转化成大写。

assume cs:code

data segment
         db  'conversation',0
data ends

code segment

start:
               mov ax, data
               mov ds, ax
                mov si, 0
                int 7ch

               mov ax, 4c00h
               int 21h

code ends
end start

安装程序如下。
assume cs:code

code segment

start:
              mov ax, cs
              mov ds, ax
              mov si, offset  capital
              mov ax, 0
              mov es, ax
              mov di, 200h
              mov cx, offset capitalend-offset capital
              cld
              rep movsb


              mov ax, 0
              mov es, ax
              mov word ptr es:[7ch*4], 200h
              mov word ptr es:[7ch*4+2], 0
              mov ax, 4c00h
              int 21h

capital:
               push cx
               push si

change:
                mov cl, [si]
                mov ch, 0
                jcxz  ok
                and byte ptr [si], 11011111b
                inc si
                jmp short change


ok:
                pop si
                pop cx
                iret

capitalend:
                  nop

code ends
end start

相关文章

  • 8086汇编(42)int指令

    int指令 int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。 CPU执行int n指令,相...

  • 在Mac上学习汇编-8086微处理器

    最近在学习王爽的《汇编语言》,里面的实验环境是用8086CPU的DOS来学习机器指令和汇编指令。如果用mac的话,...

  • 汇编语言 学习笔记 (二)

    汇编语言学习笔记 三、8086基本指令 数据传送指令 通用数据传送指令 1. MOV传送指令 a. 对标志位无影响...

  • 8086汇编(22)转移指令

    转移指令 1、可以修改IP,或同时修改CS和IP的指令统称为转移指令。 8086CPU的转移行为有以下几类。 只修...

  • 8086汇编(35)sbb指令

    sbb指令 sbb是带借位减法指令,它利用了CF位上记录的借位值。 指令格式:sbb 操作对象1,操作对象2 功能...

  • 8086汇编(34)adc指令

    adc指令 adc是带进位加法指令,它利用了CF位上记录的进位值。 指令格式: adc 操作对象1,操作对象2 功...

  • 8086汇编(36)cmp指令

    cmp指令 cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响...

  • AT&T汇编-函数实例

    AT&T 基于x86架构处理器汇编指令一般有2种格式:Intel汇编和AT&T汇编,通过对8086汇编的学习包括对...

  • 8086 指令系统寻址方式

    整理汇编语言学习笔记,回顾一下8086 指令系统的寻址方式。 寻址与指令 寻址方式(Addressing Mode...

  • 汇编分析&编译器优化

    汇编的种类 8086汇编(8086处理器是16bit的CPU) Win32汇编 Win64汇编 ARM汇编(嵌入式...

网友评论

      本文标题:8086汇编(42)int指令

      本文链接:https://www.haomeiwen.com/subject/olbqiqtx.html