汇编语言部分作业题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题
1、编写一条宏指令CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。
宏定义如下:
CLRB MACRO N, CFIL
MOV CX, ()
CLD
MOV ( ), ' ' ;;取空格符的ASCII码
() DI, CFIL
REP ( )
( )
正确答案:
第一空:
n
第二空:
al
第三空:
LEA
第四空:
STOSB
第五空:
endm
我的答案:得分: 6.6分
第一空:
N
第二空:
AL
第三空:
LEA
第四空:
STOSB
第五空:
ENDM
2、某工厂计算周工资的方法是每小时的工资率RATE乘以工作时间HOUR,另外每工作满10小时加奖金3元,工资总数存放在WAG中。请将周工资的计算编写成一条宏指令WAGES.
宏定义如下:
WAGES MACRO RATE, HOUR, WAG
MOV (), HOUR ;;计算周工资(WAG),公式为:HOUR* RATE
MOV BL, RATE
MUL BL
MOV WAG, AX
MOV AL, HOUR ;;计算奖金存入(AX),公式为:HOUR/10的商*3
MOV AH, 0
MOV BL, 10
DIV ()
MOV BL, ()
MUL ()
ADD WAG, ();;计算周工资总数
ENDM
正确答案:
第一空:
al
第二空:
bl
第三空:
3
第四空:
BL
第五空:
AX
我的答案:得分: 6.6分
第一空:
AL
第二空:
BL
第三空:
3
第四空:
BL
第五空:
AX
3、下面的程序段是二进制到十六进制转换程序,请填空。 mov ch, 4 rotate: mov cl, 4
rol bx,()
mov al, bl
and al,()
add al, 30h ; ’0’~’9’ ASCII 30H~39H
cmp al, 3ah
jl printit
add al,() ; ’A’~’F’ ASCII 41H~46H
printit: mov() , al
mov ah, 2
int 21h
()
jnz rotate
正确答案:
第一空:
cl
第二空:
0f;0fh
第三空:
7h;07h;07
第四空:
dl
第五空:
dec ch
我的答案:得分: 6.6分
第一空:
cl
第二空:
0fh
第三空:
07h
第四空:
dl
第五空:
dec ch
4、IRP BUF,<3,17,20,46,87,89,100> DB BUF
ENDM
汇编后生成的代码等价于( )
正确答案:
第一空:
DB 3,17,20,46,87,89,100
我的答案:得分: 6.6分
第一空:
DB 3,17,20,46,87,89,100
5、IRPC BUF,12345
DB BUF
endm
汇编后的代码等价于:
()
正确答案:
第一空:
DB 1,2,3,4,5
我的答案:得分: 6.6分
第一空:
DB 1,2,3,4,5
6、已知宏定义:
FOO macro p1,p2,p3
mov ax,p1
p2,p3
endm
宏调用:FOO WORD_VAR,inc,ax
则宏展开指令是
( )
( )
正确答案:
第一空:
ov ax,WORD_VAR
第二空:
inc ax
我的答案:得分: 7.6分
第一空:
mov ax,WORD_VAR
第二空:
inc ax
7、已知宏定义:
LEAP macro COND,LAB
J&COND LAB
endm
宏调用:LEAP Z,THERE
则宏展开指令是()
正确答案:
第一空:
JZ THERE
我的答案:得分: 7.6分
第一空:
JZ THERE
8、已知宏定义
FO macro P1
JMP TA&P1
endm
宏调用:FO WORD_VAR
则宏展开结果是( )
正确答案:
第一空:
JMP TAWORD_VAR
我的答案:得分: 7.6分
第一空:
JMP TAWORD_VAR
9、已知宏定义:
MSGGEN macro LAB,NUM,XYZ
LAB&NUM db 'hello mr.&XYZ' endm