汇编语言实验报告1~7

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言实验报告1~7
实验一:数据传输指令、算术指令、逻辑指令的使用
实验内容:利用汇编语言,编写一个程序,实现两个整数相加,并将结果存入第三个变量中
实验步骤:
1. 声明三个变量a、b、c
2. 将10存入a,将20存入b
3. 将a的值传入al,将b的值传入bl
4. 使用add指令将al和bl相加,将结果存入al
5. 将al的值传入c
6. 显示c的值
实验结果:
a d
b 10
mov al,a
add al,bl
int 21h
mov ax,4c00h
实验二:分支指令的使用
实验内容:利用汇编语言,编写一个程序,实现当输入的值为正数时,输出"I'm positive!";当输入的值为负数时,输出"I'm negative!";当输入的值为零时,输出"I'm zero!"
1. 定义一个变量num
2. 接收用户输入,并将其存储在num中
3. 用test指令判断num的值
4. 当num=0时,执行输出"I'm zero!"的指令
7. 退出程序
num db ?
lea dx, prompt
sub al, '0'
test num, num
jz zero
js neg
jmp positive
neg:
output:
zero_msg db 'I am zero!$'
prompt db 'Please enter a number:', 0dh, 0ah, '$'
1. 定义变量i、sum,分别表示累加的数字和累加和
2. 将i赋初值1,sum赋初值0
3. 进入循环
5. 使用inc指令将i加1
6. 使用cmp指令将i与10比较,如果i小于等于10,继续循环,否则退出循环
7. 输出结果
mov bx, i
loopStart:
inc bx
实验四:过程调用的使用
2. 循环遍历1到100之间的每个数
3. 用一个for语句嵌套一个for语句判断该数是否为质数
4. 用两个自定义的子程序is_prime和output输出结果
call is_prime
skip:
cmp i, 100
prime_loop:
div bl
ret
je newline
jmp done
实验目的:掌握字符串操作指令的使用
实验内容:利用汇编语言,编写一个程序,将字符串"SJTU"改为字符串"MIT"
1. 定义字符串SJTU和MIT
2. 定义两个变量i和len,分别表示字符串的下标和长度
3. 使用movsb将SJTU的值传到MIT中
4. 输出MIT
SJTU db 'SJTU'
lea si, SJTU
stringLoop:
实验内容:利用汇编语言,编写一个程序,实现将输入的字符串写入一个文件中,然后再读取该文件中的字符串并输出
2. 打开文件
3. 将字符串写入文件中
4. 关闭文件
6. 读取文件内容
8. 输出读取的字符串
fileName db 'test.txt'
content db 32 dup(?)
mov cx, word ptr [content]
实验内容:利用汇编语言,编写一个程序,在系统按下Ctrl+C时,输出一条信息并退出
1. 声明函数handleCtrlC
2. 获取中断21的地址,将其存储到文件头中
org 100h
mov [old_int_21h], es:bx
mov dx, offset handleCtrlC
end开始:。

相关文档
最新文档