汇编汇总程序题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档