汇编语言作业

别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述汇编语言作业相关的知识,希望能为你提供帮助。


班级:计算机14-1? 姓名:?? 许恺 ? 学号:?? 2014011329? 日期:?? 2016.4.22?
一、编写程序
1.设有字数组X、Y和Z,各有10个元素,计算:
Z0=X0-Y0Z1=X1-Y1Z2=X2-Y2Z3=X3+Y3Z4=X4-Y4
Z5=X5-Y5Z6=X6-Y6Z7=X7+Y7Z8=X8-Y8Z9=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)运行结果(截图):

汇编语言作业

文章图片

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




【汇编语言作业】


    推荐阅读