汇编汇总程序题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、将字节存储单元A中的内容左移4位,B中的内容右移1位。要求移位后的空位为零。
分析:因为要求移位后空位为零,所以使用逻辑移位指令。B中的内容右移1位,可以把移位次数直接写在指令中;A中的内容左移4位,必须先把移位次数送入CL寄存器中。
解:DATA SEGMENT
A D
B 34H
B DB 0A2H
DATA ENDS
CODE SEGMENT
ASSUM CS:CODE,
DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CL,4
SHL A,CL
SHR B,1
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、设在数据段中有X,Y两字节变量,编程计算:
参考程序:
DATA SEGMENT X DB X
Y DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,
START: MOV AX,DATA
MOV DS,AX
MOV AL,X
CMP AL,0
JGE BIGR
MOV Y,-1 JMP EXIT
BIGR: MOV Y,1
EXIT: MOV AH,4CH
INT 21H CODE
ENDS
END START
3、从键盘输入两个一位数,求他们的和,将结果输出,要求通过使
用子程序的方式来编制本题所要求的功能。程序:
data segment
x db ' out range$'
y db ' $'
z db 'please input your chioce $' m db 'please output your anwser $' data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea dx,z
mov ah,9
int 21h
mov ah,1
int 21h
mov bl,al
mov dl,y
mov ah,2
int 21h
mov ah,1
int 21h
call w
sub bl,30h
mov dl,0dh mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
lea dx,m
mov ah,9
int 21h
mov dl,bl
cmp bl,39h
js next1
lea dx,x
jmp next2
next1:
mov ah,2
int 21h
mov ah,4ch
int 21h
next2:
mov ah,9
int 21h
mov ah,4ch
int 21h
main endp
relf proc near
w proc near
add bl,al
ret
w endp
code ends
end start
4.设在内存单元sqtab首地址开始存放了0~15的平方数表。要求用直接查表法编一程序,求出A单元中给定数(<=15=的平方值)送B 单元保存。
dataseg segment
sqtab db 0,1,4,9,16,25,36,49,64,81,
db 100,121,144,169,196,225
a d
b 12
b db ?
dataseg ends
codeseg segment
main proc far
assume cs: codeseg,ds:dataseg
start: push dx
xor ax,ax
push ax
mov ax,dataseg
mov ds,ax
mov bx,offset sqtab
mov al,a
xlat
mov b,al
ret
main endp
codeseg ends
end start
5.编制完整程序实现下列算式:W=X+Y+36-Z。设X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2的存储单元中,结果的低十六位字和高十六位字分别存
放在W和W+2两个单元中答案:
DATA SEGMENT
X DD …
Y DD …
Z DD …
W DD …
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX
MOV AX,X
ADD AX,Y
MOV BX,X+2
ADC BX,Y+2
ADD AX,36
ADC BX,0
SUB AX,Z
SBB BX,Z+2
MOV W,AX
MOV W+2,BX