汇编语言作业

Posted xukaiae86

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言作业相关的知识,希望对你有一定的参考价值。


班级:  计算机14-1   姓名:​​ 许恺  学号:​​ 2014011329 日期:​​ 2016.4.22          

一、编写程序

1.设有数组X、Y和Z,各有10个元素,计算:

Z0=X0-Y0   Z1=X1-Y1  Z2=X2-Y2   Z3=X3+Y3   Z4=X4-Y4  

Z5=X5-Y5   Z6=X6-Y6   Z7=X7+Y7  Z8=X8-Y8   Z9=X9-Y9

要求:X、Y两个数组的数均为两位十进制数,直接放在数据段中,无需从键盘输入,且两数相加或相减之后是一位或两位数(有可能是负数)

输出:以十进制形式输出计算后的结果(即:数组z的内容)

提示:对于负数的显示,在判断该数是负数后,可先输出一个负号,然后对该数求补,再输出相应的正数,例如,-15,先输出一个负号,求补后,该数变成了15,直接输出就可以了。

1)程序清单:

data segment

 x dw 10h,11h,12h,13h,14h,15h,16h,17h,18h,19h

 y dw 11h,12h,13h,14h,15h,16h,17h,18h,18h,20h

 z dw 10 dup(?)

 logic_ruler dw 0010001000b

data ends

code segment

  assume cs:code,ds:data

   main proc far

start:

   mov ax,data

   mov ds,ax

   mov dx,logic_ruler

   mov cx,10

   mov bx,0

l1:mov ax,x[bx]

   shr dx,1

   jc l2

   add ax,y[bx]

   jmp l3

l2:sub ax,y[bx]

   cmp ax,0

   jge l3

   neg ax

   push dx

   mov dh,al

   mov dl,-

   mov ah,02h

   int 21h

   mov al,dh

   mov ah,0

   pop dx


l3:mov z[bx],ax

   push dx

   push bx

   MOV BH,Al

   MOV BL,0AH

   DIV BL

   ADD AH,30H

   ADD AL,30H

   MOV BX,AX

   MOV DL,BL

   MOV AH,02H

   INT 21H

   MOV DL,BH

   MOV AH,02H

   INT 21H

   mov dl,

   mov ah,02h

   int 21h

   pop bx

   pop dx


   add bx,2

   loop l1

   mov ah,4ch

   int 21h

   main endp

code ends

end start


2)运行结果(截图):

 汇编语言作业(五)_数组

二、编程体会

    真的是难,本以为书上有现成的例题就不着急写,最后才发现那么不一样,浪费好长时间又去修改程序以及优化程序,最终还是做出来了,开始感觉根本做不出来,最后还是做出来了,也许编程的魅力就在于此吧,本以为绝对做不到的事情,却做出来了,太有成就感。




以上是关于汇编语言作业的主要内容,如果未能解决你的问题,请参考以下文章

c语言作业,求助!

C语言编程作业,急!!!!

汇编语言作业

汇编语言作业

2018上IEC计算机高级语言(C)作业 第1次作业

王道C语言作业初级