汇编程序汇总

2019-03-11 10:20

设平面上一点p的直角坐标为(x,y),x,y为字符号数,试编制若P落在第i象限内,则令k=i;若P落在坐标轴上,则令k=0的程序。

stack segment stack'stack' dw 32 dup(0) stack ends data segment x dw 0 y dw 30 k db 0 data ends code segment begin proc far

assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax

mov ax,x jz x0y0 mov ax,y jz x0y0

mov ax,x js x1 mov ax,y js y1 mov k,1 jmp endd y1: mov k,4 jmp endd x1: mov ax,y js y2 mov k,2 jmp endd y2: mov k,3 jmp endd x0y0: mov k,0 jmp endd endd: mov dl,k add dl,30h mov ah,2 int 21h ret begin endp code ends

end begin

编写程序,将字节变量BVAR中的无符号二进制数(0~0FFH)转换为BCD数,在屏幕上显示结果。

stack segment stack ‘stack’ dw 32 dup(0) stack ends data segment BVAR DB 99H

OBUF DB 4 DUP(0) data ends code segment begin proc far

assume ss: stack, cs: code, ds: data

push ds sub ax, ax push ax

mov ax, data mov ds, ax

MOV AL ,BVAR MOV AH, 0 MOV DL, 100 DIV DL

ADD AL, 30H Mov obuf,al MOV AL,AH AAM

ADD AX,3030H MOV OBUF+1,AH MOV OBUF+2,AL MOV OBUF+3,‘$’

MOV DX OFFSET OBUF MOV AH,9 INT 21H

ret begin endp code ends end begin

1. 编写源程序实现以下功能:z=|x-y|。x、y、z均为字节变量。

stack segment stack'stack' dw 32 dup(0) stack ends data segment x db 12h y db 10h z db 0 data ends code segment begin proc far

assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax mov al,x cmp al,y jge a1 sub y,al mov ah,y mov z,ah jmp exit a1:sub al,y mov z,al exit: ret begin endp code ends

编写源程序实现以下功能,在显示器上显示:Enter the string:I am a ChineseOutput the

string again:I am a Chinese

stack segment stack 'stack' dw 32 dup(0) stack ends data segment

OBUF DB 'Enter the string:$' IBUF DB 0FFH,0,255 DUP(0)

OBUF1 dB 'Output the string again:$' data ends code segment begin proc far

assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax

MOV DX,OFFSET OBUF MOV AH,9 INT 21H mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h

MOV DX,OFFSET IBUF MOV AH,10 INT 21H mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h MOV DX,OFFSET OBUF1

MOV AH,9 INT 21H mov dl,0ah mov ah,2 int 21h mov dl,0dh

mov ah,2 int 21h mov bl,ibuf+1 mov bh,0

MOV iBUF[BX+2],'$' MOV DX,OFFSET ibuf+2 MOV AH,9 INT 21H RET begin endp code ends

end begin

编写源程序实现以下功能:将字节变量BVAR中存放的两位压缩BCD数转换为二进制数,并存入原字节变量中。 程序运行后,如何查看字节变量BVAR中存放的内容?

1.stack segment stack 'stack' dw 32 dup(0) stack ends data segment

stt DB 10,0,10 dup (0),'$' data ends code segment begin proc far assume ss:stack,ds:data,cs:code push ds sub ax,ax push ax mov ax,data mov ds,ax mov dx,offset stt mov ah,10 int 21h mov bh,stt+2 mov bl,stt+3 and bh,0fh and bl,0fh mov al,bh mov ch,10

mul ch

add al,bl mov bl,al and al,01h mov stt+8,al add stt+8,30h mov cx,7 mov si,7 bv: mov al,bl shr al,1 mov bl,al and al,01h mov stt[si],al add stt[si],30h dec si loop bv mov dx,offset stt mov ah,9 int 21h rends end beginet begin endp code ends begin end

1)写出实验源程序。

(2)请回答以下问题:汇编源程序的后缀名是(.asm);源程序要通过(masm.exe)程序编译生成目标文件,目标文件的后缀名是(.obj);目标文件要通过(link.exe)程序生成可执行文件,可执行文件的后缀名是(.exe )。

1)写出实验源程序。

(2)请回答以下问题:汇编源程序的后缀名是(.asm);源程序要通过(masm.exe)程序编译生成目标文件,目标文件的后缀名是(.obj);目标文件要通过(link.exe)程序生成可执行文件,可执行文件的后缀名是

(.exe )。

stack segment stack ‘stack’ dw 32 dup (0) stack ends data segment

obf db ‘ wish you success!$’ data ends code segment start proc far

assume ss: stack, cs: code, ds: data

push ds sub ax, ax push ax

mov ax, data mov ds, ax

mov dx, offset obf mov ah, 9 int 21h ret start endp code ends end start

写ASCII码的查询程序。要求该程序运行后显示提示信息:“The ASCII code of”,待查询者输入欲查字符后再显示“is”和该字符的ASCII码,换行后又输出提示信息“The ASCII code of”待查,如此不断循环。直至查询者输入回车符输出“is 0DH”后,结束该程序的运行。 stack segment stack stack dw 32 dup(0) stack ends data segment

obuf DB 0DH, 0AH, The ASCII code of $

enter DB The ASCII code of enter is 0DH$ is DB 20h, is,20h,0,0,H$ data ends code segment begin proc far

assume ss: stack, cs: code, ds: data

push ds sub ax, ax push ax

mov ax, data mov ds, ax A1: MOV AH, 9

MOV DX, OFFSET obuf INT 21H MOV AH, 1 INT 21H

CMP AL, 0DH JE A4

MOV AH, AL

MOV CL,4 SHR AH, CL ADD AH, 30H CMP AH, 3AH JC A2

ADD AH, 7 A2: MOV is+4, AH AND AL,0FH ADD AL,30H CMP AL, 3AH JC A3

ADD AL,7 A3: MOV is+5,Al

MOV DX,OFFSET is MOV AH,9 INT 21H JMP A1 A4: MOV AH,9

MOV DX,OFFSET enter INT 21H ret begin endp code ends

end begin

1)写出实验源程序。

(2)画出程序中数据段的内存示意图;指出每条指令中目的操作数的寻址方式

(3)-u命令的功能:一次反汇编的32个字节

-r命令的功能:检查寄存器里面的数据

-d命令的功能:检查存储器里面的数据

-p命令的功能:单步调试 -q命令的功能:退出 -g命令的功能:

stack segment stack 'stack' dw 32 dup (0) stack ends data segment data ends code segment begin proc far assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax mov ax,1234h mov ds:[1000h],ax mov bx,1002h mov byte ptr[bx],20h mov dl,39h inc bx mov [bx],dl dec dl mov si,1 mov [bx+si],dl mov [bx+si+1],dl mov word ptr [bx+si+2],2846h ret begin endp code ends end begin data 34h 12h 20h 39h 39h 39h 46h 28h

编写源程序实现以下功能:将字节变量BVAR中存放的两位压缩BCD数转换为二进制数,并存入原字节变量中。 stack segment stack'stack' dw 32 dup(0) stack ends data segment bvar db 25 data ends code segment begin proc far

assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax mov al,bvar mov ch,0ah and al,0f0h mov cl,4 sar al,cl mul ch

and bvar,0fh

add word ptr bvar,ax ret begin endp code ends

end begin


汇编程序汇总.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011高级语言程序设计实验任务书

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

马上注册会员

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