汇编语言考题3道,求解!!50分奉上,倾家荡产啦已经~!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/08 22:56:52
1.已经定义字符串MYSTRING如下:
MYSTRING DB ‘A Sample for addressing.’ 用适当的指令把这个字符串的第5,12个字符(注:第0个字符是’A’)送入BX寄存器。
2.定义一个数据块 MSG DB 20,-3,0,-59,60,-46,-7
编程序统计数据块中正数、0、负数的个数。(编写完整的汇编程序)
3.在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项之差,并将差数存入以SUM为首址的数据区中。
DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8,45,-23,43,76
BUF2 DW 45,-23,124,345,-265,65,-23,87,-34,65
SUM DW 10 DUP(0)
DATA ENDS
请一定写清楚~~!!!!!

1.data segment
mystring db 'a sample for addressing'
data ends
code segment
assume ds:data,cs:code
start: mov ax,data;初始化
mov ds,ax
mov bx,0;将bx清0
mov bh,mystring+04h;送第五个字符
mov bl,mystring+0bh;送第十二个字符
code ends
end start
2.data segment
MSG DB 20,-3,0,-59,60,-46,-7
cunt1 equ $-msg
cunt2 db 0 ;正数置初值
cunt3 db 0 ;0数置初值
cunt4 db 0 ;负数置初值
buffer db 10h dup(0)
data ends
code segment
assume ds:data,cs:code
mov ax,data
mov ds,ax
mov ax,0
mov si,0
mov cx,cunt;置循环值
lp: mov al,msg[si]
test al,ffh;测试是否为0
jz lk1
test al,10000000b;测试符号位
jz lk2
inc cunt4;负数计数加一
lk1: inc cunt3;0数计数加一
lk2: inc cunt2;正数计数加一
inc si;指向下一个数据
loop lp
code ends
end start
3.DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8,45,-23,43,76
BUF2 DW 45,-23,124,345,-265,65,-23,87,-34,65
cunt equ $-buf2
SUM DW