3-10写出下列程序段完成的数学计算公式,并画出数据存放的示意图。 MOV AX,X MOV DX,X+2 ADD AX,Y ADC DX,Y+2 SUB AX,Z SBB DX,Z+2 MOV W,AX MOV W+2,DX
答:题目所示程序段完成的数学计算公式为:
X+Y-Z 运算结果被送往W 数据存放示意图略。
3-11 已知数据如图所示,低位在前,按下列要求编写程序段
1 NUM1和MUM2两个数据相乘(均为无符号数),乘积放在SUM开始的单元 2 NUM1和NUM2两个数据相乘(均为无符号数),乘积放在SUM开始的单元 3 NUM1单元的字节数据除以13(均为无符号数),商和余数依次放入SUM开始的两个字单元
4 NUM1字单元的字数据除以NUM2字单元的字,商和余数依次放入SUM开始的两个字单元
3-12 编写ALPHA地址4个字节的ASCII码数串‘8765’与BEDA地址的1字节的ASCII数‘3’相乘的程序段
答:完成题目所要求的完整的程序为: data segment
alpha db 35h,36h,37h,38h beda db 33h
num db 40 dup (?)
data ends
stac segment para stack ‘stac’ db 64 dup (?) stac ends code segment
assume cs:code,ds:data,ss:stac start proc far push ds mov ax,0 push ax
mov ax,data mov ds,ax
mov si,offset alpha mov al,‘$’ mov 5[si],al
mov dx,offset alpha mov ah,9 int 21h
mov cx,04h
mov si,offset alpha atob: mov al,[si] and al,0fh mov [si],al inc si loop atob mov al,beda and al,0fh mov beda,al
mov cx,04h mov bh,0
mov si,offset alpha mov di,offset num mov bl,beda mov dx,0 mull: mov al,[si] mul bl aam
push mov add aaa
mov mov pop add mov inc inc inc loop mov inc mov mov mov btoa: mov or mov inc loop mov mov mov disp: mov mov mov ax ah,0 al,dl [di],al dh,ah ax
ah,dh dl,ah si di
bh mull [di],dl bh cl,bh ch,0
si,offset num al,[si] al,30h [si],al si btoa cl,bh ch,0
di,offset num al,4[di] dl,al ah,2
int 21h dec di loop disp ret
start endp code ends
end start
3-13 已知(AL)=0C4H,DATA单元中内容为5AH,写出下列每条指令单独执行后的结果
1 AND AL,DATA 2 OR AL,DATA 3 XOR AL,DATA 4 NOT DATA 5 AND AL,0FH 6 OR AL,01H 7 XOR AL,0FFH 8 TEST AL,80H
3-14 用移位循环指令,编写完成以下功能的程序段(结果放回原处) 1 将无符号数83D分别乘2和除2 2 将带符号数-47D分别乘2和除2 3 将图中NUM1双字乘2,除2 4 将图中从NUM1开始的4个字乘2
3-15 编写完成以下功能的程序段,并指出运行后,其标志CF,ZF,SF和OF的状态时什么? 1 BCD数 58-32 2 无符号数 3AH-3AH 3 4
3-16 用循环移位指令实现下列功能,设(AX)=0C3H 1 设(CL)=8,移位前、后AX内容不变 2 设(CL)=9,移位前、后AX内容不变 3 将AX中高4位和低4位交换位置
4 将AX中高4位放到低4位上,而高4位置0。
带符号数 79-(-57) 带符号数 -13+(42)